services: douyu-login: build: . container_name: douyu-login restart: unless-stopped ports: - "8800:8800" volumes: # 持久化数据库和日志 - ./data:/app/data - ./logs:/app/logs environment: - TZ=Asia/Shanghai # JWT 密钥(生产环境务必修改,可用 python -c "import secrets; print(secrets.token_urlsafe(32))" 生成) - JWT_SECRET_KEY=${JWT_SECRET_KEY:-} # 敏感字段落盘加密密钥(生产环境务必长期保持不变) - APP_ENCRYPTION_KEY=${APP_ENCRYPTION_KEY:-} # 默认管理员账号密码(仅首次启动建库时生效) - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - ADMIN_PASSWORD=${ADMIN_PASSWORD:-admin123} # Cookie 安全标志(HTTPS 部署时设为 true) - COOKIE_SECURE=${COOKIE_SECURE:-false} # CORS 允许的源(逗号分隔) - CORS_ORIGINS=${CORS_ORIGINS:-} # Roundcube 邮件验证码读取服务地址(不填则使用代码默认值) - MAIL_ROUNDCUBE_URL=${MAIL_ROUNDCUBE_URL:-} # Uvicorn reload(生产环境保持 false) - UVICORN_RELOAD=${UVICORN_RELOAD:-false} # 增加文件描述符限制,避免 "Too many open files" 错误 ulimits: nofile: soft: 65536 hard: 65536 healthcheck: test: ["CMD", "python", "-c", "import urllib.request; urllib.request.urlopen('http://localhost:8800/api/health')"] interval: 30s timeout: 5s retries: 3