services: plane-redis: image: valkey/valkey:8.1.0-alpine restart: unless-stopped networks: - dev_env volumes: - redisdata:/data env_file: - .env plane-mq: image: rabbitmq:4.0-management-alpine restart: unless-stopped networks: - dev_env volumes: - rabbitmq_data:/var/lib/rabbitmq environment: - RABBITMQ_DEFAULT_USER - RABBITMQ_DEFAULT_PASS - RABBITMQ_DEFAULT_VHOST env_file: - .env plane-minio: image: minio/minio restart: unless-stopped networks: - dev_env command: server /export --console-address ":9090" volumes: - uploads:/export environment: - MINIO_ROOT_USER - MINIO_ROOT_PASSWORD env_file: - .env plane-db: image: postgres:17-alpine restart: unless-stopped networks: - dev_env command: postgres -c 'max_connections=1000' volumes: - pgdata:/var/lib/postgresql/data environment: PGDATA: /var/lib/postgresql/data POSTGRES_USER: plane POSTGRES_PASSWORD: plane POSTGRES_DB: plane web: image: makeplane/plane-space:${APP_RELEASE:-v0.25.3} restart: unless-stopped networks: - dev_env volumes: - webdata:/app/web depends_on: - api - worker env_file: - .env space: image: makeplane/plane-space:${APP_RELEASE:-v0.25.3} restart: unless-stopped networks: - dev_env volumes: - space:/app/space depends_on: - api - worker - web env_file: - .env admin: image: makeplane/plane-admin:${APP_RELEASE:-v0.25.3} restart: unless-stopped networks: - dev_env volumes: - admin:/app/admin depends_on: - api - worker - web env_file: - .env live: image: makeplane/plane-live:${APP_RELEASE:-v0.25.3} restart: unless-stopped networks: - dev_env volumes: - live:/app/live depends_on: - api - worker - web env_file: - .env api: image: makeplane/plane-backend:${APP_RELEASE:-v0.25.3} restart: unless-stopped networks: - dev_env volumes: - apiserver:/code command: ../files/volumes/docker-entrypoint-api-local.sh depends_on: - plane-db - plane-redis env_file: - .env worker: image: makeplane/plane-backend:${APP_RELEASE:-v0.25.1} command: ../files/volumes/docker-entrypoint-worker.sh volumes: - logs_worker:/code/plane/logs env_file: - .env depends_on: - api - plane-db - plane-redis healthcheck: test: ["CMD", "echo", "hey whats up"] interval: 2s timeout: 10s retries: 15 beat-worker: image: makeplane/plane-backend:${APP_RELEASE:-v0.25.1} command: ../files/volumes/docker-entrypoint-beat.sh volumes: - logs_beat-worker:/code/plane/logs env_file: - .env depends_on: - api - plane-db - plane-redis healthcheck: test: ["CMD", "echo", "hey whats up"] interval: 2s timeout: 10s retries: 15 migrator: image: makeplane/plane-worker:0.11 restart: "no" networks: - dev_env volumes: - apiserver:/code command: ../files/volumes/docker-entrypoint-migrator.sh --settings=plane.settings.local depends_on: - plane-db - plane-redis env_file: - .env proxy: image: "makeplane/plane-proxy:${APP_RELEASE:-v0.25.3}" restart: unless-stopped networks: - dev_env env_file: - .env environment: FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT:-5242880} BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-uploads} depends_on: - web - api - space - admin healthcheck: test: ["CMD", "curl", "-f", "http://127.0.0.1:80"] interval: 2s timeout: 10s retries: 15 volumes: redisdata: driver: local uploads: driver: local pgdata: driver: local rabbitmq_data: driver: local apiserver: driver: local webdata: driver: local space: driver: local admin: driver: local live: driver: local logs_beat-worker: driver: local logs_worker: driver: local networks: dev_env: driver: bridge