Back to all templates
Postiz logo

Postiz

Application3072MB+ RAM

Open-source social media scheduling tool with built-in Temporal workflows

applicationautomationpostizopen-sourceself-hosteddocker

Deploy Postiz in 3 Steps

1

Connect Your VPS

Add your server credentials to Server Compass

2

Select Postiz

Choose from our template library

3

Deploy & Configure

Fill in settings and click Deploy

No Docker knowledge required
Step-by-step deployment guide

Deploy Postiz on a VPS with Server Compass

Use the Postiz template in Server Compass to deploy a self-hosted social media scheduling platform with Postgres, Redis, Temporal, and Elasticsearch, then verify the web UI in a browser.

About 10 minutesBrowser verified
1
Step 1

Open the server Apps tab

Select the tutorial-vps VPS, open the Apps tab, and start a new app deployment. Keep sensitive server details hidden before capturing or sharing screenshots.

Server Compass Apps tab before creating an Postiz app
2
Step 2

Choose an app template

Click New App and choose the template deployment path so Server Compass can load the built-in catalog.

Choosing to deploy an app from a Server Compass template
3
Step 3

Search for Postiz

Use the template picker search to find Postiz in the Server Compass template catalog.

Searching for Postiz in the Server Compass template picker
4
Step 4

Select the Postiz template

Choose the Postiz template. Server Compass fills the app service, Postgres, Redis, Temporal, Elasticsearch, upload volumes, and the published web ports.

Postiz template selected in Server Compass
5
Step 5

Review the Postiz settings

Confirm the app name and web UI port. In this run, the app was named postiz-demo and used host port 4007.

Reviewing Postiz project settings and compose service
6
Step 6

Deploy Postiz

Review the generated compose settings, confirm the Postiz web port is available, and click Deploy.

Reviewing Postiz web port before deployment
7
Step 7

Watch the deployment progress

Keep the deployment modal open while Server Compass uploads the compose file, pulls the Postiz image, starts the container, and verifies the stack.

Server Compass deploying the Postiz template on the VPS
8
Step 8

Confirm Postiz is running

After deployment finishes, return to the Apps tab and confirm the Postiz app is marked Running with its application URL available.

Postiz template running in the Server Compass Apps tab
9
Step 9

Open Postiz in the browser

Open the application URL in a browser. The Postiz signup or login page confirms the social scheduling app is reachable.

The deployed Postiz web UI loaded in a browser

After Postiz Opens

  • Create the first Postiz account if registration is enabled.
  • Connect social providers only after configuring real callback URLs.
  • Use the Temporal UI for workflow diagnostics if scheduled jobs need debugging.
  • Back up the Postiz, Postgres, Redis, Temporal, and upload volumes.

Verified Result

The Postiz web interface loaded successfully from the deployed container.

Postiz deployment questions

What does the Postiz template deploy?

It deploys the Postiz app plus Postgres, Redis, Temporal, Elasticsearch, and a Temporal UI service.

Which port did the tutorial use?

The tutorial used host port 4007, which maps to the Postiz web UI on container port 5000.

Does Postiz need setup after deployment?

Yes. Create the first account and configure social provider credentials before publishing posts.

Should this become a blog post?

No. The deployment guide should live on the Postiz template detail page and be linked from the reusable template deployment docs page.

CLI Deployment

Deploy Postiz Yourself

Want full control? Here's how to deploy Postiz yourself using Docker Compose.

1

Remote into Your Server

Initiate a secure shell connection to your server using the command below.

terminal
# Connect to your VPS
ssh root@your-server-ip

# Or with a specific SSH key
ssh -i ~/.ssh/your-key root@your-server-ip

First time? Docker required! Install it with: curl -fsSL https://get.docker.com | sh

2

Create the App Directory

Organize your deployment by creating a dedicated project folder.

terminal
# Create and navigate to project directory
mkdir -p ~/apps/postiz
cd ~/apps/postiz
3

Write Your docker-compose.yml

Create a new docker-compose.yml file and paste this configuration:

