Stump 0.1.12 配置参数详解
以实测生成的 30 键 Stump.toml 为底本,逐类讲清 Stump 0.1.12 参数体系、TOML/环境变量双通道与覆盖回写行为,含生产配置模板与文档-实测差异 FAQ。
Stump 0.1.12 配置参数详解
目标:以实测生成的
/config/Stump.toml(30 键全量)为底本,逐类讲清 Stump 0.1.12 的参数体系、默认值、TOML/环境变量双通道与优先级行为,并给出可落地的生产配置模板。参数语义对照官方 Server Config 文档(查询日期 2026-11-01),全部修改与验证命令为 2026-11-02 在 《Stump 0.1.12 Docker Compose 部署指南》 部署的stump-0.1.12-stack栈上实测照抄。组件选型见 《Stump 0.1.12 介绍与选型指南》。
一、环境信息
| 项目 | 值 |
|---|---|
| 应用版本 | Stump 0.1.12(POST /api/v2/version 实测 semver: 0.1.12,rev 0769a29) |
| 配置文件 | /srv/stump/config/Stump.toml(容器内 /config/Stump.toml,首启自动生成) |
| 配置机制 | Stump.toml 单文件 + STUMP_* 环境变量双通道,环境变量覆盖同名 TOML 键 |
| 实测基线 | 首启生成 30 键全量 TOML(见 4.2 原文) |
| 生效方式 | 配置文件在进程启动时读取,修改后需重启服务 |
| 演示凭据 | admin / q1w2e3r4 |
二、前置条件
- 已按 《Stump 0.1.12 Docker Compose 部署指南》 部署
stump-0.1.12-stack且docker compose ps为 Up; - 服务器可读写配置卷目录
/srv/stump/config; - 改参数前先备份:
cp /srv/stump/config/Stump.toml /srv/stump/config/Stump.toml.bak。
三、参数查看与修改方式
3.1 查看当前生效配置
配置目录里的 Stump.toml 即当前生效全量配置(首启自动生成所有键):
$ cat /srv/stump/config/Stump.toml
ip = "0.0.0.0"
port = 10801
verbosity = 1
pretty_logs = true
colorful_logs = false
db_timeout_secs = 30
client_dir = "/app/client"
config_dir = "/config"
allowed_origins = []
enable_playground = false
enable_koreader_sync = false
enable_kobo_sync = false
enable_opds_progression = false
password_hash_cost = 12
session_ttl = 259200
access_token_ttl = 86400
refresh_token_ttl = 2592000
expired_session_cleanup_interval = 86400
parallelism_multiplier = 2
max_image_upload_size = 20971520
enable_upload = true
max_file_upload_size = 20971520
pdf_render_dpi = 150
pdf_max_dimension = 1200
pdf_render_format = "webp"
pdf_cache_pages = true
pdf_prerender_range = 5
pdf_high_quality = true
trust_proxy_headers = false
(输出节选,实测全量 30 键照抄;其中 client_dir/config_dir 的取值由部署环境决定,裸机部署时分别为 ./dist 与 ~/.stump。)
3.2 编辑 TOML 后重启生效
参数在进程启动瞬间读取,改文件后必须重启:
$ sed -i 's/^verbosity = 2/verbosity = 1/' /srv/stump/config/Stump.toml
$ grep -n verbosity /srv/stump/config/Stump.toml
3:verbosity = 1
$ cd /srv/stump && docker compose restart
Container stump-0.1.12-server Restarting
Container stump-0.1.12-server Started
$ docker compose logs --since 20s | grep "Tracing initialized"
stump-0.1.12-server | 2026-11-02T06:46:23.411670Z INFO stump_core::config::logging: Tracing initialized, verbosity: LevelFilter::INFO, verbosity_num: 1
日志级别从 DEBUG 回到 INFO,修改生效(该组回显为实测的「改回默认」过程,正向修改同理)。
3.3 环境变量覆盖(Docker 推荐通道)
compose 的 environment: 注入 STUMP_<大写键名> 即覆盖同名 TOML 键。实测加入 STUMP_VERBOSITY=2 重建:
$ cd /srv/stump && docker compose up -d
Container stump-0.1.12-server Recreate
Container stump-0.1.12-server Recreated
Container stump-0.1.12-server Starting
Container stump-0.1.12-server Started
$ docker compose logs --since 30s | grep "Tracing initialized"
stump-0.1.12-server | 2026-11-02T06:45:06.464403Z INFO stump_core::config::logging: Tracing initialized, verbosity: LevelFilter::DEBUG, verbosity_num: 2
3.4 优先级与回写行为(实测结论)
环境变量覆盖只发生在启动装配时,且会把生效值持久化写回 Stump.toml。实测链:
- 加
STUMP_VERBOSITY=2重建 → 日志LevelFilter::DEBUG, verbosity_num: 2,且Stump.toml第 3 行变为verbosity = 2; - 移除该环境变量再
down/up→ 日志仍是LevelFilter::DEBUG, verbosity_num: 2(TOML 里的持久化值继续生效); - 手工把
Stump.toml改回verbosity = 1并restart→ 日志恢复LevelFilter::INFO, verbosity_num: 1。
⚠️ 注意:「删掉 compose 里的环境变量」不等于「回退到默认值」。回退的正确姿势是直接编辑
Stump.toml(3.2),或整段删除该键后重启。
四、参数总览
4.1 分类与键数
官方 Server Config 将参数按九域组织(来源:官方文档,查询日期 2026-11-01;「实测 TOML」列指 3.1 全量文件是否出现该键):
| 域 | TOML 键 | 实测 TOML | 说明 |
|---|---|---|---|
| Core | ip port config_dir client_dir allowed_origins trust_proxy_headers | 6/6 | 监听与部署形态 |
| Database | db_path db_timeout_secs;db_url 等 PG 键仅环境变量 | 1/8 | SQLite 默认,PG 走环境变量 |
| Logging | verbosity pretty_logs(colorful_logs 实测存在) | 3/2 | 日志级别与格式 |
| Auth & Sessions | password_hash_cost session_ttl expired_session_cleanup_interval;access_token_ttl refresh_token_ttl | 5/3 | 会话与 JWT 时效 |
| OIDC | [oidc] 表 8 键 | 0/8(未启用) | 外部身份源 |
| Integrations | enable_kobo_sync enable_koreader_sync enable_opds_progression | 3/3 | 同步类,默认全关 |
| PDF Rendering | pdfium_path pdf_render_dpi pdf_max_dimension pdf_render_format pdf_cache_pages pdf_prerender_range pdf_high_quality | 6/7 | pdfium_path 镜像内置未列出 |
| File Uploads | enable_upload max_file_upload_size max_image_upload_size | 3/3 | 上传 |
| Performance / Developer | parallelism_multiplier enable_playground | 2/2 | 并发与调试 |
4.2 命名映射规则
- 环境变量 =
STUMP_+ TOML 键大写:verbosity↔STUMP_VERBOSITY,trust_proxy_headers↔STUMP_TRUST_PROXY_HEADERS; - OIDC 例外:TOML 嵌套在
[oidc]表([oidc].enabled),环境变量仍是平铺的STUMP_OIDC_ENABLED; - 官方明确「未配置的键使用默认值,只需覆盖你想改的」,
Stump.toml不必写全 30 键。
五、核心参数分类详解
5.1 Core:监听与部署形态
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
ip / STUMP_IP | String | 0.0.0.0 | 0.0.0.0 | 监听地址,容器内保持 0.0.0.0 |
port / STUMP_PORT | Integer | 10801 | 10801 | 服务端口,与 compose 映射右侧一致 |
config_dir / STUMP_CONFIG_DIR | String | ~/.stump | /config | 配置目录;Docker 必须指向挂载点,否则数据不落卷 |
client_dir / STUMP_CLIENT_DIR | String | ./dist | /app/client | Web UI 静态资源目录 |
allowed_origins / STUMP_ALLOWED_ORIGINS | String(TOML 数组) | Tauri 域 + 本机 IP | [] | 跨域白名单;从其他域名调 API 时必须追加,TOML 中写成合法数组 |
trust_proxy_headers / STUMP_TRUST_PROXY_HEADERS | Boolean | false | false | 仅当 Stump 位于正确配置的反代之后才置 true,否则有 IP 伪造风险;不开启时忽略 X-Forwarded-For,反代后部分生成 URL 可能不正确 |
5.2 Database:存储引擎与连接
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
db_path / STUMP_DB_PATH | String | config_dir 父目录 | 未列出(用默认) | 指定后库文件落在 <db_path>/stump.db |
db_timeout_secs / STUMP_DB_TIMEOUT_SECS | Integer | — | 30 | SQLite 取连接与 busy 等待超时;PG 为取连接超时 |
STUMP_DB_URL / STUMP_DB_HOST / STUMP_DB_PORT / STUMP_DB_USER / STUMP_DB_PASSWORD / STUMP_DB_NAME | String/Integer | — | 未用 | PostgreSQL 连接组,仅环境变量、不可经 TOML 配置;设了 STUMP_DB_URL 则其余可省 |
💡 技术拓展:Stump 支持的两种元数据库——
引擎 配置方式 适用 SQLite(默认) db_path指目录即可单实例/家庭 NAS,零运维,1GB 内存场景首选 PostgreSQL STUMP_DB_URL或 HOST/PORT/USER/PASSWORD/NAME 组已有 PG 基础设施、多实例共享元数据 本文实测环境用默认 SQLite(
/config/stump.db);官方文档明确 SQLite 场景优先用db_path而非 URL。
5.3 Logging:日志
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
verbosity / STUMP_VERBOSITY | Integer | 1 | 1 | 0=NONE,1=INFO/WARN/ERROR,2=+DEBUG,3=+TRACE;官方建议保持 1 |
pretty_logs / STUMP_PRETTY_LOGS | Boolean | true | true | 人类友好排版 |
colorful_logs | Boolean | — | false | 彩色输出(实测 TOML 存在,官方页未单列) |
级别切换实测见 3.3/3.4:Tracing initialized, verbosity: LevelFilter::DEBUG, verbosity_num: 2。
5.4 Authentication & Sessions:认证与会话时效
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
password_hash_cost / STUMP_PASSWORD_HASH_COST | Integer | 12 | 12 | Argon2 计算成本;调低换弱机登录速度、调高换暴破难度,改后只影响新哈希 |
session_ttl / STUMP_SESSION_TTL | Integer | 259200(3 天) | 259200 | 会话 Cookie 秒级时效;实测登录响应头 Max-Age=259200 与之吻合 |
expired_session_cleanup_interval / STUMP_EXPIRED_SESSION_CLEANUP_INTERVAL | Integer | 官方文档 60 | 86400 | 过期会话清理检查间隔(秒);实测与文档不一致,见 FAQ 7.1 |
access_token_ttl | Integer | — | 86400 | JWT access token 时效(秒),官方 API 页描述为短时效 |
refresh_token_ttl | Integer | — | 2592000 | JWT refresh token 时效(30 天),不可直接认证请求 |
5.5 OIDC:外部身份源([oidc] 表)
启用后用户可用外部身份提供方登录;TOML 内全部键嵌套在 [oidc] 表:
port = 10801
[oidc]
enabled = true
issuer_url = "https://auth.example.com"
client_id = "stump"
client_secret = "example-secret"
键([oidc].*) | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
enabled | STUMP_OIDC_ENABLED | false | 总开关 |
issuer_url | STUMP_OIDC_ISSUER_URL | 必填 | 提供方基址(.well-known/openid-configuration 所在) |
client_id / client_secret | STUMP_OIDC_CLIENT_ID/SECRET | 必填 | 应用凭据 |
scopes | STUMP_OIDC_SCOPES | openid,email,profile | 逗号分隔追加 scope |
allow_registration | STUMP_OIDC_ALLOW_REGISTRATION | true | 首登自动建号 |
disable_local_auth | STUMP_OIDC_DISABLE_LOCAL_AUTH | false | 隐藏口令登录表单;注意 OPDS 仍需口令认证 |
extra_audiences | STUMP_OIDC_EXTRA_AUDIENCES | — | Zitadel 等向 aud 注入额外值时必填 |
5.6 Integrations:同步类开关
| 键 / 环境变量 | 默认值 | 实测值 | 说明 |
|---|---|---|---|
enable_kobo_sync / STUMP_ENABLE_KOBO_SYNC | false | false | Kobo 设备同步通道 |
enable_koreader_sync / STUMP_ENABLE_KOREADER_SYNC | false | false | KoReader 同步(走 /koreader/{api_key}/* URL 内嵌密钥路由) |
enable_opds_progression / STUMP_ENABLE_OPDS_PROGRESSION | false | false | OPDS 翻页是否计入阅读进度;客户端批量预取时保持关闭可防进度失真 |
5.7 PDF Rendering:渲染管线
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
pdfium_path / STUMP_PDFIUM_PATH | String | /lib/libpdfium.so(镜像内) | 未列出 | 仅非 Docker 部署需要自备 PDFium 二进制后指路径 |
pdf_render_dpi / STUMP_PDF_RENDER_DPI | Integer | 150 | 150 | 越高越清晰,内存与耗时越大 |
pdf_max_dimension / STUMP_PDF_MAX_DIMENSION | Integer | 1200 | 1200 | 渲染图最长边(像素) |
pdf_render_format / STUMP_PDF_RENDER_FORMAT | String | webp | "webp" | 渲染输出图格式 |
pdf_cache_pages / STUMP_PDF_CACHE_PAGES | Boolean | true | true | 已渲染页缓存 |
pdf_prerender_range / STUMP_PDF_PRERENDER_RANGE | Integer | 5 | 5 | 当前页前后预渲染页数 |
pdf_high_quality / STUMP_PDF_HIGH_QUALITY | Boolean | true | true | 高质量换资源占用 |
💡 技术拓展:PDF 渲染输出格式常见三选项——webp(默认,压缩率/质量均衡)、jpeg(兼容最广、无透明通道)、png(无损、体积大)。Stump 默认选 webp 兼顾带宽与清晰度;低端设备可降
pdf_render_dpi而非改格式。
5.8 File Uploads:上传
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
enable_upload / STUMP_ENABLE_UPLOAD | Boolean | false | true(compose 显式开启) | 网页上传总开关 |
max_file_upload_size / STUMP_MAX_FILE_UPLOAD_SIZE | Integer | 20971520(20MB) | 20971520 | 上传书籍字节上限,仅 enable_upload=true 时生效 |
max_image_upload_size / STUMP_MAX_IMAGE_UPLOAD_SIZE | Integer | 20971520(20MB) | 20971520 | 用户/书库/媒体缩略图字节上限 |
实测开启后 uploadBooks 变更上传 CBZ 成功入库(状态 READY),见 《Stump 0.1.12 Docker Compose 部署指南》 4.8 的媒体读回。
5.9 Performance / Developer:并发与调试
| 键 / 环境变量 | 类型 | 默认值 | 实测值 | 说明 |
|---|---|---|---|---|
parallelism_multiplier / STUMP_PARALLELISM_MULTIPLIER | Integer | 2 | 2 | 扫描/缩略图并发 = 逻辑 CPU × 该系数(6 核 ×2 = 12);弱机调低、批量导入调高 |
enable_playground / STUMP_ENABLE_PLAYGROUND | Boolean | false | false | GraphQL Playground(/api/graphql 浏览器交互 IDE);调试可开,公网建议关 |
六、生产配置模板
以「家庭 NAS(2 核 2GB、单实例 SQLite、反代 HTTPS 接入、允许网页上传)」为场景的 /config/Stump.toml 模板:
# 监听:容器内保持默认
ip = "0.0.0.0"
port = 10801
# 日志:生产保持 1,排障时临时改 2 重启
verbosity = 1
pretty_logs = true
# 数据库:SQLite 留在配置目录卷内(默认即可),无需 db_path
db_timeout_secs = 30
# 会话:NAS 个人使用可维持 3 天
session_ttl = 259200
password_hash_cost = 12
# 反代场景:信任 X-Forwarded-For;跨域来源按需追加
trust_proxy_headers = true
allowed_origins = ["https://books.example.com"]
# 上传:2GB 大书放宽到 200MB
enable_upload = true
max_file_upload_size = 209715200
max_image_upload_size = 20971520
# 弱机降并发
parallelism_multiplier = 1
# PDF 渲染:内存紧张时降 DPI 与预渲染
pdf_render_dpi = 120
pdf_prerender_range = 2
# 调试面关闭
enable_playground = false
(模板为参数组合示例;键名/默认值均取自 3.1 实测 TOML 与官方 Server Config 文档,2026-11-02。)
七、常见问题
7.1 expired_session_cleanup_interval 文档默认 60,实测 86400
官方 Server Config 页写默认「60 秒清理一次过期会话」,但 0.1.12 实测生成的 Stump.toml 中该键为 86400(一天)。对使用无实质影响(只决定过期会话从库里清除的节奏,过期会话本身已不可用);在意残留会话记录及时清理的,显式设 expired_session_cleanup_interval = 60 即可,以显式配置为准。
7.2 环境变量删了,参数却没回退
见 3.4 实测链:STUMP_* 覆盖会写回 Stump.toml,删除环境变量后 TOML 持久化值继续生效。回退请直接编辑 TOML(3.2)或删键后重启。
7.3 OIDC 配置不生效
检查 TOML 里是否把 OIDC 键写在了顶层——它们必须位于 [oidc] 表内(enabled、issuer_url 等),STUMP_OIDC_* 环境变量则不受表结构限制。enabled=true 时 issuer_url/client_id/client_secret 为必填,缺一即不生效。
7.4 裸机部署 PDF 无法渲染
pdfium_path 默认值 /lib/libpdfium.so 只在官方 Docker 镜像内存在;裸机需按官方文档自行下载对应平台 PDFium 二进制并显式配置该键指向实际路径。
7.5 反代后部分生成 URL 不对
trust_proxy_headers 默认 false 时 Stump 完全忽略 X-Forwarded-For/X-Real-IP,仅用原始连接信息,反代后生成的 URL 可能错误。确认反代正确设置这些头后置 true(同时知晓 IP 伪造风险增大,官方文档原话)。
八、参考链接
- 官方 Server Config:https://stumpapp.github.io/configuration/server-config
- 官方 Database:https://stumpapp.github.io/configuration/database
- 官方 API(认证与 JWT):https://stumpapp.github.io/developer/api
- 站内:《Stump 0.1.12 介绍与选型指南》、《Stump 0.1.12 Docker Compose 部署指南》、同类配置参考 《Kavita 0.9.1.4 配置参数详解》