跳到主要内容

参考

环境变量

配置分层(约定)

场景模板文件读者
deploy(自托管)主仓库 .env.example自托管用户
dev(本地开发)前端 .env.example / 后端 .env.example开发者
  • 环境变量唯一事实源为各项目 .env
  • 后端实际读取逻辑以 Beancount-Trans-Backend/project/settings/settings.py 为准;下表用于按场景检索变量。

字段说明:

  • 必填级别必填 / 条件必填 / 可选
  • 模板deploy(仅主仓自托管模板出现)/ dev(仅后端开发模板出现)/ both(两套模板均出现,或文档约定两处需同步关注)

核心与网络

变量名必填级别默认值(示例)说明模板
DJANGO_SETTINGS_MODULE可选project.settings.settingsDjango 设置模块both
DJANGO_SECRET_KEY必填示例占位Django 密钥,生产必须替换both
DJANGO_DEBUG可选True调试模式both
DJANGO_ALLOWED_HOSTS条件必填注释示例DEBUG=False 时配置允许域名both
CSRF_TRUSTED_ORIGINS条件必填注释示例DEBUG=False 时配置 CSRF 来源both
CORS_ALLOWED_ORIGINS条件必填注释示例或本地示例跨域来源列表(逗号分隔)both

PostgreSQL

变量名必填级别默认值(示例)说明模板
TRANS_POSTGRESQL_DATABASE可选beancount-trans数据库名both
TRANS_POSTGRESQL_USER可选root数据库用户名both
TRANS_POSTGRESQL_PASSWORD必填root数据库密码both
TRANS_POSTGRESQL_HOST可选beancount-trans-postgres(deploy)/127.0.0.1(dev)数据库主机both
TRANS_POSTGRESQL_PORT可选5432数据库端口both

Redis

变量名必填级别默认值(示例)说明模板
TRANS_REDIS_HOST可选beancount-trans-redis(deploy)/127.0.0.1(dev)Redis 主机both
TRANS_REDIS_PORT可选6379Redis 端口both
TRANS_REDIS_PASSWORD必填rootRedis 密码both

存储(MinIO / OSS / S3)

变量名必填级别默认值(示例)说明模板
STORAGE_TYPE可选minio存储类型:minio / oss / s3both
MINIO_ENDPOINT条件必填beancount-trans-minio:9000(deploy)/127.0.0.1:9000(dev)STORAGE_TYPE=minio 时使用both
MINIO_ACCESS_KEY条件必填minioadminSTORAGE_TYPE=minio 时使用both
MINIO_SECRET_KEY条件必填minioadminSTORAGE_TYPE=minio 时使用both
MINIO_BUCKET_NAME条件必填beancount-transSTORAGE_TYPE=minio 时使用both
MINIO_USE_HTTPS可选FalseMinIO 是否 HTTPSboth
OSS_ENDPOINT条件必填oss-cn-hangzhou.aliyuncs.comSTORAGE_TYPE=oss 时使用dev
OSS_ACCESS_KEY_ID条件必填STORAGE_TYPE=oss 时使用dev
OSS_ACCESS_KEY_SECRET条件必填STORAGE_TYPE=oss 时使用dev
OSS_BUCKET_NAME条件必填beancount-transSTORAGE_TYPE=oss 时使用dev
OSS_REGION可选cn-hangzhouSTORAGE_TYPE=oss 时使用dev
S3_ENDPOINT_URL条件必填https://s3.amazonaws.comSTORAGE_TYPE=s3 时使用dev
S3_ACCESS_KEY_ID条件必填STORAGE_TYPE=s3 时使用dev
S3_SECRET_ACCESS_KEY条件必填STORAGE_TYPE=s3 时使用dev
S3_BUCKET_NAME条件必填beancount-transSTORAGE_TYPE=s3 时使用dev
S3_REGION可选us-east-1STORAGE_TYPE=s3 时使用dev
S3_USE_SSL可选TrueSTORAGE_TYPE=s3 时使用dev
S3_VERIFY_SSL可选TrueSTORAGE_TYPE=s3 时使用dev

认证、OAuth、短信、JWT

