Backup, Upgrade & Maintenance
What to back up
| Data | Where it lives |
|---|---|
| All helpdesk data | pgdata Docker volume (PostgreSQL) |
| NetManager data | nm-pgdata volume (own PostgreSQL) |
| Your configuration | .env file (keep it safe — it contains your secrets) |
| Uploaded files | uploads volume/directory in the stack |
Database dump (recommended nightly)
cd it-helpdesk
docker compose exec db pg_dump -U "$POSTGRES_USER" "$POSTGRES_DB" | gzip > \
/backup/nexadesk-$(date +%F).sql.gz
Restore into a fresh stack with docker compose exec -T db psql -U <user> <db> < dump.sql.
Upgrading
- Back up first (above).
- Extract the new bundle over the old directory (your
.envis preserved — the bundle never contains one). - Rebuild and restart:
docker compose build api docker compose up -d - Database migrations run automatically when the API starts.
Routine operations
# status of the whole stack
docker compose ps
# logs (api is where the action is)
docker compose logs -f api
docker compose logs worker # email ingestion / background jobs
docker compose logs beat # scheduled automations
# restart just the api (config change, stuck state)
docker compose restart api
# stop / start everything (data persists in volumes)
docker compose down
docker compose up -d
Never docker compose down -v in production
The -v flag deletes the volumes — that's your database.
Health checks
GET /api/healthreturns{"status": "ok"}when the API is updocker compose psshows per-container health