--- title: 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 - **[Resend account](https://resend.com)** - for user activation and email notifications. - **[Cloudflare R2](https://cloudfalre.com)** - for uploads (optional, can use local machine), and storing account data. - **Social Media API details** - various API keys and secrets (more details later) for services you want to use; reddit, X, Instagram, etc.. ### 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](https://nodejs.org/en/download/). ### 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](https://www.docker.com/products/docker-desktop) and run: ```bash Terminal 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](https://raw.githubusercontent.com/gitroomhq/postiz-app/main/docker-compose.dev.yaml), or grab it from the repository in the next step. ```bash Terminal docker compose -f "docker-compose.dev.yaml" up ``` ## Build Postiz ```bash Terminal git clone https://github.com/gitroomhq/gitroom ``` Copy the `.env.example` file to `.env` and fill in the values ```bash .env # 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" # 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" RESEND_API_KEY="Resend API KEY" UPLOAD_DIRECTORY="optional: your upload directory path if you host your files locally" NEXT_PUBLIC_UPLOAD_STATIC_DIRECTORY="optional: your upload directory slug if you host your files locally" CLOUDFLARE_ACCOUNT_ID="Cloudflare R2 Account ID" CLOUDFLARE_ACCESS_KEY="Cloudflare R2 Access Key" CLOUDFLARE_SECRET_ACCESS_KEY="Cloudflare R2 Secret Access Key" CLOUDFLARE_BUCKETNAME="Cloudflare R2 Bucket Name" CLOUDFLARE_BUCKET_URL="Cloudflare R2 Backet URL" # Developer Settings NX_ADD_PLUGINS=false IS_GENERAL="true" # required for now ``` ```bash Terminal npm install ``` ```bash Terminal npm run prisma-db-push ``` ```bash Terminal npm run dev ``` If everything is running successfully, open http://localhost:4200 in your browser! If everything is not running - you had errors in the steps above, please head over to our [support](/support) page. ## Next Steps Learn the architecture of the project Set up email for notifications Set up github for authentication and sync Set up providers such as Linkedin, X and Reddit