services: postgres: image: postgres:15.6 command: postgres -c "max_connections=1000" restart: always hostname: postgres environment: POSTGRES_USER: ${HATCHET_POSTGRES_USER:-hatchet} POSTGRES_PASSWORD: ${HATCHET_POSTGRES_PASSWORD:-hatchet} POSTGRES_DB: ${HATCHET_POSTGRES_DB:-hatchet} expose: - "5432" volumes: - hatchet_postgres_data:/var/lib/postgresql/data healthcheck: test: ["CMD-SHELL", "pg_isready -d ${HATCHET_POSTGRES_DB:-hatchet} -U ${HATCHET_POSTGRES_USER:-hatchet}"] interval: 10s timeout: 10s retries: 5 start_period: 10s rabbitmq: image: rabbitmq:3-management hostname: rabbitmq expose: - "5672" - "15672" environment: RABBITMQ_DEFAULT_USER: ${HATCHET_RABBITMQ_USER:-user} RABBITMQ_DEFAULT_PASS: ${HATCHET_RABBITMQ_PASSWORD:-password} volumes: - hatchet_rabbitmq_data:/var/lib/rabbitmq - hatchet_rabbitmq.conf:/etc/rabbitmq/rabbitmq.conf healthcheck: test: ["CMD", "rabbitmqctl", "status"] interval: 10s timeout: 10s retries: 5 migration: image: ghcr.io/hatchet-dev/hatchet/hatchet-migrate:latest command: /hatchet/hatchet-migrate environment: DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet} depends_on: postgres: condition: service_healthy setup-config: image: ghcr.io/hatchet-dev/hatchet/hatchet-admin:latest command: /hatchet/hatchet-admin quickstart --skip certs --generated-config-dir /hatchet/config --overwrite=false environment: DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet} SERVER_MSGQUEUE_RABBITMQ_URL: ${HATCHET_RABBITMQ_URL:-amqp://user:password@rabbitmq:5672/} SERVER_AUTH_COOKIE_DOMAIN: ${HATCHET_SERVER_AUTH_COOKIE_DOMAIN:-hatchet.local} SERVER_AUTH_COOKIE_INSECURE: ${HATCHET_SERVER_AUTH_COOKIE_INSECURE:-t} SERVER_GRPC_BIND_ADDRESS: 0.0.0.0 SERVER_GRPC_INSECURE: ${HATCHET_SERVER_GRPC_INSECURE:-t} SERVER_GRPC_BROADCAST_ADDRESS: ${HATCHET_SERVER_GRPC_BROADCAST_ADDRESS:-hatchet-engine:7070} SERVER_DEFAULT_ENGINE_VERSION: V1 SERVER_INTERNAL_CLIENT_INTERNAL_GRPC_BROADCAST_ADDRESS: hatchet-engine:7070 volumes: - hatchet_certs:/hatchet/certs - hatchet_config:/hatchet/config depends_on: migration: condition: service_completed_successfully rabbitmq: condition: service_healthy postgres: condition: service_healthy hatchet-engine: image: ghcr.io/hatchet-dev/hatchet/hatchet-engine:latest command: /hatchet/hatchet-engine --config /hatchet/config restart: on-failure depends_on: setup-config: condition: service_completed_successfully migration: condition: service_completed_successfully expose: - "7070" environment: DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet} SERVER_GRPC_BIND_ADDRESS: 0.0.0.0 SERVER_GRPC_INSECURE: ${HATCHET_SERVER_GRPC_INSECURE:-t} volumes: - hatchet_certs:/hatchet/certs - hatchet_config:/hatchet/config networks: - default - dokploy-network hatchet-dashboard: image: ghcr.io/hatchet-dev/hatchet/hatchet-dashboard:latest command: sh ./entrypoint.sh --config /hatchet/config expose: - "80" restart: on-failure depends_on: setup-config: condition: service_completed_successfully migration: condition: service_completed_successfully environment: DATABASE_URL: ${HATCHET_DATABASE_URL:-postgres://hatchet:hatchet@postgres:5432/hatchet} volumes: - hatchet_certs:/hatchet/certs - hatchet_config:/hatchet/config networks: dokploy-network: external: true volumes: hatchet_postgres_data: hatchet_rabbitmq_data: hatchet_rabbitmq.conf: hatchet_config: hatchet_certs: