A NethServer 8 module that integrates Postiz - a powerful open-source social media scheduling tool.
Postiz is a self-hosted platform that allows you to schedule and manage posts across multiple social media platforms from a single dashboard. It provides:
- Multi-platform scheduling for Twitter/X, LinkedIn, Facebook, Instagram, Threads, TikTok, YouTube, Reddit, Discord, and more
- Content calendar with visual scheduling
- Team collaboration with role-based access
- Media library for managing images and videos
- Analytics and insights for post performance
- AI-powered features for content generation
- Workflow automation with Temporal
This module brings Postiz's social media management capabilities to your NethServer infrastructure.
- π Easy scheduling across 15+ social platforms
- π Integrated with NethServer's security model
- π Automatic domain configuration with Traefik
- π Web-based management interface
- π Automated workflows with Temporal
- ποΈ PostgreSQL and Redis for data management
- π± Mobile-friendly UI
- π€ AI integration ready (OpenAI)
- NethServer 8 cluster
- At least 2GB RAM available
- Docker/Podman support
Instantiate the module with:
add-module ghcr.io/geniusdynamics/postiz:latest 1The output will return the instance name:
{
"module_id": "postiz1",
"image_name": "postiz",
"image_url": "ghcr.io/geniusdynamics/postiz:latest"
}Launch configure-module with the following parameters:
host: Fully qualified domain name for Postiztemporal_host: Fully qualified domain name for Temporal (workflow engine)http2https: Enable/disable HTTP to HTTPS redirection (true/false)lets_encrypt: Enable/disable Let's Encrypt certificate (true/false)
api-cli run configure-module --agent module/postiz1 --data - <<EOF
{
"host": "postiz.yourdomain.com",
"temporal_host": "temporal.yourdomain.com",
"http2https": true,
"lets_encrypt": true
}
EOFThis will:
- Start and configure the Postiz instance
- Start and configure the Temporal workflow engine
- Set up a virtual host in Traefik for external access
- Configure automatic HTTPS if enabled
You can also configure additional parameters through the web UI or API:
- Social Platform Integrations: GitHub, YouTube, Dribbble, Facebook, X/Twitter, Threads, TikTok, Slack, LinkedIn, Mastodon, Pinterest, Reddit, Discord
- Storage Settings: Local or cloud storage providers
- AI Features: OpenAI API integration
- Stripe Integration: For payment processing
- Registration Settings: Enable/disable user registration
- API Limits: Rate limiting configuration
- Access Postiz: Navigate to
https://postiz.yourdomain.com - Initial Setup: Register your admin account
- Connect Social Accounts: Authorize your social media platforms
- Schedule Posts: Use the content calendar to plan and schedule posts
- Monitor Analytics: Track post performance and engagement
api-cli run get-configuration --agent module/postiz1To update the Postiz module to the latest version:
api-cli run update-module --data '{"module_url":"ghcr.io/geniusdynamics/postiz:latest","instances":["postiz1"],"force":true}'This will:
- Pull the latest container images
- Restart services with the new version
- Preserve all data and configurations
remove-module --no-preserve postiz1The module automatically discovers and integrates with NethServer's centralized smarthost setup. When the smarthost configuration changes, the module automatically reloads its services.
The module consists of multiple services:
- postiz-app: Main Postiz application
- postiz-postgres: PostgreSQL database
- postiz-redis: Redis cache
- temporal: Workflow engine for background jobs
- temporal-ui: Temporal web interface
- temporal-postgresql: Temporal database
- temporal-elasticsearch: Temporal search index
- spotlight: Search and analytics
The module runs with comprehensive environment variables managed by the NethServer agent. Key variables include database connection details, social media API keys, and security settings.
Check environment variables:
runagent -m postiz1 envEnter the module's runtime environment:
runagent -m postiz1Inspect running containers:
runagent -m postiz1
podman psAccess container environment:
podman exec postiz-app envOpen shell in container:
podman exec -ti postiz-app shrunagent -m postiz1
journalctl -u postiz-app -fThe module includes a Vue.js-based web interface. For UI development:
- Navigate to the
ui/directory - Follow the NethServer UI development guide
Test the module using the provided script:
./test-module.sh <NODE_ADDR> ghcr.io/geniusdynamics/postiz:latestTests are written using Robot Framework.
The UI supports multiple languages and is translated via Weblate.
To contribute translations:
- Add the GitHub Weblate app to your repository
- Add your repository to hosted.weblate.org or request addition to the NS8 Weblate project
- π NethServer Documentation
- π Report Issues
- π¬ Community Forum
- π€ Contributing Guide
This project is licensed under the GPL-3.0 License - see the LICENSE file for details.