Appearance
Python 配置与环境
配置类:app/core/config.py(pydantic-settings)
模板:packages/server-python/.env.example
本地:复制为 .env,在 packages/server-python 目录下 启动服务。
Docker:通过 --env-file 或 -e 注入;镜像内默认 UPLOAD_PATH=/app/uploads。
环境变量
| 变量 | 说明 | 默认 / 备注 |
|---|---|---|
SERVER_PORT | 服务端口 | 8000(package.json dev 脚本写死 8000) |
DB_HOST | MySQL 主机 | localhost |
DB_PORT | 端口 | 3306 |
DB_NAME | 库名 | xichen |
DB_USER | 用户名 | xichen |
DB_PASSWORD | 密码 | 支持 @ 等特殊字符 |
JWT_SECRET | JWT 签名密钥 | 生产必改;与 Java 切换后端时可保持一致 |
JWT_ACCESS_TOKEN_EXPIRE_MINUTES | access 过期(分钟) | 60 |
JWT_REFRESH_TOKEN_EXPIRE_DAYS | refresh 过期(天) | 7 |
CORS_ORIGINS | 跨域源,逗号分隔 | localhost:5173 等 |
DB_INIT_ALLOW_WEB | 是否允许 Web 端 init | true(生产建议 false) |
UPLOAD_PATH | 文件上传目录 | ./uploads;Docker 用 /app/uploads |
database_url
Settings.database_url 对密码做 urllib.parse.quote_plus 后拼入 SQLAlchemy URL:
env
DB_PASSWORD=df@20231204Docker 注意
- 镜像已设
ENV UPLOAD_PATH=/app/uploads并chown上传目录 - 若
.env里写UPLOAD_PATH=./uploads会覆盖镜像默认值,可能导致 Permission denied - 挂载卷:
-v /data/xichen-uploads:/app/uploads,.env中UPLOAD_PATH=/app/uploads
密码哈希
app/core/security.py 使用 bcrypt(非 passlib),与 Java BCryptPasswordEncoder 哈希兼容。
Alembic(可选)
根目录有 alembic/,可用于迁移;默认流程仍是 app/resources/db/*.sql + init API。见 packages/server-python/README.md。