Skip to content

Trigger v4 for Coolify #2584

@essamamdani

Description

@essamamdani

I created trigger.dev version 4 docker-compose.yaml for Coolify. it seems all services are working fine except the when I try to run any task after deployment, It doesn't run it even though in supervisor logs it created container successfully individually for task.

  • supervisor log

Note

supervisor-nwcw884gow0s4kg800o4gs4c | {"timestamp":"2025-10-05T19:22:59.440Z","message":"Scheduling run","$name":"managed-supervisor","$level":"log","runId":"cmge3af9m001u5gnqflrv5zyg"}
supervisor-nwcw884gow0s4kg800o4gs4c | {"timestamp":"2025-10-05T19:22:59.440Z","message":"create()","$name":"docker-workload-manager","$level":"log","opts":{"dequeuedAt":"2025-10-05T19:22:59.438Z","envId":"cmgcs7pb80003mt5ggsosao9r","envType":"PRODUCTION","image":"trigger-docker-nwcw884gow0s4kg800o4gs4c.abc.mamdaniinc.com/trigger/proj_tnbthiamxtwirpflhlad:20251005.11.production.9k5jxig1@sha256:e46269814e81a54b247d91abece59cf9ecc9e102adf3ff9d61ada3fb40d63fa0","machine":{"name":"small-1x","cpu":0.5,"memory":0.5,"centsPerMs":0},"orgId":"org_manual","projectId":"cmgcs7pb50002mt5g8sp7sn3i","runId":"cmge3af9m001u5gnqflrv5zyg","runFriendlyId":"run_cmge3af9m001u5gnqflrv5zyg","version":"1","nextAttemptNumber":1,"snapshotId":"cmge3afho020cnq5goq9u5zoa","snapshotFriendlyId":"snapshot_cmge3afho020cnq5goq9u5zoa","placementTags":[{"key":"paid","values":["false"]}]}}
supervisor-nwcw884gow0s4kg800o4gs4c | {"timestamp":"2025-10-05T19:22:59.566Z","message":"create succeeded","$name":"docker-workload-manager","$level":"debug","opts":{"dequeuedAt":"2025-10-05T19:22:59.438Z","envId":"cmgcs7pb80003mt5ggsosao9r","envType":"PRODUCTION","image":"trigger-docker-nwcw884gow0s4kg800o4gs4c.abc.mamdaniinc.com/trigger/proj_tnbthiamxtwirpflhlad:20251005.11.production.9k5jxig1@sha256:e46269814e81a54b247d91abece59cf9ecc9e102adf3ff9d61ada3fb40d63fa0","machine":{"name":"small-1x","cpu":0.5,"memory":0.5,"centsPerMs":0},"orgId":"org_manual","projectId":"cmgcs7pb50002mt5g8sp7sn3i","runId":"cmge3af9m001u5gnqflrv5zyg","runFriendlyId":"run_cmge3af9m001u5gnqflrv5zyg","version":"1","nextAttemptNumber":1,"snapshotId":"cmge3afho020cnq5goq9u5zoa","snapshotFriendlyId":"snapshot_cmge3afho020cnq5goq9u5zoa","placementTags":[{"key":"paid","values":["false"]}]},"containerCreateOpts":{"name":"runner-cmge3af9m001u5gnqflrv5zyg","Hostname":"runner-cmge3af9m001u5gnqflrv5zyg","HostConfig":{"AutoRemove":true,"NetworkMode":"trigger-net","NanoCpus":500000000,"Memory":536870912},"Image":"trigger-docker-nwcw884gow0s4kg800o4gs4c.abc.mamdaniinc.com/trigger/proj_tnbthiamxtwirpflhlad:20251005.11.production.9k5jxig1","AttachStdout":false,"AttachStderr":false,"AttachStdin":false},"startResult":{"type":"Buffer","data":[]},"containerId":"91b9d4e9c9abf494c60e927e8778c18dca5e040f4559e5aed3bbadb07df1a470"}

  • docker-compose.yaml
