version: "3.7" services: db: image: postgres:14 restart: unless-stopped volumes: - db_data:/var/lib/postgresql/data expose: - 5432 environment: POSTGRES_PASSWORD: ${DB_PASSWORD} POSTGRES_DB: windmill healthcheck: test: ["CMD-SHELL", "pg_isready -U postgres"] interval: 10s timeout: 5s retries: 5 windmill_server: image: ghcr.io/windmill-labs/windmill:main deploy: replicas: 1 restart: unless-stopped expose: - 8000 environment: - DATABASE_URL=postgres://postgres:${DB_PASSWORD}@db/windmill?sslmode=disable - BASE_URL=${WM_BASE_URL} - RUST_LOG=info ## You can set the number of workers to > 0 and not need any separate worker service - NUM_WORKERS=0 - DISABLE_SERVER=false - METRICS_ADDR=false depends_on: db: condition: service_healthy # volumes: # - ./oauth.json/:/usr/src/app/oauth.json windmill_worker: image: ghcr.io/windmill-labs/windmill:main deploy: replicas: 3 restart: unless-stopped environment: - DATABASE_URL=postgres://postgres:${DB_PASSWORD}@db/windmill?sslmode=disable - BASE_URL=${WM_BASE_URL} - BASE_INTERNAL_URL=http://windmill_server:8000 - RUST_LOG=info - NUM_WORKERS=1 - DISABLE_SERVER=true - KEEP_JOB_DIR=false - DENO_PATH=/usr/bin/deno - PYTHON_PATH=/usr/local/bin/python3 - METRICS_ADDR=false depends_on: db: condition: service_healthy # to mount the worker folder to debug,, KEEP_JOB_DIR=true and mount /tmp/windmill volumes: - worker_dependency_cache:/tmp/windmill/cache lsp: image: ghcr.io/windmill-labs/windmill-lsp:latest restart: unless-stopped expose: - 3001 caddy: image: caddy:2.5.2-alpine restart: unless-stopped volumes: - ./Caddyfile:/etc/caddy/Caddyfile ports: - 80:80 - 443:443 environment: - BASE_URL=${CADDY_REVERSE_PROXY} volumes: db_data: null worker_dependency_cache: null