Skip to main content
Docs Coolify Coolify: Gotchas & Known Issues

Coolify: Gotchas & Known Issues

Read this before touching anything. Most of these were learned the hard way.


Manual docker-compose edits break Coolify redeploy

If you manually edit a service’s docker-compose.yml on the VPS (e.g. to add a volume mount or Traefik label), do NOT redeploy through the Coolify UI.

Coolify will regenerate the compose file from its own template and overwrite your changes.

To apply changes to a manually-edited service, SSH in and run:

cd /data/coolify/services/<SERVICE_UUID>/
docker compose up -d <container_name>

Coolify will show “The latest configuration has not been applied” — this is cosmetic, ignore it.


API restart regenerates .env

Triggering a restart via the Coolify API (GET /api/v1/services/{uuid}/restart) regenerates the .env file from Coolify’s internal template. Any manual edits to .env will be overwritten.

Workaround: After fixing .env manually, restart the container directly via SSH:

cd /data/coolify/services/<SERVICE_UUID>/
docker compose restart <container_name>

API — correct env var update endpoint

PATCH /api/v1/services/{service_uuid}/envs
Body: {"key": "VAR_NAME", "value": "new_value"}

Note: changes made this way will be overwritten if Coolify redeploys the service.


SERVICE_URL_* variables default to HTTP sslip.io

Coolify auto-generates SERVICE_URL_* variables pointing to http://<uuid>.<VPS_IP>.sslip.io. These are HTTP, not HTTPS. If your app uses one of these as a public URL (e.g. for API calls from the browser), it will fail due to mixed content when the site is served over HTTPS.

Fix: After deploying, SSH in and update the .env:

sed -i 's|SERVICE_URL_APPNAME=http://.*|SERVICE_URL_APPNAME=https://yourdomain.com|' /data/coolify/services/<UUID>/.env

You must do this after every Coolify redeploy of that service, as the .env is regenerated each time.


Built-in backup only works for StandaloneDatabase

Coolify’s backup UI (Settings → Backup, per-service Backups tab) works reliably only for databases deployed as standalone resources through Coolify’s Databases section.

For databases inside Docker Compose stacks (Listmonk, Twenty CRM, NocoDB, n8n, Plausible, Rybbit, etc.), the backup tab may not appear or may silently fail on S3 upload.

Use PGBackWeb (available as a Coolify one-click service) for compose-stack Postgres backups — it has a web UI and works independently of Coolify’s internal backup system.


R2 backup shows “Success” but upload silently fails

Known bug: Coolify runs pg_dump locally successfully, shows a green “Success” in the UI, but the S3 upload to Cloudflare R2 fails silently. The bucket remains empty.

After configuring any R2 backup, always verify the file actually appears in the R2 bucket — don’t trust the Coolify UI green checkmark alone.


Coolify upgrade can reset backup schedules

After any Coolify update, check that scheduled backup jobs are still active and re-test them.

Zenith Stack

Need help setting up or managing your Coolify stack?

Learn more