Troubleshoot self-hosting
Resolve common Docker, PostgreSQL, configuration and port errors.
Match the startup error to a verified fix, then check readiness again.
-
If Compose reports
compose build requires buildx 0.17 or later, upgrade buildx or disable Bake for this run.Terminal window COMPOSE_BAKE=false docker compose -f deploy/docker-compose.yml up -d --build -
If an older checkout left
deploy-*containers ordeploy_*volumes, inspect them before removing anything.Terminal window docker ps -a --filter name=deploy-docker volume ls --filter name=deploy_Back up any needed data before deleting an old container or volume. Current Compose resources use the
supermetryproject name. -
If PostgreSQL 18 starts with an empty database after an upgrade, check the volume mount. PostgreSQL 18 stores its cluster below
/var/lib/postgresql/18/docker, and the current Compose file mounts the volume at/var/lib/postgresql.An old volume mounted at
/var/lib/postgresql/datamust be backed up with its old configuration and restored into a fresh PostgreSQL 18 volume. Do not remount it at the new path. -
For installer database failures, correct the field named by the message:
connection refused by PostgreSQL host: start PostgreSQL and check its host and port.DNS name not found: correct the database hostname.password authentication failed for user ...: correct the user or password.database ... does not exist: create the database or correct its name.PostgreSQL TLS certificate could not be verified: correct the certificate trust orsslmode.
Interactive installation keeps the entered values and asks again. An unattended
--yesinstall exits without writing files. -
If plain
supermetryprintsSupermetry is not configured, run the installer or create.envwithSUPERMETRY_DATABASE_URL,SUPERMETRY_SECRET_KEY, andSUPERMETRY_BASE_URL. -
If startup reports
listen on ... address already in use, identify the process using the configured port.Terminal window sudo ss -ltnp 'sport = :8787'Stop the unintended process or change
SUPERMETRY_LISTEN, then restart Supermetry. -
Check the service and readiness.
Terminal window sudo systemctl status supermetry --no-pagersudo journalctl -u supermetry -n 50 --no-pagercurl -fsS http://127.0.0.1:8787/readyz
What you should see: the service is active and /readyz returns {"status":"ok"}.