{"owner":"windmill-labs","repo":"windmill","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":7,"services":[{"name":"db","image":"postgres:18","restart":"unless-stopped","environment":["POSTGRES_PASSWORD=changeme","POSTGRES_DB=windmill"],"volumes":["db_data:/var/lib/postgresql"]},{"name":"windmill_server","image":"${WM_IMAGE}","restart":"unless-stopped","environment":["DATABASE_URL=${DATABASE_URL}","MODE=server"],"volumes":["worker_logs:/tmp/windmill/logs"],"depends_on":["db"]},{"name":"windmill_worker","image":"${WM_IMAGE}","restart":"unless-stopped","environment":["DATABASE_URL=${DATABASE_URL}","MODE=worker","WORKER_GROUP=default","FAVOR_UNSHARE_PID=true"],"volumes":["worker_dependency_cache:/tmp/windmill/cache","worker_logs:/tmp/windmill/logs"],"depends_on":["db"]},{"name":"windmill_worker_native","image":"${WM_IMAGE}","restart":"unless-stopped","environment":["DATABASE_URL=${DATABASE_URL}","MODE=worker","WORKER_GROUP=native","NATIVE_MODE=true","SLEEP_QUEUE=200"],"volumes":["worker_logs:/tmp/windmill/logs"],"depends_on":["db"]},{"name":"windmill_indexer","image":"${WM_IMAGE}","restart":"unless-stopped","environment":["PORT=8002","DATABASE_URL=${DATABASE_URL}","MODE=indexer"],"volumes":["windmill_index:/tmp/windmill/search","worker_logs:/tmp/windmill/logs"],"depends_on":["db"]},{"name":"windmill_extra","image":"ghcr.io/windmill-labs/windmill-extra:latest","restart":"unless-stopped","environment":["ENABLE_LSP=true","ENABLE_MULTIPLAYER=false","ENABLE_DEBUGGER=true","DEBUGGER_PORT=3003","ENABLE_NSJAIL=false","REQUIRE_SIGNED_DEBUG_REQUESTS=true","WINDMILL_BASE_URL=http://windmill_server:8000"],"volumes":["lsp_cache:/pyls/.cache"]},{"name":"caddy","image":"ghcr.io/windmill-labs/caddy-l4:2.11.4-1","restart":"unless-stopped","ports":["80:80","25:25"],"environment":["BASE_URL=\":80\""],"volumes":["./Caddyfile:/etc/caddy/Caddyfile","caddy_data:/data"]}],"exposedPorts":["80","25"],"dockerRunCommand":"docker run -d --name windmill -p 80:80 --restart always ghcr.io/windmill-labs/windmill-extra:latest","podmanRunCommand":"podman run -d --name windmill -p 80:80 --restart always ghcr.io/windmill-labs/windmill-extra:latest","skopeoInspectCommand":"skopeo inspect docker://ghcr.io/windmill-labs/windmill-extra:latest","orasPullCommand":"oras pull ghcr.io/windmill-labs/windmill-extra:latest","registryMeta":{"provider":"ghcr","image":"ghcr.io/windmill-labs/windmill-extra","canonicalImage":"ghcr.io/windmill-labs/windmill-extra:latest","latestTag":"latest","multiArch":["linux/amd64","linux/arm64"],"lastUpdated":"2026-10-24T04:16:45.561Z","cliCommands":{"dockerRun":"docker run -d --name windmill -p 80:80 --restart always ghcr.io/windmill-labs/windmill-extra:latest","dockerPull":"docker pull ghcr.io/windmill-labs/windmill-extra:latest","podmanRun":"podman run -d --name windmill -p 80:80 --restart always ghcr.io/windmill-labs/windmill-extra:latest","skopeoInspect":"skopeo inspect docker://ghcr.io/windmill-labs/windmill-extra:latest","orasPull":"oras pull ghcr.io/windmill-labs/windmill-extra:latest","composeYaml":"services:\n  windmill:\n    image: ghcr.io/windmill-labs/windmill-extra:latest\n    restart: unless-stopped\n    ports:\n      - \"80:80\""}}}