LeafWiki 配置参数详解

LeafWiki v0.14.2 全量配置参数逐项详解:CLI/环境变量/默认值三层优先级模型,Server/认证/功能开关/修订/快照/SMTP/Git备份/反代认证/前端/日志指标 13 组参数表,reset-admin-password 与运行时配置实测,6 种场景参数组合速查。

LeafWikiLeafWiki文档管理WikiDocs2026/11/01

LeafWiki 配置参数详解

基于 v0.14.2 实测(2026-11-01)。全量参数取自二进制 --help 逐行照抄,行为验证见标注;运行时配置经管理 API 实测。部署过程见《LeafWiki 二进制与 Compose 部署实战》。

一、配置模型与优先级

--help 的 DESCRIPTION 原文给出三层规则:

Every option can also be set through the environment variable shown next to it.
Command line flags win over environment variables, which win over the defaults.
An environment variable that is set but empty counts as unset.

即 CLI 参数 > LEAFWIKI_* 环境变量 > 默认值;环境变量被设为空串等同未设置。例外:LEAFWIKI_LOG_LEVEL(debug/info/warn/error,默认 info)仅环境变量可用,无对应 flag。

布尔 flag 接受 =true/=false;时长类用 Go duration 写法(24h、15m、10s)。

二、必填与首启参数

参数环境变量默认说明与实测
--jwt-secretLEAFWIKI_JWT_SECRET无签发认证令牌,除 --disable-auth 外必填。<32 字符启动即 WARN(实测 27 字符触发 JWT secret is too short)
--admin-passwordLEAFWIKI_ADMIN_PASSWORD无初始管理员口令,仅当尚不存在 admin 时生效,最少 8 字符(实测 q1w2e3r4 通过,首启日志 user created ... role=admin)
--admin-usernameLEAFWIKI_ADMIN_USERNAMEadmin初始 admin 用户名,同样仅首启生效(v0.12.0)
--admin-emailLEAFWIKI_ADMIN_EMAILadmin@localhost初始 admin 邮箱(v0.12.0)
--allow-insecureLEAFWIKI_ALLOW_INSECUREfalse明文 HTTP 下允许认证 Cookie(v0.7.0)。实测未开启时登录不可用;开启伴随 WARN 提示 Cookie 明文传输

忘记口令无需改库:停服执行 leafwiki reset-admin-password,实测直接打印新随机口令:

Admin password reset successfully.
New password for user admin: ce%%^JSWbXlI3&T^

三、Server 组(监听与存储)

参数环境变量默认实测/说明
--hostLEAFWIKI_HOST127.0.0.1二进制默认仅本机;官方发布包入口脚本在未设置时自动置 0.0.0.0(部署篇日志实证)
--portLEAFWIKI_PORT8080实测 --port=8099 生效;端口被占时报 bind: address already in use 并退出
--unix-socketLEAFWIKI_UNIX_SOCKET""Unix 域套接字,设置后覆盖 host/port(v0.11.3)
--data-dirLEAFWIKI_DATA_DIR./data数据目录:SQLite 库 + root/ Markdown 树 + snapshots/ + .leafwiki/revisions/(实测布局见部署篇 3.3)
--base-pathLEAFWIKI_BASE_PATH""反代子路径前缀(如 /wiki,v0.8.2)
--public-urlLEAFWIKI_PUBLIC_URL""对外绝对 URL,邮件内链接用;设置 --smtp-host 时必填(v0.13.0)

四、Authentication 组

参数环境变量默认实测/说明
--disable-authLEAFWIKI_DISABLE_AUTHfalse完全免认证(v0.7.0),仅限可信内网
--public-accessLEAFWIKI_PUBLIC_ACCESSfalse匿名只读模式;也可运行时经 PUT /api/admin/settings/public-access 切换(/api/config 实测回显 publicAccess 与 publicAccessEnvManaged,flag 管理时 UI 不接管)
--access-token-timeoutLEAFWIKI_ACCESS_TOKEN_TIMEOUT15m访问令牌时长;实测登录响应 accessTokenExpiresAt 与之一致
--refresh-token-timeoutLEAFWIKI_REFRESH_TOKEN_TIMEOUT168h刷新令牌时长
--editor-limitLEAFWIKI_EDITOR_LIMIT0(不限)admin+editor 总数上限,许可证式管控
--totp-encryption-keyLEAFWIKI_TOTP_ENCRYPTION_KEY未设≥32 字节才启用 TOTP 双因子;未设置时 TOTP 不可用(/api/config 实测 totpAvailable:false)

五、Features 组(功能开关)

参数环境变量默认实测/说明
--enable-revisionLEAFWIKI_ENABLE_REVISIONfalse页面修订历史。实测开启后 GET /api/pages/{id}/revisions 返回修订列表(含 contentHash、authorId、分页游标)
--enable-link-refactorLEAFWIKI_ENABLE_LINK_REFACTORfalse页面改名/移动时链接自动改写对话框与重写流
--enable-api-key-managementLEAFWIKI_ENABLE_API_KEY_MANAGEMENTfalse实验性 API Keys(官方标注未就绪,README 明示暂勿使用)

六、Revisions 组(修订细节,随 enable-revision)

参数默认说明
--max-revision-history100每页保留修订数,0 为不限
--revision-coalesce-window5m同作者快速连续保存合并为一条修订,0 关闭

七、Snapshots & Restore 组

