Installation
Development Environment

This is currently the recommended option to install Postiz in a supportable configuration. The docker images are in active and heavy development for now.

Tested configurations

  • MacOS
  • Linux (Fedora 40)

Naturally you can use these instructions to setup a development environment on any platform, but there may not be much experience in the community to help you with any issues you may encounter.

Prerequisites

This guide will ask you to install & configure several services exaplained below.

Prerequisite Cloud Services

  • Cloudflare R2 (opens in a new tab) - for uploads (optional, can use local machine).
  • Social Media API details - various API keys and secrets (more details later) for services you want to use; reddit, X, Instagram, etc..

Optional Cloud Services

Prerequisite Local Services

  • Node.js - for running the code! (version 18+)
  • PostgreSQL - or any other SQL database (instructions beleow suggest Docker)
  • Redis - for handling worker queues (instructions below suggest Docker)

We have some messages from users who are using Windows, which should work, but they are not tested well yet.

Installation Instructions

NodeJS (version 18+)

A complete guide of how to install NodeJS can be found here (opens in a new tab).

PostgreSQL (or any other SQL database) & Redis

You can choose Option A to Option B to install the database.

Option A) Postgres and Redis as Single containers

You can install Docker (opens in a new tab) and run:

docker run -e POSTGRES_USER=root -e POSTGRES_PASSWORD=your_password --name postgres -p 5432:5432 -d postgres
docker run --name redis -p 6379:6379 -d redis

Option B) Postgres and Redis as docker-compose

Download the docker-compose.yaml file here (opens in a new tab), or grab it from the repository in the next step.

docker compose -f "docker-compose.dev.yaml" up

Build Postiz

Clone the repository

git clone https://github.com/gitroomhq/gitroom

Set environment variables

Copy the .env.example file to .env and fill in the values

# Required Settings
DATABASE_URL="postgresql://postiz-user:postiz-password@localhost:5432/postiz-db-local"
REDIS_URL="redis://localhost:6379"
JWT_SECRET="random string for your JWT secret, make it long"
FRONTEND_URL="http://localhost:4200"
NEXT_PUBLIC_BACKEND_URL="http://localhost:3000"
BACKEND_INTERNAL_URL="http://localhost:3000"
 
# Optional. Your upload directory path if you host your files locally.
UPLOAD_DIRECTORY="/opt/postiz/uploads/"
 
# Optional: your upload directory slug if you host your files locally.
NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY=""
 
## This is a dummy key, you must create your own from Resend.
## If this variable exists, user activation is required.
## If it is commented out, users are activated automatically.
#RESEND_API_KEY="RzeTwHijvxvPUerScFcenUZUALuQJzSaGSMJ"
 
## These are dummy values, you must create your own from Cloudflare.
## Remember to set your public internet IP address in the allow-list for the API token.
CLOUDFLARE_ACCOUNT_ID="QhcMSXQyPuMCRpSQcSYdEuTYgHeCXHbu"
CLOUDFLARE_ACCESS_KEY="dcfCMSuFEeCNfvByUureMZEfxWJmDqZe"
CLOUDFLARE_SECRET_ACCESS_KEY="zTTMXBmtyLPwHEdpACGHgDgzRTNpTJewiNriLnUS"
CLOUDFLARE_BUCKETNAME="postiz"
CLOUDFLARE_BUCKET_URL="https://QhcMSXQyPuMCRpSQcSYdEuTYgHeCXHbu.r2.cloudflarestorage.com/"
CLOUDFLARE_REGION="auto"
 
# Social Media API Settings
X_API_KEY="Twitter API key for normal oAuth not oAuth2"
X_API_SECRET="Twitter API secret for normal oAuth not oAuth2"
LINKEDIN_CLIENT_ID="Linkedin Client ID"
LINKEDIN_CLIENT_SECRET="Linkedin Client Secret"
REDDIT_CLIENT_ID="Reddit Client ID"
REDDIT_CLIENT_SECRET="Linkedin Client Secret"
GITHUB_CLIENT_ID="GitHub Client ID"
GITHUB_CLIENT_SECRET="GitHub Client Secret"
 
# AI
OPENAI_API_KEY="OpenAI API key"
 
# Developer Settings
NX_ADD_PLUGINS=false
IS_GENERAL="true" # required for now

Install the dependencies

npm install

Generate the prisma client and run the migrations

npm run prisma-db-push

Run the project

npm run dev

If everything is running successfully, open http://localhost:4200 (opens in a new tab) in your browser!

If everything is not running - you had errors in the steps above, please head over to our support page.

Next Steps