services:
  webapp:
    networks:
      - trigger-net
    image: 'ghcr.io/triggerdotdev/trigger.dev:main'
    restart: unless-stopped
    depends_on:
      - postgres
      - redis
      - clickhouse
      - electric
      - minio
      - registry
    user: root
    command: "sh -c \"chown -R node:node /home/node/shared && exec ./scripts/entrypoint.sh\"\n"
    environment:
      REMIX_APP_PORT: 3000
      APP_ORIGIN: ${SERVICE_FQDN_WEBAPP}
      LOGIN_ORIGIN: ${SERVICE_FQDN_WEBAPP}
      API_ORIGIN: ${SERVICE_FQDN_WEBAPP}
      SESSION_SECRET: '${SERVICE_PASSWORD_SESSION}'
      MAGIC_LINK_SECRET: '${SERVICE_PASSWORD_MAGIC}'
      ENCRYPTION_KEY: '${SERVICE_PASSWORD_ENCRYPTION}'
      MANAGED_WORKER_SECRET: '${SERVICE_PASSWORD_MANAGEDWORKER}'
      DATABASE_URL: 'postgresql://${SERVICE_USER_POSTGRES:-postgres}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-trigger}?schema=public&sslmode=disable'
      DIRECT_URL: 'postgresql://${SERVICE_USER_POSTGRES:-postgres}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-trigger}?schema=public&sslmode=disable'
      REDIS_HOST: redis
      REDIS_PORT: 6379
      REDIS_TLS_DISABLED: true
      ELECTRIC_ORIGIN: 'http://electric:3000'
      DEV_OTEL_EXPORTER_OTLP_ENDPOINT: '${SERVICE_FQDN_WEBAPP}/otel'
      DEPLOY_REGISTRY_HOST: '${DEPLOY_REGISTRY_HOST:-registry:5000}'
      DEPLOY_REGISTRY_PROTOCOL: '${DEPLOY_REGISTRY_PROTOCOL:-http}'
      DEPLOY_REGISTRY_NAMESPACE: '${DEPLOY_REGISTRY_NAMESPACE:-trigger}'
      DEPLOY_REGISTRY_USERNAME: ${DEPLOY_REGISTRY_USERNAME:-}
      DEPLOY_REGISTRY_PASSWORD: ${DEPLOY_REGISTRY_PASSWORD:-}
      OBJECT_STORE_BASE_URL: 'http://minio:9000'
      OBJECT_STORE_ACCESS_KEY_ID: admin
      OBJECT_STORE_SECRET_ACCESS_KEY: '${SERVICE_PASSWORD_MINIO}'
      TRIGGER_BOOTSTRAP_ENABLED: '${TRIGGER_BOOTSTRAP_ENABLED:-1}'
      TRIGGER_WORKER_TOKEN: ${TRIGGER_WORKER_TOKEN}
      TRIGGER_BOOTSTRAP_WORKER_GROUP_NAME: bootstrap
      TRIGGER_BOOTSTRAP_WORKER_TOKEN_PATH: /home/node/shared/worker_token
      CLICKHOUSE_URL: 'http://${SERVICE_USER_CLICKHOUSE:-default}:${SERVICE_PASSWORD_64_CLICKHOUSE}@clickhouse:8123?secure=false'
      CLICKHOUSE_LOG_LEVEL: info
      RUN_REPLICATION_ENABLED: 1
      RUN_REPLICATION_CLICKHOUSE_URL: 'http://${SERVICE_USER_CLICKHOUSE:-default}:${SERVICE_PASSWORD_64_CLICKHOUSE}@clickhouse:8123'
      RUN_REPLICATION_LOG_LEVEL: info
      APP_LOG_LEVEL: info
      TRIGGER_TELEMETRY_DISABLED: '${TRIGGER_TELEMETRY_DISABLED:-0}'
    volumes:
      - 'shared-data:/home/node/shared'
    healthcheck:
      test:
        - CMD
        - node
        - '-e'
        - "require('http').get('http://127.0.0.1:3000/healthcheck',(r)=>process.exit(r.statusCode===200?0:1)).on('error',()=>process.exit(1))"
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 30s
  postgres:
    networks:
      - trigger-net
    image: 'postgres:16-alpine'
    restart: unless-stopped
    command:
      - '-c'
      - wal_level=logical
    environment:
      POSTGRES_USER: '${SERVICE_USER_POSTGRES:-postgres}'
      POSTGRES_PASSWORD: '${SERVICE_PASSWORD_POSTGRES}'
      POSTGRES_DB: '${POSTGRES_DB:-trigger}'
    volumes:
      - 'postgres-data:/var/lib/postgresql/data'
    healthcheck:
      test:
        - CMD-SHELL
        - 'pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}'
      interval: 5s
      timeout: 20s
      retries: 10
  redis:
    networks:
      - trigger-net
    image: 'redis:7'
    restart: unless-stopped
    volumes:
      - 'redis-data:/data'
    healthcheck:
      test:
        - CMD
        - redis-cli
        - ping
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s
  electric:
    networks:
      - trigger-net
    image: 'electricsql/electric:1.0.24'
    restart: unless-stopped
    depends_on:
      - postgres
    environment:
      DATABASE_URL: 'postgresql://${SERVICE_USER_POSTGRES:-postgres}:${SERVICE_PASSWORD_POSTGRES}@postgres:5432/${POSTGRES_DB:-trigger}?schema=public&sslmode=disable'
      ELECTRIC_INSECURE: 'true'
      ELECTRIC_USAGE_REPORTING: 'false'
    healthcheck:
      test:
        - CMD
        - curl
        - '-f'
        - 'http://localhost:3000/v1/health'
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s
  clickhouse:
    networks:
      - trigger-net
    image: 'bitnamilegacy/clickhouse:latest'
    restart: unless-stopped
    environment:
      CLICKHOUSE_ADMIN_USER: '${SERVICE_USER_CLICKHOUSE:-default}'
      CLICKHOUSE_ADMIN_PASSWORD: '${SERVICE_PASSWORD_64_CLICKHOUSE}'
    volumes:
      - 'clickhouse-data:/bitnami/clickhouse'
    healthcheck:
      test:
        - CMD
        - clickhouse-client
        - '--host'
        - localhost
        - '--port'
        - '9000'
        - '--user'
        - '${SERVICE_USER_CLICKHOUSE:-default}'
        - '--password'
        - '${SERVICE_PASSWORD_64_CLICKHOUSE}'
        - '--query'
        - 'SELECT 1'
      interval: 5s
      timeout: 5s
      retries: 5
      start_period: 10s
  minio:
    networks:
      - trigger-net
    image: 'bitnamilegacy/minio:latest'
    restart: unless-stopped
    environment:
      MINIO_ROOT_USER: admin
      MINIO_ROOT_PASSWORD: '${SERVICE_PASSWORD_MINIO}'
      MINIO_DEFAULT_BUCKETS: packets
      MINIO_BROWSER: 'on'
    volumes:
      - 'minio-data:/bitnami/minio/data'
    healthcheck:
      test:
        - CMD
        - curl
        - '-f'
        - 'http://localhost:9000/minio/health/live'
      interval: 5s
      timeout: 10s
      retries: 5
      start_period: 10s
  registry:
    networks:
      - trigger-net
    image: 'registry:2'
    restart: unless-stopped
    volumes:
      - 'registry-data:/var/lib/registry'
    healthcheck:
      test:
        - CMD
        - wget
        - '--spider'
        - '-q'
        - 'http://localhost:5000/'
      interval: 10s
      timeout: 5s
      retries: 5
      start_period: 10s
  supervisor:
    networks:
      - trigger-net
    image: 'ghcr.io/triggerdotdev/supervisor:v4.0.0'
    restart: unless-stopped
    depends_on:
      - docker-proxy
      - webapp
    user: root
    command: "sh -c \"chown -R node:node /home/node/shared && exec /usr/bin/dumb-init -- pnpm run --filter supervisor start\"\n"
    environment:
      TRIGGER_API_URL: http://webapp:3000
      OTEL_EXPORTER_OTLP_ENDPOINT: http://webapp:3000/otel
      TRIGGER_WORKER_TOKEN: ${TRIGGER_WORKER_TOKEN}
      MANAGED_WORKER_SECRET: ${SERVICE_PASSWORD_MANAGEDWORKER}
      TRIGGER_WORKLOAD_API_DOMAIN: supervisor
      TRIGGER_WORKLOAD_API_PORT_EXTERNAL: 8020
      DOCKER_HOST: tcp://docker-proxy:2375
      DOCKER_RUNNER_NETWORKS: trigger-net
      DOCKER_AUTOREMOVE_EXITED_CONTAINERS: 1
      DOCKER_REGISTRY_URL: ${DOCKER_REGISTRY_URL:-http://registry:5000}
      DOCKER_REGISTRY_USERNAME: ${DOCKER_REGISTRY_USERNAME:-}
      DOCKER_REGISTRY_PASSWORD: ${DOCKER_REGISTRY_PASSWORD:-}
      DEBUG: 1
      ENFORCE_MACHINE_PRESETS: 1
      TRIGGER_DEQUEUE_INTERVAL_MS: 1000
    volumes:
      - 'shared-data:/home/node/shared'
    healthcheck:
      test:
        - CMD
        - node
        - '-e'
        - "require('http').get('http://127.0.0.1:8020/health', (r) => process.exit(r.statusCode === 200 ? 0 : 1)).on('error', () => process.exit(1))"
      interval: 30s
      timeout: 10s
      retries: 5
      start_period: 10s
  docker-proxy:
    networks:
      - trigger-net
    image: 'tecnativa/docker-socket-proxy:latest'
    restart: unless-stopped
    volumes:
      - '/var/run/docker.sock:/var/run/docker.sock:ro'
    environment:
      LOG_LEVEL: info
      POST: 1
      CONTAINERS: 1
      IMAGES: 1
      INFO: 1
      NETWORKS: 1
    healthcheck:
      test:
        - CMD
        - nc
        - '-z'
        - 127.0.0.1
        - '2375'
      interval: 30s
      timeout: 5s
      retries: 5
      start_period: 5s
volumes:
  postgres-data: null
  redis-data: null
  clickhouse-data: null
  minio-data: null
  shared-data: null
  registry-data: null
networks:
  trigger-net:

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions