Skip to main content
Docs Apps Twenty CRM: Coolify Deployment Issues

Twenty CRM: Coolify Deployment Issues

Twenty is a modern open-source CRM. The Coolify one-click deployment has a few rough edges.


Worker container does not start automatically

The worker service is defined in the compose but Coolify does not start it on first deploy.

Fix: SSH in and start it manually:

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

The worker handles background jobs (email notifications, webhooks, etc.). Without it, Twenty appears to work but background tasks silently fail.


Twenty unreachable (000) — missing Traefik port label

Coolify’s Twenty template doesn’t include a loadbalancer.server.port label. Without it, Traefik can’t route to the container even though it’s running healthy.

Fix: Add to the twenty service labels in docker-compose.yml:

- traefik.http.services.<TWENTY_SERVICE_NAME>.loadbalancer.server.port=3000

Then restart:

docker compose up -d twenty

Worker shows “starting:unknown” in Coolify

Normal behavior. The worker container has no healthcheck defined upstream. Coolify shows starting:unknown. Confirm it’s running with docker ps.


”Unable to Reach Back-end” after deploy

Coolify sets SERVICE_URL_TWENTY to an HTTP sslip.io URL by default. Twenty’s frontend uses this as SERVER_URL — so it tries to reach the backend over HTTP while the site is served over HTTPS. The browser blocks it as mixed content.

Fix:

cd /data/coolify/services/<SERVICE_UUID>/
sed -i 's|SERVICE_URL_TWENTY=http://.*|SERVICE_URL_TWENTY=https://crm.yourdomain.com|' .env
docker compose up -d twenty
docker compose up -d worker

Ongoing risk: If Coolify redeploys Twenty (e.g. during a Coolify update), it regenerates .env and this reverts. If Twenty breaks again with this error, re-run the fix above.

Zenith Stack

Want us to set up your self-hosted CRM stack?

Learn more