跳转到内容

配置与环境变量

后端通过 pydantic-settings 读取环境变量,并在存在时加载 backend/.env。模板提供了 backend/.env.example:

变量 说明 默认值
DATABASE_URL 数据库连接串 sqlite+aiosqlite:///./app.db
JWT_SECRET_KEY 强随机密钥 无,必须设置
JWT_ALGORITHM 签名算法 HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES 令牌有效期(分钟) 1440
CORS_ORIGINS 允许来源,JSON 数组 ["http://localhost:5173"]
DATA_TMP_DIR 导入导出临时目录 ./data/tmp
MAX_IMPORT_SIZE_BYTES 导入包大小上限 1073741824
backend/.env
DATABASE_URL=sqlite+aiosqlite:///./app.db
JWT_SECRET_KEY=<openssl rand -base64 48 的输出>
JWT_ALGORITHM=HS256
JWT_ACCESS_TOKEN_EXPIRE_MINUTES=1440
CORS_ORIGINS=["http://localhost:5173"]
DATA_TMP_DIR=./data/tmp
MAX_IMPORT_SIZE_BYTES=1073741824

Java 后端配置位于 src/main/resources/application.yml:

配置 默认值 说明
server.port 8088 后端端口
spring.datasource.url jdbc:sqlite:./data/app.db SQLite 文件
spring.jpa.hibernate.ddl-auto none 结构由 Flyway 管理
spring.flyway.enabled true 启用数据库迁移
sa-token.token-style uuid 令牌风格
sa-token.timeout 86400 令牌有效期(秒)
app.cors-origins http://localhost:5173 允许来源
app.audit.exclude-paths /api/auth 审计排除路径
app.data.tmp-dir ./data/tmp 导入导出临时目录
app.data.max-import-size-bytes 1073741824 导入包大小上限
spring.servlet.multipart.max-file-size 1GB multipart 文件上限
spring.servlet.multipart.max-request-size 1GB multipart 请求上限

Java 版使用 Sa-Token,不需要 JWT_SECRET_KEY。

变量 说明
JWT_SECRET_KEY 必填(Python 后端),compose 未设置会报错
TZ 默认 Asia/Shanghai
DATABASE_URL Python 镜像内指向 /app/data/app.db
PYTHONUNBUFFERED Python 镜像内为 1

前端没有 .env 文件:

  • 请求基础地址在 src/api/client.ts 中固定为 /api。
  • 开发时由 vite.config.ts 将 /api 代理到 http://localhost:8088;生产由 Nginx 反代。
环境 前端 后端
开发 5173 8088
Docker 5173(对外) 8088(容器内,经 Nginx)