Postiz is the open-source social media scheduling tool that indie creators and small teams are choosing over expensive SaaS platforms like Buffer and Hootsuite. With Postiz, you can schedule posts across YouTube, TikTok, Instagram, Facebook, X (Twitter), LinkedIn, Reddit, Pinterest, Google Business, and GitLab — all from a single dashboard, running on a server you own for less than $10/month. In this guide, you'll learn exactly how to self-host Postiz on Docker, step by step.
Want to skip the server setup? Try the hosted Postiz free trial — same features, zero maintenance.
Try Postiz Free →What Is Postiz?
Postiz is an open-source, agentic social media scheduling and automation platform released under the AGPL-3.0 license. It started as a self-hostable alternative to commercial tools like Buffer and Later, and has since evolved into a full-featured social media OS with AI capabilities.
Unlike hosted-only tools, Postiz gives you two options:
- Cloud version — managed by the Postiz team, ready to use at postiz.pro
- Self-hosted version — you run it on your own infrastructure via Docker
Critically, the Postiz team states that "there is no difference between the hosted version and the self-hosted version" in terms of features. You get 100% of the functionality either way.
Why Self-Host Postiz on Docker?
Running Postiz on Docker gives you several advantages over the hosted version and every commercial alternative:
- Zero platform fees — no $6–$99/month per seat or per platform. Your only cost is your VPS (as low as $5/month on Hetzner or Oracle Free Tier)
- Full data ownership — your posts, analytics, and social media credentials never touch a third-party server
- No vendor lock-in — if Postiz disappears tomorrow, you have your data and your instance
- AI agent integration — the Agent CLI lets AI agents like Claude or OpenClaw interact directly with your scheduler via a structured tool interface
- Automation via API — native Node.js SDK, N8N custom node, and Make.com integration
- Run anywhere — on a VPS, your NAS, a Kubernetes cluster, or even a Raspberry Pi 4 (for light use)
Postiz vs. Buffer vs. Hootsuite vs. Later (2026)
Here's how Postiz stacks up against the established paid tools:
| Feature | Postiz | Buffer | Hootsuite | Later |
|---|---|---|---|---|
| Price (monthly) | Free (self-hosted) | $6+/platform | $99+/month | $18+/month |
| Open source | ✅ AGPL-3.0 | ❌ | ❌ | ❌ |
| Self-hostable | ✅ Docker | ❌ | ❌ | ❌ |
| AI caption generation | ✅ Built-in | ✅ Add-on | ✅ | Limited |
| Team collaboration | ✅ | ✅ | ✅ | ✅ |
| Public API | ✅ | ✅ | ✅ | Limited |
| N8N/Make integration | ✅ Native | Zapier only | Zapier only | Zapier only |
| AI Agent CLI | ✅ | ❌ | ❌ | ❌ |
Minimum Requirements for Self-Hosting Postiz
Before starting, make sure your server meets these requirements:
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 1 core | 2+ cores |
| RAM | 1 GB | 2 GB |
| Disk | 10 GB | 20+ GB |
| OS | Linux (Ubuntu 20.04+) | Ubuntu 22.04 LTS |
| Docker | 20.10+ | Latest stable |
| Docker Compose | v2 | v2 latest |
A budget VPS such as Hetzner Cloud (CX11 — ~$5/month), DigitalOcean Basic ($4–$6/month), or Oracle Cloud Free Tier all easily handle a personal Postiz installation.
Step-by-Step: Installing Postiz on Docker
Step 1: Spin Up a VPS
Create a new Ubuntu 22.04 LTS server. You'll connect via SSH as root or a sudo user. If you're using Oracle Cloud Free Tier, use the always-free Ampere A1 shape (4 cores, 24GB RAM) — it's more than sufficient for Postiz and many other self-hosted projects.
ssh root@your-server-ip
apt update && apt upgrade -y
Step 2: Install Docker and Docker Compose
Postiz distributes as a Docker image, so you need Docker Engine and Docker Compose installed. The easiest method is using the official convenience script:
curl -fsSL https://get.docker.com | sh
docker --version
docker compose version
If docker compose isn't available after install, install the plugin separately:
apt install docker-compose-plugin -y
Step 3: Create the Postiz Directory
mkdir -p /opt/postiz
cd /opt/postiz
Step 4: Create the Docker Compose File
Create a file named docker-compose.yml inside /opt/postiz. This is the standard Postiz Docker Compose configuration:
version: "3.8"
services:
postiz:
image: ghcr.io/gitroomhq/postiz-app/frontend:latest
container_name: postiz_frontend
restart: unless-stopped
ports:
- "3000:3000"
environment:
- FRONTEND_URL=http://localhost:3000
- BACKEND_URL=http://postiz_backend:3001
- NEXTAUTH_SECRET=your-secret-here
- NEXTAUTH_URL=http://localhost:3000
depends_on:
- postiz_backend
networks:
- postiz_network
postiz_backend:
image: ghcr.io/gitroomhq/postiz-app/backend:latest
container_name: postiz_backend
restart: unless-stopped
ports:
- "3001:3001"
environment:
- FRONTEND_URL=http://localhost:3000
- DATABASE_URL=postgresql://postiz:change_password@postiz_db:5432/postiz
- REDIS_URL=redis://postiz_redis:6379
- NEXTAUTH_SECRET=your-secret-here
- NEXTAUTH_URL=http://localhost:3000
depends_on:
- postiz_db
- postiz_redis
networks:
- postiz_network
postiz_db:
image: postgres:16-alpine
container_name: postiz_db
restart: unless-stopped
environment:
- POSTGRES_USER=postiz
- POSTGRES_PASSWORD=change_password
- POSTGRES_DB=postiz
volumes:
- postgres_data:/var/lib/postgresql/data
networks:
- postiz_network
postiz_redis:
image: redis:7-alpine
container_name: postiz_redis
restart: unless-stopped
volumes:
- redis_data:/data
networks:
- postiz_network
volumes:
postgres_data:
redis_data:
networks:
postiz_network:
driver: bridge
change_password and generate a strong NEXTAUTH_SECRET using openssl rand -base64 32. In production, use environment files or a secrets manager instead of hardcoding values in the compose file.
Step 5: Launch Postiz
With the compose file in place, start all containers:
cd /opt/postiz
docker compose up -d
Docker will pull the Postiz frontend, backend, PostgreSQL, and Redis images, then start them all. This takes 2–5 minutes on a fresh VPS. Check the status:
docker compose ps
docker compose logs -f
When you see logs indicating the backend and frontend are responding, Postiz is running.
Step 6: Set Up a Reverse Proxy (Recommended)
Direct access on ports 3000/3001 is fine for testing, but for a production setup you want HTTPS and a clean domain. Install Caddy as a reverse proxy — it automatically handles Let's Encrypt certificates:
apt install -y caddy
Edit /etc/caddy/Caddyfile:
postiz.yourdomain.com {
reverse_proxy localhost:3000
}
Then:
caddy fmt /etc/caddy/Caddyfile --overwrite
systemctl reload caddy
Now navigate to https://postiz.yourdomain.com — you'll see the Postiz login screen. Register your first account. The first user registered becomes the admin.
Want the hosted version instead? Skip the server setup and start scheduling in minutes with the Postiz cloud trial.
Try Postiz Free →How to Update Postiz Docker Installation
Postiz releases updates regularly. To update your self-hosted instance to the latest version:
cd /opt/postiz
docker compose pull
docker compose up -d
Docker pulls the new images and recreates the containers, preserving your volumes (database and Redis data). Updates typically take under 2 minutes.
To check which version you're running:
docker compose images
Connecting Your Social Media Accounts
Once logged in to your Postiz dashboard, connecting platforms is straightforward:
- Go to Settings → Channels
- Click Add Channel and select your platform (YouTube, TikTok, Instagram, Facebook, X, LinkedIn, Reddit, Pinterest, Google Business, or GitLab)
- Authenticate with OAuth — Postiz never stores your passwords, only OAuth tokens
- Assign the channel to your workspace
Postiz supports connecting multiple accounts per platform, making it practical for agencies and creators managing several brands.
Using the Postiz AI Agent CLI
One of Postiz's most forward-looking features is its Agent CLI — a structured tool interface that lets AI agents interact with your social media scheduler. This is useful for automated workflows where an AI decides what to post based on data it analyzes.
To set up the Agent CLI, install it in your automation environment and point it at your self-hosted Postiz instance's API endpoint. The Postiz GitHub repository has full documentation for the agent interface and available tools.
Popular use cases include:
- AI analyzing engagement data and scheduling follow-up content
- Automated cross-posting triggered by specific events
- AI agents that generate and post content based on RSS feeds or product updates
Backing Up Your Postiz Data
Because Postiz stores everything in PostgreSQL and Redis (both with Docker volumes), a simple backup script protects your data:
#!/bin/bash
BACKUP_DIR="/opt/postiz_backups"
mkdir -p $BACKUP_DIR
DATE=$(date +%Y%m%d_%H%M%S)
docker compose exec -T postiz_db pg_dump -U postiz postiz > $BACKUP_DIR/postiz_db_$DATE.sql
find $BACKUP_DIR -name "postiz_db_*.sql" -mtime +7 -delete
echo "Backup saved: postiz_db_$DATE.sql"
Run this daily via cron. Store backups on a separate volume or off-server for disaster recovery.
Troubleshooting Common Postiz Docker Issues
Postiz won't start after a reboot
Ensure Docker is set to start on boot: systemctl enable docker. With restart: unless-stopped in the compose file, containers should restart automatically after a server reboot.
Out of memory errors
Postiz (especially the Node.js backend) needs adequate RAM. 1GB works for light use; 2GB is the safe minimum for a VPS with other processes. Add swap if you're tight on RAM:
fallocate -l 2G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
Database connection errors
If the backend shows ECONNREFUSED errors, the database container may not be fully ready when the backend starts. The depends_on directive waits for the container to start but not for PostgreSQL to be fully initialized. Add a healthcheck to the database service or simply restart the backend after 30 seconds: docker compose restart postiz_backend.
Social media posts not publishing
Check the Redis and backend logs: docker compose logs postiz_backend | grep ERROR. Many publishing failures trace back to expired OAuth tokens — reconnect the channel in Settings → Channels.
Conclusion
Self-hosting Postiz on Docker is one of the smartest moves a creator, marketer, or small team can make in 2026. You get a professional-grade social media scheduling platform — with AI caption generation, team collaboration, multi-account support, an open API, and native N8N/Make.com integrations — for the cost of a budget VPS. There's no monthly per-seat fee, no vendor lock-in, and full data ownership.
The setup takes under 30 minutes, updates are a two-command operation, and the Postiz community is active on GitHub and Reddit's r/selfhosted. Whether you're a solo creator posting to three platforms or a team managing a dozen client accounts, Postiz on Docker scales to fit.
Prefer to skip the server maintenance? Try the hosted version of Postiz — all the same features, deployed and managed for you.
Get Started with Postiz Free →Frequently Asked Questions
What is Postiz and why self-host it?
Postiz is an open-source, agentic social media scheduling tool that supports YouTube, TikTok, Instagram, Facebook, X, LinkedIn, Reddit, Pinterest, and more. Self-hosting it on Docker gives you full data ownership, zero monthly fees, and a setup that runs on a $5 VPS or even a NAS in your closet.
What are the minimum requirements to self-host Postiz on Docker?
Postiz requires a Linux server with Docker and Docker Compose installed, at least 1GB RAM (2GB recommended), 10GB disk space, and Docker version 20.10 or later. A $5–10/month VPS from providers like Hetzner, DigitalOcean, or Oracle Free Tier works well.
How long does it take to set up Postiz on Docker?
A typical Docker-based Postiz installation takes 10–20 minutes on a fresh VPS. The official one-click deploy via Railway or the Docker Compose method both get you from zero to a fully working dashboard in well under half an hour.
Can I use Postiz with AI agents and automation tools?
Yes. Postiz includes a public API and SDKs for Node.js, N8N, Make.com, and Zapier. The new Agent CLI also lets AI agents like Claude or OpenClaw schedule posts directly through a structured tool interface — making it a powerful hub for AI-driven social media workflows.
How does Postiz compare to Buffer or Hootsuite?
Buffer and Hootsuite charge $6–$99/month per platform or per seat. Postiz is free and open-source under the AGPL-3.0 license. It supports nearly all the same platforms (YouTube, TikTok, Instagram, Facebook, X, LinkedIn, Reddit, Pinterest, Google Business, GitLab), adds AI caption generation, team collaboration, and self-hosting — all for the cost of your own server.
Does self-hosting Postiz mean I lose updates?
No. The self-hosted version receives the same feature updates as the hosted version — there is no difference in functionality between the two, according to the Postiz team. You pull the latest Docker image to update, keeping your instance current with every release.