参数环境变量默认实测/说明
--snapshotLEAFWIKI_SNAPSHOTtrue自动全量快照(ZIP 含 SQLite 库)。实测首启即产 snapshot-<UTC时间>.zip + .json 清单
--snapshot-dirLEAFWIKI_SNAPSHOT_DIR<data-dir>/snapshots快照目录
--snapshot-intervalLEAFWIKI_SNAPSHOT_INTERVAL24h周期,0 仅手动
--snapshot-retentionLEAFWIKI_SNAPSHOT_RETENTION10保留份数,≤0 全留
--restore-upload-max-sizeLEAFWIKI_RESTORE_UPLOAD_MAX_SIZE500MiB在线恢复上传 ZIP 上限

恢复语义:在线恢复(Settings → Full Backup,换文件期间写入 503);离线恢复用停服命令 leafwiki --data-dir <dir> restore-snapshot <zip>(实测成功,见部署篇第八章)。

八、Email (SMTP) 组(v0.13.0)

--smtp-host 未设置时邮件功能整体关闭(找回密码/邀请不可用)。其余:--smtp-port(默认 587)、--smtp-security(none/starttls/tls,默认 starttls)、--smtp-username/--smtp-password(口令优先环境变量)、--smtp-from(设置 host 后必填)、--smtp-from-name(默认 "LeafWiki")、--smtp-timeout(默认 10s)、--smtp-insecure-skip-verify(跳过 TLS 校验,勿用于生产)。--public-url 在此组下为必填项。

九、Git backup 组(实验性,v0.11.3)

--git-backup 开启后按 --git-backup-interval(默认 60m,0 仅手动)把 root/ 与 assets/ 推送远端。远端 --git-backup-remote 支持 SSH/HTTPS:SSH 用 --git-backup-ssh-key(原文)或 --git-backup-ssh-key-path + --git-backup-ssh-known-hosts(防中间人);HTTPS 用 --git-backup-http-username/--git-backup-http-password。提交署名 --git-backup-author-name/email(默认 "LeafWiki Backup"/backup@leafwiki.local),分支 --git-backup-branch(默认 main),--git-backup-path 指定仓库内存放子目录。/api/config 实测回显 gitBackupEnabled/gitBackupConfigured/gitBackupEnvManaged 三态。

十、Reverse-proxy authentication 组(v0.10+)

参数默认说明
--enable-http-remote-userfalse信任反代注入的用户头
--http-remote-user-header-nameRemote-User携带用户名/邮箱的头名
--trusted-proxy-ips无必配可信代理 IP/CIDR 列表,否则头可被伪造
--enable-http-remote-user-auto-createfalse未知用户自动开户
--http-remote-user-default-roleviewer自动开户默认角色,不得为 admin
--http-remote-user-email-header-name无自动开户取邮箱的头
--http-remote-user-logout-url—已废弃,改用 --logout-url

配套 External URLs 组:--login-url/--logout-url 前端跳转外部 IdP;--user-management-url 用外链替换内置用户管理界面。

十一、Frontend 组

参数默认说明
--custom-stylesheet""数据目录内的 .css 文件,以 /custom.css 挂载(v0.8.5+)
--inject-code-in-header""注入 <head> 的原始 HTML/JS(统计代码等),不做净化,仅限可信内容
--default-language""默认界面语言(内置 en/de/es)
--max-asset-upload-size50MiB附件上限;头像上限 5MiB(/api/config 实测 maxAvatarUploadSizeBytes:5242880)
--hide-link-metadata-sectionfalse隐藏界面链接元数据区

十二、Logging 与 Metrics 组

  • --log-format:text(默认)/json;--disable-request-log 抑制逐请求访问日志;LEAFWIKI_LOG_LEVEL 控制级别。实测日志行含 time/level/source/component/msg 结构化字段;
  • --enable-metrics:在独立监听暴露 Prometheus /metrics,--metrics-host(默认 127.0.0.1)与 --metrics-port(默认 9091)单独配置,不与主端口混用。

十三、运行时配置(非启动参数)

以下经管理界面/API 在运行时调整,持久化于数据库而非环境变量:品牌化(/api/branding logo/favicon/站名)、公开读与 TOC 显示(/api/admin/settings/public-access、/api/admin/settings/toc-display)、Git 备份运行配置(/api/admin/backup/config,实测 gitBackupEnvManaged 标记 flag 接管态)。

GET /api/config 实测全量回显(部署态快照,节选):

{"alwaysShowToc":false,"authDisabled":false,"avatarAllowedExts":[".gif",".jpeg",".jpg",".png",".webp"],"basePath":"","editorLimit":0,"enableApiKeyManagement":false,"enableLinkRefactor":false,"enableRevision":true,"gitBackupEnabled":false,"httpRemoteUserEnabled":false,"maxAssetUploadSizeBytes":52428800,"maxAvatarUploadSizeBytes":5242880,"publicAccess":false,"smtpEnabled":false,"snapshotEnabled":true,"totpAvailable":false}

十四、常用参数组合速查

场景组合
内网团队 Wiki(默认)--jwt-secret=<≥32字符> --admin-password=<≥8字符>
公网文档站(匿名可读)上者 + --public-access + 反代 HTTPS(不加 --allow-insecure,透传 X-Forwarded-Proto)
本机实验场--disable-auth --host=127.0.0.1(免密钥,勿暴露)
SSO 前置--enable-http-remote-user --trusted-proxy-ips=<反代IP> --enable-http-remote-user-auto-create
带邮件找回加 --smtp-host --smtp-from --public-url
快照+修订加固--enable-revision --snapshot-interval=6h --snapshot-retention=20

小结:LeafWiki 配置面全部收敛在「flag/同名 LEAFWIKI_* 环境变量 + 三层优先级」一个模型内,无配置文件;启动必填项只有 jwt-secret 与 admin-password 两个,其余默认值即可跑通全部核心功能,进阶能力(修订、Git 备份、SMTP、TOTP、反代认证、指标)全部 opt-in。

LeafWiki 配置参数详解 - Quzuo