diff --git a/.env.example b/.env.example index dec314d..d83af27 100644 --- a/.env.example +++ b/.env.example @@ -1,14 +1,36 @@ -# Vitals 环境变量配置 +# Vitals 环境变量配置示例 +# +# 项目支持多环境配置: +# +# 本地开发: +# 复制此文件为 .env.local 并修改配置 +# 启动: docker-compose up +# +# 生产环境: +# 复制此文件为 .env.production 并修改配置 +# 启动: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d +# +# ============================================ +# 环境标识(development | production) +ENVIRONMENT=development + +# ============================================ # 管理员账户(首次启动时自动创建) +# ============================================ ADMIN_USERNAME=admin -ADMIN_PASSWORD=admin0905 +ADMIN_PASSWORD=changeme123 +# ============================================ +# 安全配置 +# ============================================ # JWT 密钥(请使用随机字符串,可用 openssl rand -hex 32 生成) JWT_SECRET=your_random_secret_key_here +# ============================================ # AI 食物识别(可选,二选一) +# ============================================ # 阿里云通义千问 -DASHSCOPE_API_KEY=sk-e3b36e63947445c8bb51a87a7ef15850dashscope_api_key_here +DASHSCOPE_API_KEY=your_dashscope_api_key_here # DeepSeek -DEEPSEEK_API_KEY=your_deepseek_api_key_here +# DEEPSEEK_API_KEY=your_deepseek_api_key_here diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..fb1822c --- /dev/null +++ b/.gitignore @@ -0,0 +1,56 @@ +# Python +__pycache__/ +*.py[cod] +*$py.class +*.so +.Python +build/ +develop-eggs/ +dist/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +*.egg-info/ +.installed.cfg +*.egg +.pytest_cache/ +.coverage +htmlcov/ + +# Virtual environments +venv/ +env/ +ENV/ +.venv + +# IDEs +.vscode/ +.idea/ +*.swp +*.swo +*~ + +# Environment variables (包含敏感信息) +.env +# .env.local +# .env.*.local + +# Data files +data/ +*.db +*.sqlite +*.sqlite3 + +# Logs +*.log +logs/ + +# OS +.DS_Store +Thumbs.db diff --git a/docker-compose.prod.yml b/docker-compose.prod.yml new file mode 100644 index 0000000..f03d2ff --- /dev/null +++ b/docker-compose.prod.yml @@ -0,0 +1,26 @@ +# 生产环境 Docker Compose 配置 +# 使用方式: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d + +services: + vitals: + env_file: + - .env.production + environment: + # 生产环境标识 + - ENVIRONMENT=production + restart: always + # 生产环境日志配置 + logging: + driver: "json-file" + options: + max-size: "10m" + max-file: "3" + # 资源限制(可选) + deploy: + resources: + limits: + cpus: '1' + memory: 512M + reservations: + cpus: '0.25' + memory: 128M diff --git a/docker-compose.yml b/docker-compose.yml index db4c336..55055ec 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -1,3 +1,7 @@ +# 本地开发环境配置 +# 使用方式: docker-compose up +# 生产环境请使用: docker-compose -f docker-compose.yml -f docker-compose.prod.yml up -d + services: vitals: build: . @@ -5,15 +9,11 @@ services: - "8888:8080" volumes: - ./data:/app/data + env_file: + - .env.local environment: - # 管理员账户(首次启动时创建) - - ADMIN_USERNAME=${ADMIN_USERNAME:-admin} - - ADMIN_PASSWORD=${ADMIN_PASSWORD:-changeme123} - # JWT 密钥(请使用随机字符串) - - JWT_SECRET=${JWT_SECRET:-vitals-secret-key-change-in-production} - # AI 食物识别(可选) - - DASHSCOPE_API_KEY=${DASHSCOPE_API_KEY:-} - - DEEPSEEK_API_KEY=${DEEPSEEK_API_KEY:-} + # 环境标识 + - ENVIRONMENT=${ENVIRONMENT:-development} restart: unless-stopped healthcheck: test: ["CMD", "curl", "-f", "http://localhost:8080/api/today"]