In today’s fast-paced digital world, managing multiple social media accounts across different platforms is exhausting. Content creators, marketers, and developers spend countless hours switching between apps, scheduling posts manually, and missing optimal posting times. What if you could schedule weeks worth of social media content in minutes, powered by AI, completely under your control?
Enter Postiz—an open-source, self-hosted social media scheduling tool that gives you the power to manage all your social media platforms from a single, unified interface. With AI-powered content suggestions, team collaboration features, and analytics, Postiz offers an alternative to expensive services like Buffer, Hypefury, and Twitter Hunter without sacrificing functionality or data privacy.
Whether you’re a developer looking to self-host a scheduling solution, a content creator managing multiple platforms, or a business seeking control over your social media workflow, this comprehensive guide will walk you through everything you need to know about Postiz—from installation to advanced usage strategies.
What is Postiz?
Postiz is an open-source, self-hosted social media scheduling and management platform built with modern technologies (NestJS, NextJS, PostgreSQL, and Redis). Available at github.com/gitroomhq/postiz-app, Postiz enables you to schedule and manage social media posts across multiple platforms while maintaining complete control over your data and workflow.
How Postiz Works
Postiz operates through a straightforward but powerful workflow:
- Connect Accounts: Securely link your social media accounts using official OAuth authentication
- Create Content: Write and schedule posts using the intuitive editor
- AI Assistance: Leverage AI features to optimize content, generate captions, or suggest improvements
- Schedule Posts: Set specific posting times across multiple platforms simultaneously
- Analyze Results: Track post performance with built-in analytics and engagement metrics
- Collaborate: Invite team members to manage and approve content before posting
Why Postiz Stands Out
Unlike proprietary scheduling tools, Postiz is:
- Open-Source: Transparent code you can audit, modify, and contribute to
- Self-Hosted: Your data stays on your servers, never shared with third parties
- Privacy-First: Direct platform authentication using official OAuth flows, no API key storage
- Completely Free: No subscription fees, no usage limits, no tier restrictions
- Community-Driven: Maintained by a vibrant community with 24k+ GitHub stars and 64+ contributors
- AI-Powered: Built-in AI features for content optimization and suggestions
- Multi-Platform: Supports X (Twitter), Bluesky, Mastodon, Discord, and growing integrations
Key Features and Benefits
Core Scheduling Features
Multi-Platform Management: Schedule posts to multiple platforms simultaneously with platform-specific optimizations. Write once, schedule everywhere.
AI-Powered Content Tools:
- Generate post suggestions based on trending topics
- Auto-optimize content for each platform
- AI caption generation and improvement
- Content recommendations for maximum engagement
Team Collaboration:
- Invite team members to collaborate on content
- Content approval workflows
- Comment and discuss drafts before publishing
- Assign tasks to specific team members
Advanced Scheduling:
- Schedule posts for specific times and dates
- Recurring post automation
- Optimal posting time suggestions
- Timezone-aware scheduling
Analytics and Insights:
- Track post performance across platforms
- Engagement metrics and reach statistics
- Audience growth tracking
- Content performance analysis
Supported Social Platforms
| Platform | Features | Status |
|---|---|---|
| X (Twitter) | Full scheduling, analytics, threads | Fully Supported |
| Bluesky | Post scheduling, analytics | Fully Supported |
| Mastodon | Post scheduling, federation support | Fully Supported |
| Discord | Channel messaging, community posts | Fully Supported |
| Professional posts, company pages | Supported | |
| Image posts, captions | Supported | |
| TikTok | Video scheduling, drafts | Supported |
| YouTube | Community posts, premieres | Supported |
Self-Hosting Advantages
Data Privacy: Your social media data, scheduling history, and analytics never leave your servers. Complete control and ownership.
Cost Efficiency: No recurring subscription fees. Host on affordable hardware and scale as needed.
Customization: Modify the code to match your specific workflow and requirements.
Compliance: Meets GDPR, CCPA, and other privacy regulations by default.
Reliability: Your scheduling tool works independently of service provider uptime or policy changes.
System Requirements
Before installing Postiz, ensure your system meets these requirements.
Hardware Requirements
| Component | Minimum | Recommended |
|---|---|---|
| CPU | 2 cores | 4+ cores |
| RAM | 2 GB | 4-8 GB |
| Storage | 20 GB | 50+ GB |
| Network | Stable internet | 1+ Mbps |
Software Dependencies
Required:
- Node.js: 18+ (LTS recommended)
- npm: 8+ or yarn 3+
- Git: For cloning the repository
- Docker: For containerized deployment (optional but recommended)
- PostgreSQL: 12+ (or use Docker)
- Redis: For job queue management (or use Docker)
Optional:
- Docker Compose: For complete stack deployment
- Nginx/Caddy: For reverse proxy and SSL
- pm2: For production process management
Network Requirements
- Outbound HTTPS: For OAuth authentication with social platforms
- Port 3000: Default Postiz port (configurable)
- Static IP or Dynamic DNS: For consistent access
- SSL/TLS Certificate: Recommended for production (Let’s Encrypt compatible)
Browser Compatibility
- Chrome/Chromium: 90+
- Firefox: 88+
- Safari: 14+
- Edge: 90+
- Mobile browsers: Responsive design supported
Installation Guide: Step-by-Step
Postiz offers multiple installation methods. Choose the one that fits your needs and technical comfort level.
Method 1: Docker Compose Installation (Recommended)
This is the fastest and most comprehensive way to deploy Postiz with all required services.
Prerequisites
- Docker and Docker Compose installed
- At least 4 GB available RAM
- 30 GB free disk space
- Basic familiarity with terminal/command line
Step 1: Clone the Repository
# Clone Postiz repository
git clone https://github.com/gitroomhq/postiz-app.git
cd postiz-app
# View available branches (optional)
git branch -aStep 2: Set Up Environment Configuration
Create a .env file with required variables:
# Copy the example environment file
cp .env.example .env
# Edit the configuration
nano .envAdd these essential variables:
# Database Configuration
DATABASE_URL=postgresql://postiz:postiz@postgres:5432/postiz
POSTGRES_USER=postiz
POSTGRES_PASSWORD=your_secure_password
POSTGRES_DB=postiz
# Redis Configuration
REDIS_URL=redis://redis:6379
# Application Settings
NODE_ENV=production
PORT=3000
NEXTAUTH_SECRET=your_super_secret_key_here
NEXTAUTH_URL=http://localhost:3000
# Email Configuration (for notifications)
RESEND_API_KEY=your_resend_api_key
# Social Platform OAuth (optional, add as needed)
TWITTER_CLIENT_ID=your_twitter_client_id
TWITTER_CLIENT_SECRET=your_twitter_secret
# AI Features (optional)
OPENAI_API_KEY=your_openai_key
# JWT Secret for API
JWT_SECRET=your_jwt_secret_keyImportant: Generate secure secrets using:
# Generate a strong secret
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"Step 3: Review Docker Compose Configuration
The docker-compose.yml file includes all required services. Verify it includes:
services:
postgres:
image: postgres:15-alpine
environment:
POSTGRES_USER: postiz
POSTGRES_PASSWORD: your_secure_password
POSTGRES_DB: postiz
volumes:
- postgres_data:/var/lib/postgresql/data
redis:
image: redis:7-alpine
postiz:
build: .
ports:
- "3000:3000"
depends_on:
- postgres
- redis
environment:
DATABASE_URL: postgresql://postiz:postiz@postgres:5432/postiz
REDIS_URL: redis://redis:6379
volumes:
- .:/app
volumes:
postgres_data:Step 4: Start All Services
# Start all services in background
docker-compose up -d
# Verify services are running
docker-compose ps
# View logs (optional)
docker-compose logs -f postizWait 2-3 minutes for all services to initialize.
Step 5: Access Postiz Web Interface
Open your browser and navigate to:
http://localhost:3000
You’ll see the Postiz login page. Create your account on first access.
Step 6: Verify Installation
Check that everything is working:
# Test database connection
docker-compose exec postgres psql -U postiz -d postiz -c "SELECT version();"
# Check Redis connectivity
docker-compose exec redis redis-cli ping
# View application logs
docker-compose logs postiz | head -20Method 2: Manual Installation (Development Setup)
Perfect for developers who want to contribute or customize Postiz.
Prerequisites
- Node.js 18+ installed
- PostgreSQL 12+ running locally
- Redis running locally
- Git installed
Verify prerequisites:
node --version
npm --version
psql --version
redis-cli --versionStep 1: Clone and Navigate
git clone https://github.com/gitroomhq/postiz-app.git
cd postiz-appStep 2: Install Dependencies
# Install npm dependencies
npm install
# Or if using yarn
yarn installStep 3: Configure Environment
# Copy environment template
cp .env.example .env
# Edit configuration with your values
nano .envStep 4: Initialize Database
# Create database
createdb postiz
# Run migrations
npm run db:migrate
# Seed initial data (optional)
npm run db:seedStep 5: Start Development Server
# Start the development server with hot reload
npm run dev
# Or run production build
npm run build
npm startThe application will start on http://localhost:3000.
Method 3: Cloud Deployment
Deploy Postiz on cloud platforms like Vercel, Railway, or DigitalOcean:
- Vercel: Limited (frontend only, requires custom backend)
- Railway: Full support with one-click deployment
- DigitalOcean App Platform: Complete deployment support
- Heroku: No longer free tier available
For cloud deployments, follow platform-specific guides on the Postiz documentation.
Troubleshooting Installation Issues
Port 3000 Already in Use
# Find process using port 3000
lsof -i :3000
# If using Docker, change the port in docker-compose.yml
# Change "3000:3000" to "8080:3000"
docker-compose restartDatabase Connection Failed
# Verify PostgreSQL is running
pg_isready -h localhost -p 5432
# Check credentials in .env file
# Verify DATABASE_URL format: postgresql://user:password@host:port/database
docker-compose logs postgresRedis Connection Error
# Verify Redis is running
redis-cli ping
# Should return "PONG"
# If using Docker
docker-compose exec redis redis-cli pingOut of Memory
# Increase memory allocation in docker-compose.yml
services:
postiz:
mem_limit: 2g # Increase from defaultInitial Configuration
After accessing Postiz for the first time, complete these setup steps.
Step 1: Create Admin Account
- Visit http://localhost:3000
- Click Sign Up
- Enter your email and create a strong password
- Verify your email if configured
- You’re now logged in as the administrator
Step 2: Connect Social Media Accounts
- Go to Settings → Accounts (or similar)
- Click + Add Account
- Select the social platform (X, Bluesky, Discord, etc.)
- Authorize using official OAuth flow
- Postiz securely stores access tokens
Security Note: Postiz never asks for passwords or API keys. Always authenticate through official OAuth flows.
Step 3: Configure Workspace Settings
- Navigate to Settings → Workspace
- Set your workspace name and timezone
- Configure email notifications
- Enable/disable AI features if available
- Save settings
Step 4: Invite Team Members (Optional)
- Go to Settings → Team Members
- Click Invite Member
- Enter team member email
- Assign role (Admin, Editor, Viewer)
- Send invitation
How to Use Postiz
Creating Your First Scheduled Post
Step 1: Navigate to Create Post
- Click the + New Post button (usually in the left sidebar)
- Select platforms where you want to post
- Choose platforms: X, Bluesky, Mastodon, Discord, etc.
Step 2: Write Your Content
- Main Content Area: Type your post content
- Character Counter: Shows remaining characters for each platform
- Media Upload: Add images, videos, or GIFs
- Preview: See how your post looks on each platform
- Hashtags: Add relevant hashtags
Step 3: Optimize with AI (If Enabled)
- Click AI Suggestions (if available)
- Review generated improvements
- Accept or modify suggestions
- AI can optimize for:
- Engagement (better captions)
- SEO (keyword optimization)
- Platform-specific formatting
Step 4: Schedule Your Post
- Click Schedule button
- Choose posting time:
- Immediate: Post now
- Schedule Later: Set specific date/time
- Recurring: Set up repeating posts
- Select timezone
- Preview final post
- Click Schedule Post
Example: Schedule a post for Tuesday, 9 AM in your timezone to reach maximum audience.
Step 5: Monitor Post Performance
- After posting, view analytics from Analytics dashboard
- Track metrics:
- Impressions
- Engagement rate
- Click-throughs
- Comments and shares
Managing Multiple Accounts
Workflow for Team Collaboration:
- Create Content: One team member writes posts
- Assign for Review: Assign posts to another team member
- Review and Comment: Reviewers add feedback
- Approve: Once approved, auto-schedule posts
- Track Results: Monitor performance across accounts
Using the Analytics Dashboard
Key Metrics Tracked:
- Total Posts: Number of posts scheduled and published
- Engagement Rate: Average interaction percentage
- Best Performing Posts: Top posts by engagement
- Audience Growth: Follower/subscriber changes
- Platform Performance: Which platform performs best
Advanced Scheduling Strategies
Content Calendar View:
- See all scheduled posts in a calendar format
- Identify posting patterns and gaps
- Reschedule posts by drag-and-drop
Bulk Scheduling:
- Import CSV with multiple posts
- Schedule in batch operations
- Save time managing large content volumes
Optimal Time Analysis:
- Postiz analyzes when your audience is most active
- Suggests best posting times
- Auto-schedule for maximum reach
Advanced Features and Best Practices
Leveraging AI Features
If AI integration is enabled in your Postiz instance:
Content Generation:
Input: "Write a post about productivity tips"
Output: AI generates platform-optimized suggestionsCaption Optimization:
- Analyzes engagement history
- Suggests improvements to increase interactions
- Recommends hashtag strategies
Topic Suggestions:
- AI identifies trending topics in your niche
- Recommends relevant content ideas
- Aligns with audience interests
Team Workflows and Approval Processes
Best Practices:
- Content Creator: Drafts posts
- Manager Review: Approves content and tone
- Marketing Lead: Ensures brand consistency
- Schedule: Posts go live at optimal times
API Integration
Postiz provides a Public API for advanced integrations:
# Example: Fetch scheduled posts via API
curl -X GET http://localhost:3000/api/posts \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Example: Create post programmatically
curl -X POST http://localhost:3000/api/posts \
-H "Authorization: Bearer YOUR_JWT_TOKEN" \
-H "Content-Type: application/json" \
-d '{
"content": "Your post content",
"platforms": ["twitter", "bluesky"],
"scheduledAt": "2025-11-15T10:00:00Z"
}'Integration with External Tools
Postiz integrates with:
- Make.com: Automate workflows across apps
- N8N: Create custom automation scenarios
- NodeJS SDK: Build custom applications
- Zapier: Connect Postiz with other tools
Monitoring and Performance Optimization
Best Practices:
- Regular Backups: Backup PostgreSQL database weekly
- Monitor Resources: Check CPU/memory usage
- Clean Up Old Data: Archive completed posts
- Update Regularly: Keep Postiz updated
# Backup database
docker-compose exec postgres pg_dump -U postiz postiz > backup.sql
# Update Postiz
docker-compose pull
docker-compose up -d
# Check system resources
docker statsTroubleshooting and Common Issues
OAuth Authentication Fails
Problem: “Authorization failed” when connecting social accounts
Solutions:
- Verify OAuth credentials are correct in
.env - Check callback URL matches platform settings
- Ensure
NEXTAUTH_URLis correctly configured - Clear browser cookies and try again
- Verify social platform allows the redirect URL
Posts Not Scheduling
Problem: “Failed to schedule post” error
Solutions:
- Check connected accounts are still authorized
- Verify Redis is running:
docker-compose logs redis - Check job queue:
npm run queue:status - Restart Postiz:
docker-compose restart postiz - Review error logs:
docker-compose logs postiz | grep -i error
Performance Issues
Problem: Slow page loading or unresponsive interface
Solutions:
- Check system resources:
docker stats - Increase RAM allocation if needed
- Optimize database:
npm run db:optimize - Clear cache:
docker-compose exec redis redis-cli FLUSHALL - Review active processes:
docker-compose exec postiz pm2 list
Database Connection Errors
Problem: “Database connection refused”
Solutions:
- Verify PostgreSQL container is running:
docker-compose ps - Check credentials in
.envfile - Inspect database logs:
docker-compose logs postgres - Restart database:
docker-compose restart postgres - Verify
DATABASE_URLenvironment variable
Email Notifications Not Working
Problem: Not receiving scheduled post notifications
Solutions:
- Configure Resend API key in
.env - Verify email is correctly configured
- Check spam/junk folders
- Review email logs:
docker-compose logs postiz | grep -i email - Test email manually via settings
Conclusion
Postiz empowers creators, marketers, and developers to take control of their social media presence with a powerful, open-source scheduling platform. With AI-powered features, multi-platform support, team collaboration, and complete data privacy, Postiz is the modern alternative to expensive, proprietary scheduling tools.
Key Takeaways
- Open-Source & Self-Hosted: Complete control over your data and workflow
- AI-Powered Features: Optimize content and increase engagement automatically
- Multi-Platform Support: Schedule to X, Bluesky, Mastodon, Discord, and more
- Team Collaboration: Invite team members and streamline approval workflows
- No Subscription Fees: Host for free with just infrastructure costs
- Privacy-First: Direct OAuth authentication, no API key storage
Recommended Next Steps
1. Install Postiz Today
Use the Docker Compose method for fastest setup. You’ll be scheduling posts within 30 minutes.
2. Connect Your First Account
Authorize one social media account and test scheduling a post.
3. Explore AI Features
If available, try AI-powered content suggestions and optimization.
4. Invite Team Members
Set up collaboration workflows with your content team.
5. Star the Repository
Support the project by starring gitroomhq/postiz-app on GitHub.
6. Join the Community
Star the Repository
If you find Postiz valuable, please star the project on GitHub: Star Postiz on GitHub
Your stars help the project gain visibility and encourage continued development by the open-source community.
Contribute to Postiz
Have ideas for improvements? The Postiz community welcomes contributions:
- Fork the repository
- Create a feature branch
- Make your improvements
- Submit a pull request
See the Contributing Guide for details.
Additional Resources
Official Links:
Integration Guides:
Related Posts:
- Home Assistant Guide: Smart Home Automation Setup
- Docker Beginner’s Guide: Containerization Explained
- PostgreSQL Setup and Optimization
Important Compliance and Ethical Use Notes
Platform Compliance:
- Postiz uses official OAuth flows and respects platform terms of service
- Always verify compliance with each social platform’s automation policies
- Do not use for spam, harassment, or platform manipulation
- Respect rate limits and API guidelines
Data Security:
- Postiz never stores social platform passwords or API keys
- All authentication happens directly with the social platform
- Implement HTTPS/SSL for production deployments
- Regularly update Postiz for security patches
- Back up your database regularly
Best Practices:
- Use strong, unique passwords for your Postiz admin account
- Enable authentication logging and monitoring
- Audit team member access regularly
- Review scheduled posts before publishing
- Monitor analytics to ensure authentic engagement








