.env.example 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106
  1. # 数据库连接:达梦 DM(当前启用;主机不变,端口 5236,用户/库名 DMS)
  2. DMS_DATABASE_URL=dm+dmPython://DMS:change-me@127.0.0.1:5236
  3. # 原 MySQL 8连接(保留备查,回切时取消注释并注释上方 DM 链接):
  4. # DMS_DATABASE_URL=mysql+pymysql://dms_app:change-me@127.0.0.1:3306/dms?charset=utf8mb4
  5. # 存储根目录:留空(推荐)由启动器自动选择默认位置。
  6. # - 开发模式:backend/dms-storage/
  7. # - 打包模式:dms-server.exe 同级 dms-storage/
  8. # 如需自定义,请填写绝对路径,并取消下面一行注释。
  9. # DMS_STORAGE_ROOT=
  10. # 留空时使用内置中文UI字典;部署时可指向外部UTF-8 JSON,修改后需重启
  11. DMS_UI_DICTIONARY_CONFIG_PATH=
  12. # 单文件、请求总大小与批量文件数
  13. DMS_MAX_FILE_SIZE=52428800
  14. DMS_MAX_UPLOAD_SIZE=104857600
  15. DMS_BATCH_MAX_FILES=50
  16. # LibreOffice 离线转换配置(DOC/DOCX 转 PDF 预览)
  17. DMS_OFFICE_PREVIEW_ENABLED=true
  18. DMS_LIBREOFFICE_EXECUTABLE=C:\\Program Files\\LibreOffice\\program\\soffice.exe
  19. DMS_LIBREOFFICE_TIMEOUT_SECONDS=60
  20. DMS_LIBREOFFICE_MAX_CONCURRENCY=2
  21. # B2配置真实随机密钥;禁止提交真实密钥
  22. DMS_JWT_SECRET=replace-with-a-random-secret
  23. # 访问令牌有效期(秒),缺省 3600(1 小时);保持登录(7 天)不受此项影响
  24. DMS_JWT_EXPIRES_SECONDS=3600
  25. # 页面空闲自动登出(分钟),缺省 5:用户在页面上无鼠标/滚动/键盘等操作持续
  26. # 达到该时长后前端自动退出登录;设为 0 表示关闭该功能
  27. DMS_IDLE_LOGOUT_MINUTES=5
  28. # 登录图片验证码(缺省 true 开启):开启时登录页显示图片验证码输入,登录请求
  29. # 需携带 captchaId/captchaCode;设为 false 关闭后登录回归用户名/密码三键请求
  30. DMS_CAPTCHA_ENABLED=true
  31. # 超级管理员登录开关(缺省 true 允许):设为 false 后内置 admin 禁止登录(报错
  32. # 与用户名或密码错误完全一致)、用户列表隐藏 admin、创建同名用户报"不能创建该
  33. # 名称的用户",外部无法感知系统中存在该账号
  34. DMS_ALLOW_ADMIN_LOGIN=true
  35. # 系统管理页监控信息展示(缺省 false):false 时系统管理页仅显示维护操作与备份管理,
  36. # 隐藏系统信息/资源监控/存储用量/运行参数等区块;true 时完整显示
  37. DMS_SYSTEM_MONITOR_ENABLED=false
  38. # rsync 可执行文件路径(可选,RSYNC 备份模式用):留空自动探测——先 PATH 上的
  39. # rsync,再发行目录 tools/rsync/ 内置版(Windows 发行包已随包携带 cwRsync)
  40. # DMS_RSYNC_EXECUTABLE=
  41. # 应用层信封加密 KEK(契约1.21):base64 编码的 32 字节密钥。
  42. # 配置后 original/ 新落盘文件以 AES-256-GCM(KEK/DEK)加密存储,读路径自动解密;
  43. # 留空=明文落盘(存量文件始终可读,不回迁加密)。
  44. # 生成示例:python -c "import secrets,base64;print(base64.b64encode(secrets.token_bytes(32)).decode())"
  45. # 注意:密钥丢失将导致已加密文件无法读取,请妥善备份;变更密钥前需先用旧密钥回迁解密。
  46. DMS_STORAGE_KEK=
  47. # CORS 跨域白名单(逗号分隔 Origin);默认留空=仅同源访问(推荐,前端由本服务托管)。
  48. # 仅开发分域联调时配置,例如 DMS_CORS_ORIGINS=http://localhost:5173
  49. DMS_CORS_ORIGINS=
  50. # 仅供显式执行 python -m dms.seed_dev;密码值不得提交
  51. DMS_SEED_ADMIN_PASSWORD=
  52. DMS_SEED_USER_PASSWORD=
  53. # true会覆盖admin和user两名同名用户的密码并使其旧Token失效,默认必须保持false
  54. DMS_SEED_OVERWRITE_PASSWORDS=false
  55. # 既有AI配置仍独立使用 INFO_EXTRACTOR_* 环境变量
  56. # ─────────────────────────────────────────────────────────────
  57. # 门户跳转按需登录(对接其他系统门户;留空/不配置=功能整体关闭,
  58. # 用户名密码登录不受影响)。详见 docs/门户对接指南.md
  59. # ─────────────────────────────────────────────────────────────
  60. # provider类型:留空=关闭 / mock=本地联调 / http=标准REST配置驱动 / custom=手写适配
  61. DMS_PORTAL_PROVIDER=
  62. # 跳转URL中携带token的参数名(默认token)
  63. DMS_PORTAL_TOKEN_PARAM=token
  64. # ---- 以下仅 provider=http 时需要 ----
  65. # 对端验签接口地址(token怎么传由下面三项决定)
  66. DMS_PORTAL_VERIFY_URL=
  67. # GET 或 POST
  68. DMS_PORTAL_VERIFY_METHOD=POST
  69. # token放置位置:header / body / query
  70. DMS_PORTAL_VERIFY_TOKEN_IN=header
  71. # header方式时的头名与值模板({token}为占位符)
  72. DMS_PORTAL_VERIFY_HEADER=Authorization
  73. DMS_PORTAL_VERIFY_HEADER_TEMPLATE=Bearer {token}
  74. # 验签成功判定:响应JSON中该字段的值等于该值才算通过(支持a.b点路径)
  75. DMS_PORTAL_VERIFY_SUCCESS_FIELD=code
  76. DMS_PORTAL_VERIFY_SUCCESS_VALUE=0
  77. # 验签响应中用户信息对象所在字段路径(如 data)
  78. DMS_PORTAL_VERIFY_USER_FIELD=data
  79. # 验签响应不含完整用户信息时,额外的用户信息接口(留空=验签已含)
  80. DMS_PORTAL_USERINFO_URL=
  81. DMS_PORTAL_USERINFO_UID_PARAM=userId
  82. # 用户信息字段映射 local:remote(local固定为externalId/username/realName/orgName)
  83. DMS_PORTAL_FIELD_MAP=externalId:userId,username:loginName,realName:realName,orgName:orgName
  84. # ---- 新用户落库 ----
  85. # 组织名称匹配不到时的默认组织ID(留空=不挂组织)
  86. DMS_PORTAL_DEFAULT_ORG_ID=
  87. # 对端HTTP请求超时秒数
  88. DMS_PORTAL_HTTP_TIMEOUT_SECONDS=10