last_updated: 2026-04-06

Coolify#

Installation#

Install with env vars to set root credentials https://coolify.io/docs/get-started/installation#advanced-customizing-installation-with-environment-variables

cd /data/coolify/
git init .
cat <<'EOF' > .gitignore
*.log
backups/
*.sqlite*
EOF

For Letsencrypt DNS challenge see https://coolify.io/docs/knowledge-base/proxy/traefik/wildcard-certs and /data/coolify/proxy/docker-compose.yml (traefik annotation).

To proxy coolify itself, edit source/docker-compose.yml:

services:
    coolify:
        labels:
            - traefik.enable=true
            - traefik.http.routers.coolify.rule=Host(`coolify.example.com`)
            - traefik.http.routers.coolify.entrypoints=https
            - traefik.http.routers.coolify.tls=true
            - traefik.http.routers.coolify.tls.certresolver=letsencrypt
            - traefik.http.services.coolify.loadbalancer.server.port=8080

Set APP_URL in source/.env.

Fix realtime

cat <<'EOF' > proxy/dynamic/coolify-realtime.yaml
http:
  routers:
    coolify-realtime:
      entryPoints:
        - https
      rule: Host(`coolify.example.com`) && PathPrefix(`/app`)
      service: coolify-realtime
      tls:
        certResolver: letsencrypt

  services:
    coolify-realtime:
      loadBalancer:
        servers:
          - url: 'http://coolify-realtime:6001'
EOF

Notifications with ntfy.sh#

echo https://ntfy.sh/coolify-example-com-$(openssl rand -hex 6)

Head to /notifications/webhook and set a Webhook URL.