Jellystat measures Jellyfin library trends, uptime, and activity. It stores snapshots in PostgreSQL and presents dashboards for admin review.
This page documents the jellystat service and its Postgres companion container.
- Container:
jellystat
- Image:
cyfershepard/jellystat:latest
- Companion DB:
jellystat_db (postgres:16-alpine)
- Stack: Smithflix Stack
- Docker network:
smithflix_default
- Restart policy:
unless-stopped
- Public hostname:
jellystat.better-than.tv
- Health states: both containers healthy on
2026-04-07
¶ Config and Data Paths
- App data root:
/srv/docker/jellystat
- Postgres data root:
/srv/docker/jellystat/db
- Backups and logs:
/srv/docker/jellystat/backup-data and /srv/docker/jellystat/logs
- LAN URL:
http://192.168.0.113:8089
- Public URL:
https://jellystat.better-than.tv
- Host port mapping:
8089 -> 8089
¶ Authentication and Secret Locations
- Jellystat stores its DB credentials inside the container environment (see
POSTGRES_* vars)
- Secrets are only accessible via the app config and the Postgres user defined there
- Check the ingestion scheduler after Jellyfin upgrades; it polls the media server for up-to-date stats
- If the dashboard fails to load, restart the
jellystat container and ensure jellystat_db is still healthy
docker logs jellystat and docker logs jellystat_db are both useful during diagnostics
¶ Monitoring and Logs
- Docker logging driver is
json-file
- Postgres health is used by
jellystat; both containers reported healthy on 2026-04-07
- App logs bundle into
/srv/docker/jellystat/logs
¶ Backup and Restore
/srv/docker/jellystat is in the Duplicati coverage via /srv/docker
- Restoring the DB directory preserves the historical stats
¶ Failure Modes and Recovery
- Database corruption kills Jellystat without a container-level error; restore the volume if the app refuses to start
- Missing or incorrect Postgres credentials will keep the web UI alive while failing to show data