feat: 支持本地与生产环境分离配置

- 新增 .gitignore 忽略敏感配置文件
- 新增 .env.local 本地开发环境配置
- 新增 .env.production 生产环境配置
- 新增 docker-compose.prod.yml 生产环境覆盖配置
- 更新 docker-compose.yml 使用 env_file 方式读取配置

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
lzh
2026-01-22 16:15:59 +08:00
parent 5de6cfc9de
commit 9f1feeb216
4 changed files with 116 additions and 12 deletions

View File

@@ -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

56
.gitignore vendored Normal file
View File

@@ -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

26
docker-compose.prod.yml Normal file
View File

@@ -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

View File

@@ -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"]