docker-compose.yml
services:
  postiz:
    image: ghcr.io/gitroomhq/postiz-app:latest
    ports:
      - "4007:5000"
    environment:
      - MAIN_URL=<your-main-url>
      - FRONTEND_URL=<your-main-url>
      - NEXT_PUBLIC_BACKEND_URL=<your-main-url>/api
      - BACKEND_INTERNAL_URL=http://localhost:3000
      - JWT_SECRET=<your-jwt-secret>
      - DATABASE_URL=postgresql://postiz:<your-db-password>@postiz-postgres:5432/postiz
      - REDIS_URL=redis://postiz-redis:6379
      - STORAGE_PROVIDER=local
      - UPLOAD_DIRECTORY=/uploads
      - NEXT_PUBLIC_UPLOAD_DIRECTORY=/uploads
      - IS_GENERAL=true
      - DISABLE_REGISTRATION=false
      - RUN_CRON=true
      - TEMPORAL_ADDRESS=temporal:7233
    volumes:
      - postiz-config:/config/
      - postiz-uploads:/uploads/
    restart: unless-stopped
    depends_on:
      postiz-postgres:
        condition: service_healthy
      postiz-redis:
        condition: service_healthy
      temporal:
        condition: service_started

  postiz-postgres:
    image: postgres:17-alpine
    environment:
      - POSTGRES_DB=postiz
      - POSTGRES_USER=postiz
      - POSTGRES_PASSWORD=<your-db-password>
    volumes:
      - postiz-postgres-data:/var/lib/postgresql/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD-SHELL", "pg_isready -U postiz -d postiz"]
      interval: 10s
      timeout: 5s
      retries: 5

  postiz-redis:
    image: redis:7.2
    volumes:
      - postiz-redis-data:/data
    restart: unless-stopped
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5

  temporal:
    image: temporalio/auto-setup:1.28.1
    depends_on:
      temporal-postgresql:
        condition: service_started
      temporal-elasticsearch:
        condition: service_started
    environment:
      - DB=postgres12
      - DB_PORT=5432
      - POSTGRES_USER=temporal
      - POSTGRES_PWD=temporal
      - POSTGRES_SEEDS=temporal-postgresql
      - ENABLE_ES=true
      - ES_SEEDS=temporal-elasticsearch
      - ES_VERSION=v7
    restart: unless-stopped

  temporal-postgresql:
    image: postgres:16
    environment:
      - POSTGRES_USER=temporal
      - POSTGRES_PASSWORD=temporal
    volumes:
      - temporal-postgres-data:/var/lib/postgresql/data
    restart: unless-stopped

  temporal-elasticsearch:
    image: elasticsearch:7.17.27
    environment:
      - cluster.routing.allocation.disk.threshold_enabled=true
      - cluster.routing.allocation.disk.watermark.low=512mb
      - cluster.routing.allocation.disk.watermark.high=256mb
      - cluster.routing.allocation.disk.watermark.flood_stage=128mb
      - discovery.type=single-node
      - ES_JAVA_OPTS=-Xms256m -Xmx256m
      - xpack.security.enabled=false
    volumes:
      - temporal-elasticsearch-data:/usr/share/elasticsearch/data
    restart: unless-stopped

  temporal-ui:
    image: temporalio/ui:2.34.0
    environment:
      - TEMPORAL_ADDRESS=temporal:7233
      - TEMPORAL_CORS_ORIGINS=http://localhost:3000
    ports:
      - "8080:8080"
    depends_on:
      temporal:
        condition: service_started
    restart: unless-stopped

volumes:
  postiz-config:
  postiz-uploads:
  postiz-postgres-data:
  postiz-redis-data:
  temporal-postgres-data:
  temporal-elasticsearch-data:
Required Settings
PORTPostiz web port(default: 4007)
TEMPORAL_UI_PORTTemporal UI port(default: 8080)
MAIN_URLPublic URL
JWT_SECRETJWT secret
DB_USERPostgres user(default: postiz)
DB_PASSWORDPostgres password
4

Launch the Containers

Start the services and tail the logs to verify startup.

terminal
# Spin up containers
docker compose up -d

# Verify deployment
docker compose ps

# Check logs for errors
docker compose logs -f
5

Open Firewall Ports

Open the required port in your firewall to allow access.

terminal
# Allow the application port through firewall
sudo ufw allow 4007/tcp
sudo ufw reload

# Access your app at:
# http://your-server-ip:4007
Skip the Terminal

Want the easy way? Try Server Compass.

Skip the terminal and deploy Postiz with a visual interface. Configure everything with clicks, not commands.

  • Visual config editor
  • Instant deployment
  • Automatic HTTPS
  • Smooth updates
  • Live monitoring
  • Quick rollbacks
Download Server Compass$29 one-time • Lifetime license

After Deployment

After deploying Postiz with Server Compass, complete these steps to finish setup

1

Open Postiz at http://YOUR_SERVER_IP:{{PORT}}

2

Create admin account and connect social providers

3

If using a domain with HTTPS, update MAIN_URL, set NOT_SECURED=false, and redeploy

4

Use Temporal UI at http://YOUR_SERVER_IP:{{TEMPORAL_UI_PORT}} for workflow diagnostics

5

If temporal-elasticsearch is unhealthy, run: sudo sysctl -w vm.max_map_count=262144

Need help? Check out our documentation for detailed guides.

Postiz FAQ

Common questions about self-hosting Postiz

How do I deploy Postiz with Server Compass?

Simply download Server Compass, connect to your VPS, and select Postiz from the templates list. Fill in the required configuration and click Deploy. The entire process takes under 3 minutes.

What are the system requirements for Postiz?

Postiz requires a minimum of 3072MB RAM. We recommend a VPS with at least 6144MB RAM for optimal performance. Any modern Linux server with Docker support will work.

Can I migrate my existing Postiz data?

Yes! Server Compass provides volume mapping that allows you to import existing data. You can also use standard Postiz backup and restore procedures.

How do I update Postiz to the latest version?

Server Compass makes updates easy. Simply click the Update button in your deployment dashboard, and the latest Postiz image will be pulled and deployed with zero downtime.

Is Postiz free to self-host?

Postiz is open-source software. You only pay for your VPS hosting (typically $5-20/month) and optionally Server Compass ($29 one-time). No subscription fees or per-seat pricing.

Ready to Self-Host Postiz?

Download Server Compass and deploy Postiz to your VPS in under 3 minutes. No Docker expertise required.

Download Server Compass