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:
30
.env.example
30
.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
|
||||
|
||||
56
.gitignore
vendored
Normal file
56
.gitignore
vendored
Normal 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
26
docker-compose.prod.yml
Normal 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
|
||||
@@ -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"]
|
||||
|
||||
Reference in New Issue
Block a user