Postiz is an open-source social media scheduling platform that handles post queuing, multi-platform OAuth connections, media uploads, and scheduled publishing — all running in your own infrastructure. The trade-off of self-hosting is that failures cascade quietly: the Redis queue broker goes down, scheduled posts pile up silently, and you only find out when a client asks why nothing published today. Vigilmon gives you HTTP, TCP, and heartbeat monitors covering every Postiz component so you catch failures the moment they happen.
What You'll Set Up
- Frontend web server availability monitor (port 4200)
- API backend health check (port 3000)
- PostgreSQL database connectivity probe
- Redis queue broker TCP monitor
- Post scheduling queue heartbeat
- SSL certificate monitoring
- Alert channel configuration
Prerequisites
- Postiz deployed via Docker Compose or a Node.js process manager
- Frontend accessible at port
4200, API at port3000 - A free Vigilmon account
Step 1: Monitor the Postiz Frontend
The Postiz Next.js frontend serves the scheduling dashboard at port 4200. Add an HTTP monitor:
- Log in to vigilmon.online and click Add Monitor.
- Set Type to
HTTP / HTTPS. - Enter your frontend URL:
https://postiz.yourdomain.com(orhttp://yourserver:4200if not behind a reverse proxy). - Set Check interval to
1 minute. - Set Expected HTTP status to
200. - Click Save.
If Postiz is behind Nginx or Caddy, monitor the public domain — this also validates your reverse proxy configuration, not just the Node.js process.
Step 2: Monitor the API Backend
The Postiz API (port 3000) handles all scheduling, OAuth, and media operations. Most Postiz deployments expose a health endpoint you can probe directly:
- Click Add Monitor → HTTP / HTTPS.
- Enter:
https://postiz.yourdomain.com/api/health(orhttp://yourserver:3000/health). - Set Expected HTTP status to
200. - Set Check interval to
1 minute. - Under Keyword match, enter
okorhealthy. - Click Save.
If Postiz doesn't expose a /health route in your version, probe the root API path instead:
http://yourserver:3000/
A 200 or 404 response both confirm the API process is alive. A connection refused or 502 means the API is down.
You can also add a TCP monitor for port 3000 as a lower-level backstop:
- Click Add Monitor → TCP Port.
- Enter your server hostname and port
3000. - Set Check interval to
1 minute. - Click Save.
Step 3: Check PostgreSQL Connectivity
Postiz stores all posts, user accounts, and OAuth tokens in PostgreSQL. A database outage prevents any scheduling or publishing from working. Add a TCP monitor for the Postgres port:
- Click Add Monitor → TCP Port.
- Enter your database host and port
5432. - Set Check interval to
2 minutes. - Click Save.
If your PostgreSQL instance is on the same host as Postiz and not exposed externally, use a Vigilmon heartbeat from a health check script instead:
#!/bin/bash
# /usr/local/bin/postiz-db-check.sh
pg_isready -h localhost -p 5432 -U postiz -d postiz
if [ $? -eq 0 ]; then
curl -fsS https://vigilmon.online/heartbeat/YOUR_DB_HEARTBEAT_ID
fi
Run every 2 minutes via cron:
*/2 * * * * /usr/local/bin/postiz-db-check.sh
Step 4: Monitor the Redis Queue Broker
Postiz uses Redis as the queue broker for deferred post scheduling and worker coordination. If Redis goes down, the scheduling worker silently stops consuming jobs — posts queue up but never publish.
Add a TCP monitor for Redis:
- Click Add Monitor → TCP Port.
- Enter your Redis host and port
6379. - Set Check interval to
1 minute. - Click Save.
For Redis instances protected by requirepass, the TCP check still succeeds as long as the port is reachable — the handshake doesn't require authentication for port probing.
If you're running Redis in Docker, verify the port is exposed in your docker-compose.yml:
redis:
image: redis:7-alpine
ports:
- "6379:6379"
Step 5: Heartbeat for the Post Scheduling Worker
The Postiz worker process pulls jobs from Redis and publishes posts at their scheduled times. This worker has no HTTP endpoint — use a Vigilmon heartbeat to confirm it's running and processing.
- Click Add Monitor → Cron Heartbeat.
- Set Expected ping interval to
5 minutes. - Set Grace period to
2 minutes. - Copy the heartbeat URL.
Add a ping to your Postiz worker process or wrap your startup script:
#!/bin/bash
# /usr/local/bin/postiz-worker-watchdog.sh
# Check if the Postiz worker process is running
if pgrep -f "postiz.*worker" > /dev/null; then
curl -fsS https://vigilmon.online/heartbeat/YOUR_WORKER_HEARTBEAT_ID
fi
Run via cron every 5 minutes:
*/5 * * * * /usr/local/bin/postiz-worker-watchdog.sh
If you run Postiz in Docker, check the container health instead:
#!/bin/bash
CONTAINER="postiz-worker"
if [ "$(docker inspect -f '{{.State.Running}}' $CONTAINER 2>/dev/null)" = "true" ]; then
curl -fsS https://vigilmon.online/heartbeat/YOUR_WORKER_HEARTBEAT_ID
fi
Step 6: SSL Certificate and Alert Configuration
SSL monitoring:
- Open the frontend HTTP monitor from Step 1.
- Enable Monitor SSL certificate.
- Set Alert when certificate expires in less than
21 days. - Click Save.
Alert thresholds:
- Go to Alert Channels and add Slack, email, or a webhook.
- Frontend monitor: Consecutive failures before alert →
2(Next.js processes occasionally restart). - API monitor: Consecutive failures before alert →
2. - Redis TCP monitor: Consecutive failures before alert →
1(Redis drops are never transient). - Heartbeat monitors alert automatically after one missed interval.
Maintenance windows for deployments:
Use the Vigilmon API to suppress alerts during Postiz upgrades:
curl -X POST https://vigilmon.online/api/maintenance \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{"monitor_id": "FRONTEND_MONITOR_ID", "duration_minutes": 10}'
docker compose pull && docker compose up -d
Summary
| Monitor | Target | What It Catches |
|---|---|---|
| HTTP frontend | https://postiz.yourdomain.com | Next.js process crash, reverse proxy failure |
| HTTP API | /api/health on port 3000 | API backend crash, startup failure |
| TCP API port | Port 3000 | API process not listening |
| TCP PostgreSQL | Port 5432 | Database down, connection refused |
| TCP Redis | Port 6379 | Queue broker down, worker stalls |
| Cron heartbeat | Worker watchdog | Scheduling worker crash, jobs not processing |
| SSL certificate | Public domain | Let's Encrypt renewal failure |
Postiz handles your clients' social media presence — a missed post due to a silent Redis or worker failure is a real business impact. With Vigilmon monitoring every layer of the stack, you'll be alerted the moment any component fails, giving you time to intervene before scheduled content goes unpublished.