services: # Telegram Bot Service telegram-bot: image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-telegram:${DOCKER_IMAGE_TAG:-latest}" container_name: ${CM_DEPLOY_NAME:-cm}-telegram-bot restart: unless-stopped environment: PYTHONUNBUFFERED: "1" TELEGRAM_BOT_TOKEN: ${TELEGRAM_BOT_TOKEN} TELEGRAM_ALERT_CHAT_ID: ${TELEGRAM_ALERT_CHAT_ID:-} TELEGRAM_ALERT_BOT_TOKEN: ${TELEGRAM_ALERT_BOT_TOKEN:-} CM_PREFIX_PATTERN: ${CM_PREFIX_PATTERN} CM_AGENT_ID: ${CM_AGENT_ID} CM_AGENT_PASSWORD: ${CM_AGENT_PASSWORD} CM_SECURITY_PIN: ${CM_SECURITY_PIN} CM_BOT_BASE_URL: ${CM_BOT_BASE_URL} DB_HOST: ${DB_HOST} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_NAME: ${DB_NAME} DB_PORT: ${DB_PORT} DB_CONNECTION_TIMEOUT: ${DB_CONNECTION_TIMEOUT} DB_CONNECT_RETRIES: ${DB_CONNECT_RETRIES} DB_CONNECT_RETRY_DELAY: ${DB_CONNECT_RETRY_DELAY} volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - bot-network depends_on: - api-server # API Server Service api-server: image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-api:${DOCKER_IMAGE_TAG:-latest}" container_name: ${CM_DEPLOY_NAME:-cm}-api-server restart: unless-stopped ports: - "3000" environment: PYTHONUNBUFFERED: "1" DB_HOST: ${DB_HOST} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_NAME: ${DB_NAME} DB_PORT: ${DB_PORT} DB_CONNECTION_TIMEOUT: ${DB_CONNECTION_TIMEOUT} DB_CONNECT_RETRIES: ${DB_CONNECT_RETRIES} DB_CONNECT_RETRY_DELAY: ${DB_CONNECT_RETRY_DELAY} volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - bot-network # Web View Service web-view: image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-web:${DOCKER_IMAGE_TAG:-latest}" container_name: ${CM_DEPLOY_NAME:-cm}-web-view restart: unless-stopped ports: - "${CM_WEB_HOST_PORT:-8001}:8000" environment: PYTHONUNBUFFERED: "1" API_BASE_URL: http://api-server:3000 CM_PREFIX_PATTERN: ${CM_PREFIX_PATTERN} volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro networks: - bot-network depends_on: - api-server transfer-bot: image: "${CM_IMAGE_PREFIX:-your-registry/namespace}/cm-transfer:${DOCKER_IMAGE_TAG:-latest}" container_name: ${CM_DEPLOY_NAME:-cm}-transfer-bot restart: unless-stopped environment: PYTHONUNBUFFERED: "1" API_BASE_URL: http://api-server:3000 CM_TRANSFER_MAX_THREADS: "20" CM_PREFIX_PATTERN: ${CM_PREFIX_PATTERN} CM_AGENT_ID: ${CM_AGENT_ID} CM_AGENT_PASSWORD: ${CM_AGENT_PASSWORD} CM_SECURITY_PIN: ${CM_SECURITY_PIN} CM_BOT_BASE_URL: ${CM_BOT_BASE_URL} DB_HOST: ${DB_HOST} DB_USER: ${DB_USER} DB_PASSWORD: ${DB_PASSWORD} DB_NAME: ${DB_NAME} DB_PORT: ${DB_PORT} DB_CONNECTION_TIMEOUT: ${DB_CONNECTION_TIMEOUT} DB_CONNECT_RETRIES: ${DB_CONNECT_RETRIES} DB_CONNECT_RETRY_DELAY: ${DB_CONNECT_RETRY_DELAY} volumes: - /etc/timezone:/etc/timezone:ro - /etc/localtime:/etc/localtime:ro mem_limit: 6g cpus: 2 networks: - bot-network depends_on: - api-server - web-view networks: bot-network: name: ${CM_DEPLOY_NAME:-cm}-network driver: bridge