services: minio: image: minio/minio:RELEASE.2025-02-28T09-55-16Z container_name: media-drop-minio profiles: - local-minio restart: unless-stopped environment: MINIO_ROOT_USER: "${MINIO_ROOT_USER:-}" MINIO_ROOT_PASSWORD: "${MINIO_ROOT_PASSWORD:-}" command: server /data --console-address ":9001" ports: - "127.0.0.1:9000:9000" - "127.0.0.1:9001:9001" volumes: - ./minio-data:/data backend: build: context: ./media-drop-backend image: analysis-dy-backend:local container_name: media-drop-backend restart: unless-stopped environment: AUTH_ENABLED: "${AUTH_ENABLED:-1}" AUTH_USERNAME: "${AUTH_USERNAME:-}" AUTH_PASSWORD_HASH: "${AUTH_PASSWORD_HASH:-}" AUTH_SECRET: "${AUTH_SECRET:-}" AUTH_COOKIE_SECURE: "${AUTH_COOKIE_SECURE:-1}" AUTH_TOKEN_TTL: "${AUTH_TOKEN_TTL:-28800}" AUTH_TRUST_PROXY_HEADERS: "${AUTH_TRUST_PROXY_HEADERS:-1}" DOUYIN_BROWSER_COOKIES: "${DOUYIN_BROWSER_COOKIES:-0}" YTDLP_COOKIES_AUTO: "${YTDLP_COOKIES_AUTO:-0}" DB_HOST: "${DB_HOST:?set DB_HOST}" DB_PORT: "${DB_PORT:?set DB_PORT}" DB_USER: "${DB_USER:?set DB_USER}" DB_PASSWORD: "${DB_PASSWORD:?set DB_PASSWORD}" DB_NAME: "${DB_NAME:?set DB_NAME}" ARCHIVE_ROOT: "${ARCHIVE_ROOT:-/data/archives}" SNAPSHOT_STORAGE: "${SNAPSHOT_STORAGE:-local}" SNAPSHOT_LOCAL_ROOT: "${SNAPSHOT_LOCAL_ROOT:-/data/snapshots}" SNAPSHOT_TIMEZONE: "${SNAPSHOT_TIMEZONE:-Asia/Shanghai}" SNAPSHOT_SCHEDULER_ENABLED: "${SNAPSHOT_SCHEDULER_ENABLED:-1}" MINIO_ENDPOINT: "${MINIO_ENDPOINT:-}" MINIO_ACCESS_KEY: "${MINIO_ACCESS_KEY:-}" MINIO_SECRET_KEY: "${MINIO_SECRET_KEY:-}" MINIO_BUCKET: "${MINIO_BUCKET:-snapshot-archive}" MINIO_SECURE: "${MINIO_SECURE:-true}" volumes: - ./archives:/data/archives - ./snapshot_objects:/data/snapshots expose: - "8001" healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://127.0.0.1:8001/api/health', timeout=3)"] interval: 10s timeout: 5s retries: 6 start_period: 10s web: build: context: ./web image: analysis-dy-web:local container_name: media-drop-web restart: unless-stopped ports: - "127.0.0.1:8080:80" depends_on: backend: condition: service_healthy healthcheck: test: ["CMD", "wget", "-qO-", "http://127.0.0.1/api/health"] interval: 10s timeout: 5s retries: 6 start_period: 5s