# documentation: https://trigger.dev/docs/documentation/guides/self-hosting # slogan: The open source Background Jobs framework for TypeScript # tags: trigger.dev, background jobs, typescript, trigger, jobs, cron, scheduler services: trigger: image: ghcr.io/triggerdotdev/trigger.dev:latest environment: - SERVICE_FQDN_TRIGGER - LOGIN_ORIGIN=$SERVICE_FQDN_TRIGGER - APP_ORIGIN=$SERVICE_FQDN_TRIGGER - MAGIC_LINK_SECRET=$SERVICE_PASSWORD_64_MAGIC - ENCRYPTION_KEY=$SERVICE_PASSWORD_64_ENCRYPTION - SESSION_SECRET=$SERVICE_PASSWORD_64_SESSION - POSTGRES_USER=$SERVICE_USER_POSTGRES - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES - POSTGRES_DB=${POSTGRES_DB:-trigger} - POSTGRES_HOST=postgres - DATABASE_URL=postgres://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql:5432/$POSTGRES_DB - DIRECT_URL=postgres://$SERVICE_USER_POSTGRES:$SERVICE_PASSWORD_POSTGRES@postgresql:5432/$POSTGRES_DB - RUNTIME_PLATFORM=docker-compose - NODE_ENV=production depends_on: postgresql: condition: service_healthy healthcheck: test: ["NONE"] postgresql: image: postgres:15-alpine volumes: - postgresql-data:/var/lib/postgresql/data environment: - POSTGRES_USER=$SERVICE_USER_POSTGRES - POSTGRES_PASSWORD=$SERVICE_PASSWORD_POSTGRES - POSTGRES_DB=${POSTGRES_DB:-trigger} healthcheck: test: ["CMD-SHELL", "pg_isready -U $${POSTGRES_USER} -d $${POSTGRES_DB}"] interval: 5s timeout: 20s retries: 10