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} PGDATA: ${PGDATA:-/var/lib/postgresql/data} 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:-} AWS_ACCESS_KEY_ID: ${AWS_ACCESS_KEY_ID:-access-key} AWS_SECRET_ACCESS_KEY: ${AWS_SECRET_ACCESS_KEY:-secret-key} AWS_S3_ENDPOINT_URL: ${AWS_S3_ENDPOINT_URL:-https://s3.ap-south-2.amazonaws.com} 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} CERT_EMAIL: ${CERT_EMAIL} CERT_ACME_CA: ${CERT_ACME_CA} CERT_ACME_DNS: ${CERT_ACME_DNS} LISTEN_HTTP_PORT: ${LISTEN_HTTP_PORT:-8090} LISTEN_HTTPS_PORT: ${LISTEN_HTTPS_PORT:-4430} BUCKET_NAME: ${AWS_S3_BUCKET_NAME:-trypostmedia} SITE_ADDRESS: ${SITE_ADDRESS:-:80} 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} GUNICORN_WORKERS: 1 USE_MINIO: ${USE_MINIO:-0} DATABASE_URL: ${DATABASE_URL:-postgresql://vignesh:vignesh_secret_pass_2026@host.docker.internal:5432/plane} SECRET_KEY: ${SECRET_KEY} AMQP_URL: ${AMQP_URL:-amqp://plane:plane_rabbit_pwd_4820@plane-mq:5672/plane} API_KEY_RATE_LIMIT: ${API_KEY_RATE_LIMIT:-60/minute} MINIO_ENDPOINT_SSL: ${MINIO_ENDPOINT_SSL:-0} LIVE_SERVER_SECRET_KEY: ${LIVE_SERVER_SECRET_KEY} WEBHOOK_ALLOWED_IPS: ${WEBHOOK_ALLOWED_IPS:-} WEBHOOK_ALLOWED_HOSTS: ${WEBHOOK_ALLOWED_HOSTS:-} services: web: image: makeplane/plane-frontend:${APP_RELEASE:-v1.4.3} restart: unless-stopped deploy: replicas: ${WEB_REPLICAS:-1} depends_on: - api - worker space: image: makeplane/plane-space:${APP_RELEASE:-v1.4.3} restart: unless-stopped deploy: replicas: ${SPACE_REPLICAS:-1} depends_on: - api - worker - web admin: image: makeplane/plane-admin:${APP_RELEASE:-v1.4.3} restart: unless-stopped deploy: replicas: ${ADMIN_REPLICAS:-1} depends_on: - api - web live: image: makeplane/plane-live:${APP_RELEASE:-v1.4.3} restart: unless-stopped environment: <<: [*live-env, *redis-env] deploy: replicas: ${LIVE_REPLICAS:-1} depends_on: - api - web api: image: makeplane/plane-backend:${APP_RELEASE:-v1.4.3} command: ./bin/docker-entrypoint-api.sh restart: unless-stopped extra_hosts: - host.docker.internal:host-gateway deploy: replicas: ${API_REPLICAS:-1} volumes: - logs_api:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.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:-v1.4.3} command: ./bin/docker-entrypoint-worker.sh restart: unless-stopped extra_hosts: - host.docker.internal:host-gateway deploy: replicas: ${WORKER_REPLICAS:-1} volumes: - logs_worker:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.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:-v1.4.3} command: ./bin/docker-entrypoint-beat.sh restart: unless-stopped extra_hosts: - host.docker.internal:host-gateway deploy: replicas: ${BEAT_WORKER_REPLICAS:-1} volumes: - logs_beat-worker:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.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:-v1.4.3} command: ./bin/docker-entrypoint-migrator.sh restart: no extra_hosts: - host.docker.internal:host-gateway volumes: - logs_migrator:/code/plane/logs - ./patches/storage.py:/code/plane/settings/storage.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:-v1.4.3} restart: unless-stopped environment: <<: *proxy-env ports: - 127.0.0.1:8090:80 volumes: - proxy_config:/config - proxy_data:/data depends_on: - web - api - space - admin - live volumes: redisdata: logs_api: logs_worker: logs_beat-worker: logs_migrator: rabbitmq_data: proxy_config: proxy_data: