Docker setup for Postiz - an open-source social media scheduling tool using the official Docker images.
Get Postiz running with Docker in minutes:
# Start the services
make start
# Access Postiz at http://localhost:5000
# Complete setup and create your account
# View logs
make logs
# Stop when done
make stop
Postiz is an open-source alternative to Buffer, Hypefury, and other social media scheduling tools. It supports:
- Social Platforms: X (Twitter), LinkedIn, Instagram, Facebook, YouTube, TikTok, Reddit, Discord, Slack, Mastodon, Bluesky, and more
- AI Features: AI-powered content generation and optimization
- Team Collaboration: Multi-user support with role-based permissions
- Analytics: Comprehensive performance tracking and insights
- Self-Hosted: Full control over your data and deployment
This Docker setup provides a complete Postiz environment:
Internet → http://localhost:5000 → Postiz App (official image)
↓
PostgreSQL 17
↓
Redis 7.2
- postiz: Main application using
ghcr.io/gitroomhq/postiz-app:latest
- postiz-postgres: PostgreSQL database for persistent storage
- postiz-redis: Redis for caching and background job queues
The setup follows the official Postiz Docker documentation with sensible defaults for local development:
- ✅ Web Interface: Complete Postiz UI at http://localhost:5000
- ✅ API Access: RESTful API for integrations
- ✅ File Storage: Local file storage for media uploads
- ✅ Database: PostgreSQL with persistent volumes
- ✅ Background Jobs: Redis-powered job processing
- ✅ Health Checks: Built-in service health monitoring
To connect social media platforms, you'll need API credentials from each service. See the Providers Documentation for setup guides:
- X (Twitter): API v2 keys and tokens
- LinkedIn: OAuth client credentials
- Facebook/Instagram: Meta developer app
- YouTube: Google API credentials
- And more...
Command | Description |
---|---|
make start |
Start all services in background |
make stop |
Stop and remove containers |
make logs |
Follow logs for all services |
make logs SERVICE=postiz |
Follow logs for specific service |
make enter |
Enter the main container |
make help |
Show all available commands |
- 📖 Complete Docker Setup Guide - Detailed setup and configuration
- 🔧 Troubleshooting Guide - Common issues and solutions
- 🔒 Security Considerations - Development vs production
- 📚 Official Postiz Docs - Full Postiz documentation
This setup includes NOT_SECURED=true
for development convenience. Do not use this configuration in production. For production deployments:
- Remove
NOT_SECURED=true
- Use HTTPS with valid SSL certificates
- Change default passwords and secrets
- Implement proper access controls
See the Security Considerations section for full details.
To update to the latest Postiz version:
make stop
docker compose pull
make start
For advanced deployments with encrypted secrets:
# Initialize encryption
make init-encrypt
# Add secrets to ops/secrets/postiz-application-secrets/values.dec.yaml
# Then encrypt them
make encrypt-secrets SECRETS_DIR=./ops/secrets/postiz-application-secrets
This repository can automatically sync certain files to application repositories. To enable template sync, add the application
topic to your repository.
Synced Files: GitHub workflows, configuration files, developer tooling
For details, see the Template Sync Documentation.
Contributions welcome! Please:
- Open an issue describing the change
- Use Conventional Commits for branch + commit messages
- Add / adjust tests where behavior changes
- Update docs (README / TechDocs / ADRs) when altering architecture
- Official Postiz Documentation: docs.postiz.com
- GitHub Repository: gitroomhq/postiz-app
- Discord Community: discord.postiz.com
Distributed under the terms of the MIT license. See LICENSE
for details.
This Docker setup uses the official Postiz images. Postiz itself is licensed under AGPL-3.0.