Deploy Postiz | Open-Source Social Media Scheduler for 30+ Platforms
1 click Self-host Postiz v2.11.3. Schedule, publish & automate social posts
Postiz w/o Temporal
Redis
Just deployed
/data
Postiz v2.11.3
Just deployed
/uploads
Just deployed
/var/lib/postgresql/data
Deploy and Host Postiz
This Railway template deploys Postiz v2.11.3 — the last version before Temporal became a required dependency — giving you a fully functional social media scheduling platform without the operational overhead of running a Temporal workflow engine. The template provisions three services: the Postiz app (ghcr.io/gitroomhq/postiz-app:v2.11.3), PostgreSQL, and Redis, all connected over Railway's private network with persistent volumes for uploads, database data, and Redis data.

About Hosting Postiz
Postiz (GitHub: gitroomhq/postiz-app) is an open-source social media scheduling and automation platform — a self-hosted alternative to Buffer, Hypefury, and Later. It centralises scheduling, AI-assisted content creation, and analytics across 17+ platforms including X (Twitter), Instagram, LinkedIn, Facebook, Reddit, Threads, and Mastodon.
Key features:
- Schedule posts across 30+ social platforms from one dashboard
- AI-powered content generation and auto-complete
- Team collaboration with comments and role management
- REST API + N8N/Make.com/Zapier-compatible automation
- MCP endpoint (
/api/mcp/{API_KEY}) for agent-based workflows - Analytics and engagement tracking
- Full data ownership — no vendor lock-in
Architecture: Postiz runs as a unified Next.js + Node.js app, backed by PostgreSQL (persistent storage) and Redis (job queues and caching). All three services communicate over Railway's private network — no public exposure of database ports.
Why Deploy Postiz
Running Postiz on a VPS means managing Docker Compose files, SSL certificates, reverse proxies, and database backups yourself. Railway handles all of that:
- Private networking — Postgres and Redis are never exposed publicly; services communicate via
RAILWAY_PRIVATE_DOMAIN - Persistent volumes —
/uploads,/var/lib/postgresql/data, and Redis/dataare all mounted automatically - Environment variable injection — secrets like
JWT_SECRETare auto-generated; database URLs are wired between services at deploy time - One-click deploy — the entire three-service stack is live in under two minutes
- Pinned to v2.11.3 — deliberately avoids the Temporal dependency introduced in v2.12+, keeping the stack lean
Common Use Cases of Postiz
- Solo creators and newsletters — schedule a week of content across LinkedIn, X, and Instagram in one session
- Marketing agencies — multi-user mode (
IS_GENERAL=true) lets teams collaborate on client accounts - Developer automation — use the REST API or MCP endpoint to publish posts from CI pipelines or AI agents
- Replacing SaaS schedulers — teams migrating off Buffer or Hypefury to cut monthly subscription costs
Dependencies for Postiz
- PostgreSQL — primary data store for users, posts, and scheduling data
- Redis — background job queue (
RUN_CRON=true) and session caching
Environment Variables Reference
| Variable | Description | Required |
|---|---|---|
MAIN_URL | Primary public URL of your Postiz instance | ✅ |
FRONTEND_URL | Public frontend URL (same as MAIN_URL in most setups) | ✅ |
NEXT_PUBLIC_BACKEND_URL | Public API endpoint, e.g. https://your-domain.up.railway.app/api | ✅ |
JWT_SECRET | 64-char secret for signing auth tokens — auto-generated | ✅ |
DATABASE_URL | Internal Postgres connection string — auto-wired | ✅ |
REDIS_URL | Internal Redis connection string — auto-wired | ✅ |
DISABLE_REGISTRATION | Set "true" after creating your admin account | ✅ |
IS_GENERAL | "true" enables multi-user mode required for self-hosting | ✅ |
STORAGE_PROVIDER | "local" uses the mounted /uploads volume | ✅ |
NOT_SECURED | "true" disables strict HTTPS checks (fine behind Railway's proxy) | Optional |
RUN_CRON | "true" enables background scheduled publishing jobs | ✅ |
Deployment Dependencies
- Docker image:
ghcr.io/gitroomhq/postiz-app:v2.11.3 - Postiz GitHub repository
- Postiz official documentation
- Node.js 20+, PostgreSQL 15+, Redis 7+ (all handled by the template)
Postiz vs Buffer vs Hypefury
| Postiz (self-hosted) | Buffer | Hypefury | |
|---|---|---|---|
| Cost | Free (infra only) | $6–$120/mo | $19–$79/mo |
| Open source | ✅ | ❌ | ❌ |
| AI content tools | ✅ | Limited | ✅ |
| Self-hostable | ✅ | ❌ | ❌ |
| Mastodon/Bluesky | ✅ | ❌ | ❌ |
| API/MCP access | ✅ | Limited | ❌ |
Postiz is the only option if you need full data ownership, niche platform support (Mastodon, Threads, Bluesky), or agent/API-driven publishing workflows.
Self-Hosting Postiz Outside Railway
For VPS deployments (Ubuntu/Debian), the minimal Docker Compose setup:
services:
postiz:
image: ghcr.io/gitroomhq/postiz-app:v2.11.3
restart: always
environment:
MAIN_URL: "https://your-domain.com"
FRONTEND_URL: "https://your-domain.com"
NEXT_PUBLIC_BACKEND_URL: "https://your-domain.com/api"
JWT_SECRET: "your-64-char-random-secret"
DATABASE_URL: "postgresql://postiz:password@postgres:5432/postiz"
REDIS_URL: "redis://redis:6379"
IS_GENERAL: "true"
STORAGE_PROVIDER: "local"
UPLOAD_DIRECTORY: "/uploads"
RUN_CRON: "true"
volumes:
- ./uploads:/uploads
ports:
- "5000:5000"
depends_on: [postgres, redis]
postgres:
image: postgres:17-alpine
environment:
POSTGRES_USER: postiz
POSTGRES_PASSWORD: password
POSTGRES_DB: postiz
volumes:
- pgdata:/var/lib/postgresql/data
redis:
image: redis:7.2
volumes:
- redisdata:/data
volumes:
pgdata:
redisdata:
After your first login, set DISABLE_REGISTRATION="true" and restart to lock down public signups.
How Much Does Postiz Cost?
Postiz is 100% open-source and free to self-host — you pay only for infrastructure. On Railway, the three-service stack (app + Postgres + Redis) typically runs within the Hobby plan ($5/month). A managed cloud version exists at postiz.com starting at ~$23/month for 5 channels, but self-hosting via Railway gives you unlimited channels at infrastructure cost only.
Getting Started with Postiz After Deploy
Once Railway finishes deploying, open the public URL assigned to your Postiz service. Create your first account — this becomes the admin account. Immediately after, set DISABLE_REGISTRATION="false" → "true" in the environment variables tab to prevent unwanted signups. Then navigate to Settings → Providers to connect your first social media platform using its OAuth credentials. Create your first scheduled post from the dashboard calendar view.

FAQ
How do I deploy latest version of Postiz?
Latest version of postiz requires temporal to be configured. I have packaged that in a railway template and you can 1 click deploy that here -
Is Postiz open-source? Yes. Postiz is fully open-source under the Apache 2.0 license at github.com/gitroomhq/postiz-app.
Why is this template pinned to v2.11.3? Postiz v2.12+ requires Temporal, a workflow orchestration engine that adds significant operational complexity. v2.11.3 is the last fully functional release without it — ideal for straightforward self-hosted deployments.
Which social platforms does Postiz support? X (Twitter), Instagram, LinkedIn, Facebook, Reddit, Threads, Mastodon, Bluesky, TikTok, YouTube, and more — 17+ platforms total.
Can I upgrade to v2.12+ later?
Yes, but you'll need to add a Temporal service. See the official migration guide before upgrading. Or you can also find the railway template here -
How do I connect social accounts? Go to Settings → Providers in the Postiz dashboard and enter the OAuth app credentials for each platform you want to connect.
Is there a free tier? Self-hosting is free. Railway's Hobby plan ($5/month) comfortably covers the resource requirements for personal or small-team use.
Template Content
Redis
redis:8.2.1Postiz v2.11.3
ghcr.io/gitroomhq/postiz-app:v2.11.3