{"owner":"makeplane","repo":"plane","hasDocker":true,"hasCompose":true,"hasDockerfile":false,"composePath":"docker-compose.yml","servicesCount":13,"services":[{"name":"web","build":{"context":".","dockerfile":"./apps/web/Dockerfile.web"},"restart":"always","depends_on":["api"]},{"name":"admin","build":{"context":".","dockerfile":"./apps/admin/Dockerfile.admin"},"restart":"always","depends_on":["api","web"]},{"name":"space","build":{"context":".","dockerfile":"./apps/space/Dockerfile.space"},"restart":"always","depends_on":["api","web"]},{"name":"api","build":{"context":"./apps/api","dockerfile":"Dockerfile.api"},"restart":"always","command":"./bin/docker-entrypoint-api.sh","depends_on":["plane-db","plane-redis"]},{"name":"worker","build":{"context":"./apps/api","dockerfile":"Dockerfile.api"},"restart":"always","command":"./bin/docker-entrypoint-worker.sh","depends_on":["api","plane-db","plane-redis"]},{"name":"beat-worker","build":{"context":"./apps/api","dockerfile":"Dockerfile.api"},"restart":"always","command":"./bin/docker-entrypoint-beat.sh","depends_on":["api","plane-db","plane-redis"]},{"name":"migrator","build":{"context":"./apps/api","dockerfile":"Dockerfile.api"},"restart":"no","command":"./bin/docker-entrypoint-migrator.sh","depends_on":["plane-db","plane-redis"]},{"name":"live","build":{"context":".","dockerfile":"./apps/live/Dockerfile.live"},"restart":"always"},{"name":"plane-db","image":"postgres:15.7-alpine","restart":"always","command":"postgres -c 'max_connections=1000'","environment":["POSTGRES_USER=${POSTGRES_USER}","POSTGRES_DB=${POSTGRES_DB}","POSTGRES_PASSWORD=${POSTGRES_PASSWORD}","PGDATA=/var/lib/postgresql/data"],"volumes":["pgdata:/var/lib/postgresql/data"]},{"name":"plane-redis","image":"valkey/valkey:7.2.11-alpine","restart":"always","volumes":["redisdata:/data"]},{"name":"plane-mq","image":"rabbitmq:3.13.6-management-alpine","restart":"always","environment":["RABBITMQ_DEFAULT_USER=${RABBITMQ_USER}","RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD}","RABBITMQ_DEFAULT_VHOST=${RABBITMQ_VHOST}"],"volumes":["rabbitmq_data:/var/lib/rabbitmq"]},{"name":"plane-minio","image":"docker.io/pgsty/silo:RELEASE.2026-09-16T00-00-00Z","restart":"always","command":"server /export --console-address \":9090\"","environment":["MINIO_ROOT_USER=${AWS_ACCESS_KEY_ID}","MINIO_ROOT_PASSWORD=${AWS_SECRET_ACCESS_KEY}"],"volumes":["uploads:/export"]},{"name":"proxy","build":{"context":"./apps/proxy","dockerfile":"Dockerfile.ce"},"restart":"always","ports":["${LISTEN_HTTP_PORT}:80","${LISTEN_HTTPS_PORT}:443"],"environment":["FILE_SIZE_LIMIT=${FILE_SIZE_LIMIT:-5242880}","BUCKET_NAME=${AWS_S3_BUCKET_NAME:-uploads}"],"depends_on":["web","api","space","admin"]}],"exposedPorts":[],"dockerRunCommand":"docker run -d --name plane --restart always postgres:15.7-alpine","podmanRunCommand":"podman run -d --name plane --restart always postgres:15.7-alpine","skopeoInspectCommand":"skopeo inspect docker://docker.io/library/postgres:15.7-alpine","orasPullCommand":"oras pull postgres:15.7-alpine","registryMeta":{"provider":"dockerhub","image":"library/postgres","canonicalImage":"docker.io/library/postgres:15.7-alpine","latestTag":"15.7-alpine","cliCommands":{"dockerRun":"docker run -d --name plane --restart always postgres:15.7-alpine","dockerPull":"docker pull postgres:15.7-alpine","podmanRun":"podman run -d --name plane --restart always postgres:15.7-alpine","skopeoInspect":"skopeo inspect docker://docker.io/library/postgres:15.7-alpine","orasPull":"oras pull postgres:15.7-alpine","composeYaml":"services:\n  plane:\n    image: postgres:15.7-alpine\n    restart: unless-stopped"}}}