x-db-env: &db-env PGHOST: ${PGHOST:-host.docker.internal} PGDATABASE: ${PGDATABASE:-plane} POSTGRES_USER: ${POSTGRES_USER:-vignesh} POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-vignesh_secret_pass_2026} POSTGRES_DB: ${POSTGRES_DB:-plane} POSTGRES_PORT: ${POSTGRES_PORT:-5432} DATABASE_URL: ${DATABASE_URL} x-redis-env: &redis-env REDIS_HOST: ${REDIS_HOST:-plane-redis} REDIS_PORT: ${REDIS_PORT:-6379} REDIS_URL: ${REDIS_URL:-redis://plane-redis:6379/} x-aws-s3-env: &aws-s3-env AWS_REGION: ${AWS_REGION:-ap-south-2} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY} AWS_S3_BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-trypostmedia} AWS_S3_PREFIX: ${AWS_S3_PREFIX:-jiradocuments/} AWS_LOCATION: ${AWS_LOCATION:-jiradocuments} x-proxy-env: &proxy-env APP_DOMAIN: ${APP_DOMAIN:-jira.tradhox.com} FILE_SIZE_LIMIT: ${FILE_SIZE_LIMIT:-52428800} LISTEN_HTTP_PORT: ${LISTEN_HTTP_PORT:-80} BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-trypostmedia} SITE_ADDRESS: ${SITE_ADDRESS:-:80} TRUSTED_PROXIES: ${TRUSTED_PROXIES:-0.0.0.0/0} x-mq-env: &mq-env RABBITMQ_HOST: ${RABBITMQ_HOST:-plane-mq} RABBITMQ_PORT: ${RABBITMQ_PORT:-5672} RABBITMQ_DEFAULT_USER: ${RABBITMQ_USER:-plane} RABBITMQ_DEFAULT_PASS: ${RABBITMQ_PASSWORD:-plane_rabbit_pwd_4820} RABBITMQ_DEFAULT_VHOST: ${RABBITMQ_VHOST:-plane} RABBITMQ_VHOST: ${RABBITMQ_VHOST:-plane} x-live-env: &live-env API_BASE_URL: ${API_BASE_URL:-http://api:8000} LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY} x-app-env: &app-env WEB_URL: ${WEB_URL:-https://jira.tradhox.com} DEBUG: ${DEBUG:-0} CORS_ALLOWED_ORIGINS: ${CORS_ALLOWED_ORIGINS:-https://jira.tradhox.com} GUNICORN_WORKERS: 1 USE_MINIO: ${USE_MINIO:-0} DATABASE_URL: ${DATABASE_URL} SECRET_KEY: ${SECRET_KEY} AMQP_URL: ${AMQP_URL} API_KEY_RATE_LIMIT: ${API_KEY_RATE_LIMIT:-60/minute} AUTHENTICATION_RATE_LIMIT: ${AUTHENTICATION_RATE_LIMIT:-10/minute} LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY} services: web: image: makeplane/plane-frontend:${APP_RELEASE:-stable} restart: unless-stopped volumes: - ./logs/web:/var/log/caddy - ./patches/page-BEQX0L4U.js:/usr/share/caddy/html/assets/page-BEQX0L4U.js:ro - ./patches/layout-C0Zt7niA.js:/usr/share/caddy/html/assets/layout-C0Zt7niA.js:ro - ./patches/upgrade-badge-BxAQzHXC.js:/usr/share/caddy/html/assets/upgrade-badge-BxAQzHXC.js:ro depends_on: - api - worker space: image: makeplane/plane-space:${APP_RELEASE:-stable} restart: unless-stopped depends_on: - api - worker - web admin: image: makeplane/plane-admin:${APP_RELEASE:-stable} restart: unless-stopped depends_on: - api - web live: image: makeplane/plane-live:${APP_RELEASE:-stable} restart: unless-stopped environment: <<: [*live-env, *redis-env] depends_on: - api - web api: image: makeplane/plane-backend:${APP_RELEASE:-stable} restart: unless-stopped command: ./bin/docker-entrypoint-api.sh extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./logs/api:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.py:ro - ./patches/project.py:/code/plane/db/models/project.py:ro environment: <<: [*app-env, *db-env, *redis-env, *aws-s3-env, *proxy-env] depends_on: - plane-redis - plane-mq worker: image: makeplane/plane-backend:${APP_RELEASE:-stable} restart: unless-stopped command: ./bin/docker-entrypoint-worker.sh extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./logs/worker:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.py:ro - ./patches/project.py:/code/plane/db/models/project.py:ro environment: <<: [*app-env, *db-env, *redis-env, *aws-s3-env, *proxy-env] depends_on: - api - plane-redis - plane-mq beat-worker: image: makeplane/plane-backend:${APP_RELEASE:-stable} restart: unless-stopped command: ./bin/docker-entrypoint-beat.sh extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./logs/beat-worker:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.py:ro - ./patches/project.py:/code/plane/db/models/project.py:ro environment: <<: [*app-env, *db-env, *redis-env, *aws-s3-env, *proxy-env] depends_on: - api - plane-redis - plane-mq migrator: image: makeplane/plane-backend:${APP_RELEASE:-stable} restart: "no" command: ./bin/docker-entrypoint-migrator.sh extra_hosts: - "host.docker.internal:host-gateway" volumes: - ./logs/migrator:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.py:ro - ./patches/project.py:/code/plane/db/models/project.py:ro environment: <<: [*app-env, *db-env, *redis-env, *aws-s3-env, *proxy-env] depends_on: - plane-redis plane-redis: image: valkey/valkey:7.2.11-alpine restart: unless-stopped volumes: - redisdata:/data plane-mq: image: rabbitmq:3.13.6-management-alpine restart: unless-stopped environment: <<: *mq-env volumes: - rabbitmq_data:/var/lib/rabbitmq proxy: image: makeplane/plane-proxy:${APP_RELEASE:-stable} restart: unless-stopped environment: <<: *proxy-env ports: - "127.0.0.1:8090:80" volumes: - proxy_config:/config - proxy_data:/data - ./logs/proxy:/var/log/caddy depends_on: - web - api - space - admin - live volumes: redisdata: rabbitmq_data: proxy_config: proxy_data: