# # Project-root Docker/Compose overrides # Copy to `.env` only when you need custom ports or want to switch image source. # # Optional custom ports # FRONTEND_PORT=8888 # BACKEND_PORT=127.0.0.1:5000 # DB_PORT=127.0.0.1:5432 # MOBILE_HOST=127.0.0.1 # Production credentials. Set all of these before using the production override. # POSTGRES_PASSWORD= # REDIS_PASSWORD= # CELERY_REDIS_PASSWORD= # GRAFANA_ADMIN_USER=admin # GRAFANA_ADMIN_PASSWORD= # Redis workload tiers and container limits. # REDIS_CACHE_MAXMEMORY=128mb # REDIS_JOBS_MAXMEMORY=512mb # REDIS_CACHE_NAMESPACE=quantdinger:cache:v1 # CONTAINER_LOG_MAX_SIZE=20m # CONTAINER_LOG_MAX_FILES=5 # Optional observability ports and retention. All bind to loopback by default. # PROMETHEUS_PORT=127.0.0.1:9090 # ALERTMANAGER_PORT=127.0.0.1:9093 # GRAFANA_PORT=127.0.0.1:3000 # PROMETHEUS_RETENTION=30d # PostgreSQL image/data overrides. # Default compose now uses postgres:18.3-alpine with PGDATA=/var/lib/postgresql/18/docker. # To reuse an existing 1Panel PostgreSQL 18 data directory, stop the old DB first, # then point POSTGRES_DATA_SOURCE to the host directory that contains PG_VERSION. # Example for 1Panel PostgreSQL with: # host mount: /opt/1panel/apps/postgresql/postgresql/data -> /var/lib/postgresql # PGDATA: /var/lib/postgresql/18/docker # use: # POSTGRES_IMAGE=postgres:18.3-alpine # POSTGRES_DATA_SOURCE=/opt/1panel/apps/postgresql/postgresql/data/18/docker # POSTGRES_PGDATA=/var/lib/postgresql/18/docker # POSTGRES_USER=user_from_old_container # POSTGRES_PASSWORD=password_from_old_container # POSTGRES_DB=quantdinger # Global image source switch for infrastructure images # Leave empty for official Docker Hub: # IMAGE_PREFIX= # REDIS_IMAGE=redis:8-alpine # # Common alternatives (pick one, keep trailing slash): # IMAGE_PREFIX=docker.m.daocloud.io/library/ # IMAGE_PREFIX=docker.xuanyuan.me/library/ # # Important: # - This file lives in the project root and is used by docker-compose build/pull. # - `backend_api_python/.env` is runtime config for the backend container only. # - `IMAGE_PREFIX` applies to postgres, redis, backend base image, and frontend nginx. # - For slow `docker pull` of base images, use IMAGE_PREFIX or Docker # Desktop → Settings → Docker Engine → registry-mirrors (e.g. daocloud). # Backend Dockerfile region switch (used by docker-compose.yml build): # global = use Debian/PyPI official sources directly, skip Aliyun entirely (default) # cn = use Aliyun apt/PyPI mirrors with fallback to official # BUILD_REGION=global # Backend Python base image override for local builds. # docker-compose.yml defaults to docker.1ms.run/library/python:3.12-slim-bookworm # to reduce first-install failures caused by Docker Hub auth/base-image pulls. # Set this only when you want a different source. # PYTHON_BASE_IMAGE=python:3.12-slim-bookworm # PYTHON_BASE_IMAGE=docker.xuanyuan.me/library/python:3.12-slim-bookworm # Recommended install paths: # - Regular users: use docker-compose.ghcr.yml. It pulls prebuilt backend, # frontend, and mobile images and does not build from python:3.12 locally. # - Developers/local source edits: use docker-compose.yml and set # PYTHON_BASE_IMAGE only if Docker Hub is slow. # ----- Image tags (consumed by both docker-compose.yml and docker-compose.ghcr.yml) ----- # # Resolution order (highest precedence first): # BACKEND_TAG / FRONTEND_TAG → IMAGE_TAG → compose file default (latest) # # Default: compose pulls ghcr.io/.../quantdinger-*:latest on every `up` (pull_policy: always). # Uncomment to pin a release (GHCR semver tags omit the leading "v", e.g. v5.0.1 → 5.0.1): # IMAGE_TAG=5.0.1 # # Advanced — decouple sides (e.g. frontend hotfix against stable backend): # FRONTEND_TAG=5.0.2 # BACKEND_TAG=5.0.1 # # Override the GHCR image paths (e.g. for forks): # BACKEND_IMAGE=ghcr.io/openbyteinc/quantdinger-backend # FRONTEND_IMAGE=ghcr.io/openbyteinc/quantdinger-frontend