Skip to content

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_HOSTMySQL 主机localhost
DB_PORT端口3306
DB_NAME库名xichen
DB_USER用户名xichen
DB_PASSWORD密码支持 @ 等特殊字符
JWT_SECRETJWT 签名密钥生产必改;与 Java 切换后端时可保持一致
JWT_ACCESS_TOKEN_EXPIRE_MINUTESaccess 过期(分钟)60
JWT_REFRESH_TOKEN_EXPIRE_DAYSrefresh 过期(天)7
CORS_ORIGINS跨域源,逗号分隔localhost:5173 等
DB_INIT_ALLOW_WEB是否允许 Web 端 inittrue(生产建议 false)
UPLOAD_PATH文件上传目录./uploads;Docker 用 /app/uploads

database_url

Settings.database_url 对密码做 urllib.parse.quote_plus 后拼入 SQLAlchemy URL:

env
DB_PASSWORD=df@20231204

Docker 注意

  • 镜像已设 ENV UPLOAD_PATH=/app/uploadschown 上传目录
  • .env 里写 UPLOAD_PATH=./uploads 会覆盖镜像默认值,可能导致 Permission denied
  • 挂载卷:-v /data/xichen-uploads:/app/uploads.envUPLOAD_PATH=/app/uploads

详见 Docker server-python

密码哈希

app/core/security.py 使用 bcrypt(非 passlib),与 Java BCryptPasswordEncoder 哈希兼容。

Alembic(可选)

根目录有 alembic/,可用于迁移;默认流程仍是 app/resources/db/*.sql + init API。见 packages/server-python/README.md

相关文档

Xichen Full Stack 内部文档