Simplify environment configuration to only essential fields
This commit is contained in:
parent
0c3be79f3c
commit
f39a92519a
32
.env.example
32
.env.example
@ -1,36 +1,10 @@
|
||||
# 应用配置
|
||||
APP_NAME=Vue3 Python Notepad
|
||||
APP_VERSION=1.0.0
|
||||
|
||||
# 后端配置
|
||||
BACKEND_HOST=0.0.0.0
|
||||
BACKEND_PORT=8000
|
||||
PYTHONPATH=/app
|
||||
PYTHONUNBUFFERED=1
|
||||
|
||||
# 前端配置
|
||||
VITE_API_BASE_URL=/api
|
||||
|
||||
# 文件存储
|
||||
NOTES_DIR=/app/data
|
||||
|
||||
# 安全配置
|
||||
# 请修改这个密码,建议使用强密码
|
||||
FILE_LIST_PASSWORD=your_secure_password_here
|
||||
|
||||
# JWT 配置
|
||||
JWT_SECRET_KEY=your_jwt_secret_key_here_change_this_in_production
|
||||
JWT_ALGORITHM=HS256
|
||||
JWT_EXPIRE_MINUTES=1440 # 24小时
|
||||
|
||||
# Docker 配置
|
||||
COMPOSE_PROJECT_NAME=notepad
|
||||
|
||||
# 可选:日志级别
|
||||
LOG_LEVEL=info
|
||||
|
||||
# 可选:最大文件大小(字节)
|
||||
MAX_FILE_SIZE=100000
|
||||
|
||||
# 可选:文件名最大长度
|
||||
MAX_FILENAME_LENGTH=200
|
||||
# 端口配置
|
||||
# 容器对外暴露的端口(修改后需要更新 docker-compose.yml 中的端口映射)
|
||||
EXTERNAL_PORT=80
|
||||
@ -16,15 +16,11 @@ nano .env
|
||||
|
||||
**必须修改的配置:**
|
||||
- `FILE_LIST_PASSWORD` - 设置强密码(建议使用随机生成的密码)
|
||||
- `JWT_SECRET_KEY` - 设置随机密钥(建议使用 32 位以上随机字符串)
|
||||
|
||||
**生成强密码和密钥的方法:**
|
||||
**生成强密码的方法:**
|
||||
```bash
|
||||
# 生成密码
|
||||
openssl rand -base64 32
|
||||
|
||||
# 生成 JWT 密钥
|
||||
openssl rand -hex 32
|
||||
```
|
||||
|
||||
### 2. 文件权限设置
|
||||
@ -69,17 +65,14 @@ curl http://localhost/api/health
|
||||
|
||||
| 变量名 | 说明 | 默认值 | 是否必须修改 |
|
||||
|--------|------|--------|------------|
|
||||
| `FILE_LIST_PASSWORD` | 文件列表访问密码 | admin123 | **是** |
|
||||
| `JWT_SECRET_KEY` | JWT 签名密钥 | your-secret-key | **是** |
|
||||
| `NOTES_DIR` | 文件存储目录 | /app/data | 否 |
|
||||
| `MAX_FILE_SIZE` | 最大文件大小(字节) | 100000 | 否 |
|
||||
| `JWT_EXPIRE_MINUTES` | JWT 过期时间(分钟) | 1440 | 否 |
|
||||
| `APP_NAME` | 应用名称 | Vue3 Python Notepad | 否 |
|
||||
| `FILE_LIST_PASSWORD` | 文件列表访问密码 | your_secure_password_here | **是** |
|
||||
| `EXTERNAL_PORT` | 容器对外暴露的端口 | 80 | 否 |
|
||||
|
||||
## 安全建议
|
||||
|
||||
1. **定期更换密码**
|
||||
- 建议每 3 个月更换一次 `FILE_LIST_PASSWORD`
|
||||
- 每年更换一次 `JWT_SECRET_KEY`
|
||||
|
||||
2. **使用 HTTPS**
|
||||
- 配置反向代理(Nginx/Traefik)
|
||||
@ -100,8 +93,8 @@ curl http://localhost/api/health
|
||||
- 检查 `.env` 文件中的 `FILE_LIST_PASSWORD`
|
||||
- 重启容器:`docker-compose restart backend`
|
||||
|
||||
2. **JWT 错误**
|
||||
- 检查 `.env` 文件中的 `JWT_SECRET_KEY`
|
||||
2. **认证错误**
|
||||
- 检查 `.env` 文件中的 `FILE_LIST_PASSWORD`
|
||||
- 清除浏览器 localStorage 中的 token
|
||||
|
||||
3. **权限问题**
|
||||
|
||||
@ -7,23 +7,21 @@ class Settings(BaseSettings):
|
||||
|
||||
# 基础配置
|
||||
app_name: str = os.getenv("APP_NAME", "Vue3 + Python Notepad")
|
||||
app_version: str = os.getenv("APP_VERSION", "1.0.0")
|
||||
debug: bool = os.getenv("DEBUG", "false").lower() == "true"
|
||||
|
||||
# 文件存储配置
|
||||
notes_dir: str = os.getenv("NOTES_DIR", "/app/data")
|
||||
notes_dir: str = "/app/data"
|
||||
|
||||
# 安全配置
|
||||
file_list_password: str = os.getenv("FILE_LIST_PASSWORD", "admin123")
|
||||
|
||||
# JWT配置
|
||||
jwt_secret_key: str = os.getenv("JWT_SECRET_KEY", "your-secret-key-change-this-in-production")
|
||||
jwt_algorithm: str = os.getenv("JWT_ALGORITHM", "HS256")
|
||||
jwt_expire_minutes: int = int(os.getenv("JWT_EXPIRE_MINUTES", "1440")) # 24小时
|
||||
# JWT配置(使用固定值,简化配置)
|
||||
jwt_secret_key: str = "default-secret-key-change-in-production"
|
||||
jwt_algorithm: str = "HS256"
|
||||
jwt_expire_minutes: int = 1440 # 24小时
|
||||
|
||||
# 文件限制
|
||||
max_file_size: int = int(os.getenv("MAX_FILE_SIZE", "100000")) # 100KB
|
||||
max_filename_length: int = int(os.getenv("MAX_FILENAME_LENGTH", "200"))
|
||||
# 文件限制(使用固定值,简化配置)
|
||||
max_file_size: int = 100000 # 100KB
|
||||
max_filename_length: int = 200
|
||||
|
||||
class Config:
|
||||
env_file = ".env"
|
||||
|
||||
@ -21,7 +21,7 @@ services:
|
||||
container_name: notepad-frontend
|
||||
restart: unless-stopped
|
||||
ports:
|
||||
- "80:80"
|
||||
- "${EXTERNAL_PORT:-80}:80"
|
||||
depends_on:
|
||||
- backend
|
||||
env_file:
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user