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.