--- services: coolify: image: ghcr.io/coollabsio/coolify:latest container_name: coolify environment: APP_ID: ${APP_ID} APP_KEY: ${APP_KEY} APP_NAME: Coolify APP_ENV: production APP_URL: https://${TRAEFIK_HOST} APP_PORT: 8080 DB_HOST: coolify_db DB_PORT: 5432 DB_DATABASE: coolify DB_USERNAME: coolify DB_PASSWORD: coolify REDIS_HOST: coolify_redis REDIS_PORT: 6379 PUSHER_HOST: realtime.${TRAEFIK_HOST} PUSHER_PORT: 443 PUSHER_APP_ID: ${PUSHER_APP_ID} PUSHER_APP_KEY: ${PUSHER_APP_KEY} PUSHER_APP_SECRET: ${PUSHER_APP_SECRET} PUSHER_SCHEME: https SSL_MODE: "off" volumes: - ../.data/coolify/data:/data/coolify - /var/run/docker.sock:/var/run/docker.sock - ../.data/coolify/storage/ssh:/var/www/html/storage/app/ssh - ../.data/coolify/storage/applications:/var/www/html/storage/app/applications - ../.data/coolify/storage/databases:/var/www/html/storage/app/databases - ../.data/coolify/storage/services:/var/www/html/storage/app/services - ../.data/coolify/storage/backups:/var/www/html/storage/app/backups depends_on: db: condition: service_healthy redis: condition: service_healthy realtime: condition: service_healthy restart: always labels: - "traefik.enable=true" - "traefik.http.middlewares.coolify-redirect-web-secure.redirectscheme.scheme=https" - "traefik.http.routers.coolify-web.middlewares=coolify-redirect-web-secure" - "traefik.http.routers.coolify-web.rule=Host(`${TRAEFIK_HOST}`)" - "traefik.http.routers.coolify-web.entrypoints=web" - "traefik.http.routers.coolify-web.service=coolify" - "traefik.http.routers.coolify-web-secure.rule=Host(`${TRAEFIK_HOST}`)" - "traefik.http.routers.coolify-web-secure.tls.certresolver=resolver" - "traefik.http.routers.coolify-web-secure.entrypoints=web-secure" - "traefik.http.routers.coolify-web-secure.middlewares=security-headers@file" - "traefik.http.routers.coolify-web-secure.service=coolify" - "traefik.http.routers.coolify-web-secure.priority=1" - "traefik.http.services.coolify.loadbalancer.server.port=8080" - "traefik.docker.network=${NETWORK_NAME}" - "com.centurylinklabs.watchtower.enable=true" networks: - compose_network realtime: image: ghcr.io/coollabsio/coolify-realtime:1.0.10 container_name: coolify_realtime environment: APP_NAME: Coolify SOKETI_DEBUG: "false" SOKETI_DEFAULT_APP_ID: ${PUSHER_APP_ID} SOKETI_DEFAULT_APP_KEY: ${PUSHER_APP_KEY} SOKETI_DEFAULT_APP_SECRET: ${PUSHER_APP_SECRET} volumes: - ../.data/coolify/storage/ssh:/var/www/html/storage/app/ssh restart: always healthcheck: test: ["CMD-SHELL", "wget -qO- http://127.0.0.1:6001/ready && wget -qO- http://127.0.0.1:6002/ready"] interval: 5s timeout: 2s retries: 10 labels: - "traefik.enable=true" - "traefik.http.routers.coolify-realtime-web.rule=Host(`realtime.${TRAEFIK_HOST}`)" - "traefik.http.routers.coolify-realtime-web.entrypoints=web" - "traefik.http.routers.coolify-realtime-web.service=coolify-realtime" - "traefik.http.routers.coolify-realtime-web-secure.rule=Host(`realtime.${TRAEFIK_HOST}`)" - "traefik.http.routers.coolify-realtime-web-secure.tls.certresolver=resolver" - "traefik.http.routers.coolify-realtime-web-secure.entrypoints=web-secure" - "traefik.http.routers.coolify-realtime-web-secure.service=coolify-realtime" - "traefik.http.services.coolify-realtime.loadbalancer.server.port=6001" - "traefik.http.routers.coolify-terminal-ws.rule=Host(`${TRAEFIK_HOST}`) && PathPrefix(`/terminal/ws`)" - "traefik.http.routers.coolify-terminal-ws.tls.certresolver=resolver" - "traefik.http.routers.coolify-terminal-ws.entrypoints=web-secure" - "traefik.http.routers.coolify-terminal-ws.service=coolify-terminal" - "traefik.http.routers.coolify-terminal-ws.priority=100" - "traefik.http.services.coolify-terminal.loadbalancer.server.port=6002" - "traefik.docker.network=${NETWORK_NAME}" - "com.centurylinklabs.watchtower.enable=true" networks: - compose_network redis: image: redis:7-alpine container_name: coolify_redis restart: always healthcheck: test: ["CMD-SHELL", "redis-cli ping | grep PONG"] interval: 5s timeout: 5s retries: 5 networks: - compose_network db: image: postgres:16-alpine container_name: coolify_db environment: POSTGRES_DB: coolify POSTGRES_USER: coolify POSTGRES_PASSWORD: coolify volumes: - ../.data/coolify/db:/var/lib/postgresql/data restart: always healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 5s retries: 5 networks: - compose_network networks: compose_network: name: ${NETWORK_NAME} external: true