变量名必填级别默认值(示例)说明模板
PHONE_BINDING_REQUIRED可选False(deploy 建议)是否强制手机号绑定deploy
SMS_ENABLED可选False(deploy 建议)是否启用短信流程deploy
JWT_ACCESS_TOKEN_HOURS可选720(deploy)/72(dev 示例)Access Token 有效小时both
GITHUB_CLIENT_ID可选示例占位GitHub OAuth Client IDdev
GITHUB_CLIENT_SECRET可选示例占位GitHub OAuth Client Secretdev
GOOGLE_CLIENT_ID可选示例占位Google OAuth Client IDdev
GOOGLE_CLIENT_SECRET可选示例占位Google OAuth Client Secretdev
ALIYUN_SMS_ACCESS_KEY_ID可选示例占位阿里云短信 AccessKey IDdev
ALIYUN_SMS_ACCESS_KEY_SECRET可选示例占位阿里云短信 AccessKey Secretdev
ALIYUN_SMS_SIGN_NAME可选示例占位短信签名dev
ALIYUN_SMS_TEMPLATE_CODE可选示例占位短信模板代码dev

邮箱(完整字段)

变量名必填级别默认值(示例)说明模板
DEFAULT_FROM_EMAIL可选示例占位发件人地址both
EMAIL_BIND_SUBJECT可选邮箱绑定验证码邮件主题(绑定场景)dev
EMAIL_BACKEND可选SMTP 或控制台后端Django 邮件后端both
EMAIL_HOST可选smtp.qq.com(示例)SMTP 主机both
EMAIL_PORT可选465(示例)SMTP 端口both
EMAIL_HOST_USER可选示例占位SMTP 用户both
EMAIL_HOST_PASSWORD可选示例占位SMTP 密码/授权码both
EMAIL_USE_SSL可选true(示例)SSL 开关both
EMAIL_USE_TLS可选false(示例)TLS 开关dev
EMAIL_TIMEOUT可选15SMTP 超时秒数dev
EMAIL_CODE_EXPIRE_SECONDS可选300邮件验证码有效期dev
EMAIL_CODE_RESEND_INTERVAL可选60邮件验证码重发间隔dev

Fava / 路由 / 资产路径

变量名必填级别默认值(示例)说明模板
FAVA_DEPLOY_MODE可选static(deploy)/见后端默认Fava 部署模式both
FAVA_STATIC_USER_MAP条件必填admin=http://127.0.0.1:5001静态模式用户到 URL 映射deploy
FAVA_IMAGE可选dhr2333/beancount-trans-assets:latestFava 镜像both
TRAEFIK_NETWORK可选shared-network动态模式网络名dev
BASE_URL可选localhost基础域名(回调/路由)dev
CERTRESOLVER可选alicloud-dns证书解析器dev
ASSETS_HOST_PATH可选示例路径宿主机 Assets 绝对路径dev

Git / Gitea / GitHub Token

变量名必填级别默认值(示例)说明模板
GITEA_BASE_URL可选示例地址Gitea 服务地址both
GITEA_ADMIN_TOKEN可选管理员 Tokenboth
GITEA_ORG_NAME可选beancount-transGitea 组织名both
GITEA_WEBHOOK_SECRET可选平台托管仓库 Webhook 验签密钥both
GITEA_SSH_BASE可选ssh://git@gitea.dhr2333.cn:30022SSH 克隆基址(无尾斜杠)dev
GIT_WEBHOOK_STRICT可选FalseWebhook 严格校验开关dev
GIT_REPO_SIZE_LIMIT可选20971520仓库大小限制(字节)both
GITHUB_TOKEN可选GitHub PAT(模板仓库访问)dev

HTTP API

路径说明
/api/docs/ReDoc 交互文档(经前端 Nginx 时与 Web 同源,例如 http://<主机>:38001/api/docs/
/api/schema/OpenAPI 3 Schema(JSON)
/api/_allauth/allauth headless 接口根路径

认证请求头:Authorization: Bearer <access_token>。Access Token 有效期见 .envJWT_ACCESS_TOKEN_HOURS(自托管以主仓模板为准)。

线上示例:Beancount-Trans API(ReDoc)


术语

术语定义
账本以 Beancount 文本(.bean)承载的复式记账数据集合;平台写入用户 Assets 目录下主文件与子文件。
解析将上传的原始账单转为账本可消费的记录的过程。
映射将账单描述等匹配到目标账户的规则。
账户Beancount 账户路径(如 Expenses:Food),表示资金分类。
Fava基于 Beancount 的 Web 报表界面;自托管静态模式下由独立容器挂载用户 Assets 目录提供。

面向最终用户的展开说明见:核心概念