Stump 0.1.12 配置参数详解

以实测生成的 30 键 Stump.toml 为底本,逐类讲清 Stump 0.1.12 参数体系、TOML/环境变量双通道与覆盖回写行为,含生产配置模板与文档-实测差异 FAQ。

StumpStump电子书自托管2026/11/02

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

二、前置条件

  1. 已按 《Stump 0.1.12 Docker Compose 部署指南》 部署 stump-0.1.12-stack 且 docker compose ps 为 Up;
  2. 服务器可读写配置卷目录 /srv/stump/config;
  3. 改参数前先备份: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。实测链:

  1. 加 STUMP_VERBOSITY=2 重建 → 日志 LevelFilter::DEBUG, verbosity_num: 2,且 Stump.toml 第 3 行变为 verbosity = 2;
  2. 移除该环境变量再 down/up → 日志仍是 LevelFilter::DEBUG, verbosity_num: 2(TOML 里的持久化值继续生效);
  3. 手工把 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说明
Coreip port config_dir client_dir allowed_origins trust_proxy_headers6/6监听与部署形态
Databasedb_path db_timeout_secs;db_url 等 PG 键仅环境变量1/8SQLite 默认,PG 走环境变量
Loggingverbosity pretty_logs(colorful_logs 实测存在)3/2日志级别与格式
Auth & Sessionspassword_hash_cost session_ttl expired_session_cleanup_interval;access_token_ttl refresh_token_ttl5/3会话与 JWT 时效
OIDC[oidc] 表 8 键0/8(未启用)外部身份源
Integrationsenable_kobo_sync enable_koreader_sync enable_opds_progression3/3同步类,默认全关
PDF Renderingpdfium_path pdf_render_dpi pdf_max_dimension pdf_render_format pdf_cache_pages pdf_prerender_range pdf_high_quality6/7pdfium_path 镜像内置未列出
File Uploadsenable_upload max_file_upload_size max_image_upload_size3/3上传
Performance / Developerparallelism_multiplier enable_playground2/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_IPString0.0.0.00.0.0.0监听地址,容器内保持 0.0.0.0
port / STUMP_PORTInteger1080110801服务端口,与 compose 映射右侧一致
config_dir / STUMP_CONFIG_DIRString~/.stump/config配置目录;Docker 必须指向挂载点,否则数据不落卷
client_dir / STUMP_CLIENT_DIRString./dist/app/clientWeb UI 静态资源目录
allowed_origins / STUMP_ALLOWED_ORIGINSString(TOML 数组)Tauri 域 + 本机 IP[]跨域白名单;从其他域名调 API 时必须追加,TOML 中写成合法数组
trust_proxy_headers / STUMP_TRUST_PROXY_HEADERSBooleanfalsefalse仅当 Stump 位于正确配置的反代之后才置 true,否则有 IP 伪造风险;不开启时忽略 X-Forwarded-For,反代后部分生成 URL 可能不正确

5.2 Database:存储引擎与连接

键 / 环境变量类型默认值实测值说明
db_path / STUMP_DB_PATHStringconfig_dir 父目录未列出(用默认)指定后库文件落在 <db_path>/stump.db
db_timeout_secs / STUMP_DB_TIMEOUT_SECSInteger—30SQLite 取连接与 busy 等待超时;PG 为取连接超时
STUMP_DB_URL / STUMP_DB_HOST / STUMP_DB_PORT / STUMP_DB_USER / STUMP_DB_PASSWORD / STUMP_DB_NAMEString/Integer—未用PostgreSQL 连接组,仅环境变量、不可经 TOML 配置;设了 STUMP_DB_URL 则其余可省

💡 技术拓展:Stump 支持的两种元数据库——

引擎配置方式适用
SQLite(默认)db_path 指目录即可单实例/家庭 NAS,零运维,1GB 内存场景首选
PostgreSQLSTUMP_DB_URL 或 HOST/PORT/USER/PASSWORD/NAME 组已有 PG 基础设施、多实例共享元数据

本文实测环境用默认 SQLite(/config/stump.db);官方文档明确 SQLite 场景优先用 db_path 而非 URL。

5.3 Logging:日志

键 / 环境变量类型默认值实测值说明
verbosity / STUMP_VERBOSITYInteger110=NONE,1=INFO/WARN/ERROR,2=+DEBUG,3=+TRACE;官方建议保持 1
pretty_logs / STUMP_PRETTY_LOGSBooleantruetrue人类友好排版
colorful_logsBoolean—false彩色输出(实测 TOML 存在,官方页未单列)

级别切换实测见 3.3/3.4:Tracing initialized, verbosity: LevelFilter::DEBUG, verbosity_num: 2。

5.4 Authentication & Sessions:认证与会话时效

键 / 环境变量类型默认值实测值说明
password_hash_cost / STUMP_PASSWORD_HASH_COSTInteger1212Argon2 计算成本;调低换弱机登录速度、调高换暴破难度,改后只影响新哈希
session_ttl / STUMP_SESSION_TTLInteger259200(3 天)259200会话 Cookie 秒级时效;实测登录响应头 Max-Age=259200 与之吻合
expired_session_cleanup_interval / STUMP_EXPIRED_SESSION_CLEANUP_INTERVALInteger官方文档 6086400过期会话清理检查间隔(秒);实测与文档不一致,见 FAQ 7.1
access_token_ttlInteger—86400JWT access token 时效(秒),官方 API 页描述为短时效
refresh_token_ttlInteger—2592000JWT 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].*)环境变量默认值说明
enabledSTUMP_OIDC_ENABLEDfalse总开关
issuer_urlSTUMP_OIDC_ISSUER_URL必填提供方基址(.well-known/openid-configuration 所在)
client_id / client_secretSTUMP_OIDC_CLIENT_ID/SECRET必填应用凭据
scopesSTUMP_OIDC_SCOPESopenid,email,profile逗号分隔追加 scope
allow_registrationSTUMP_OIDC_ALLOW_REGISTRATIONtrue首登自动建号
disable_local_authSTUMP_OIDC_DISABLE_LOCAL_AUTHfalse隐藏口令登录表单;注意 OPDS 仍需口令认证
extra_audiencesSTUMP_OIDC_EXTRA_AUDIENCES—Zitadel 等向 aud 注入额外值时必填

5.6 Integrations:同步类开关

键 / 环境变量默认值实测值说明
enable_kobo_sync / STUMP_ENABLE_KOBO_SYNCfalsefalseKobo 设备同步通道
enable_koreader_sync / STUMP_ENABLE_KOREADER_SYNCfalsefalseKoReader 同步(走 /koreader/{api_key}/* URL 内嵌密钥路由)
enable_opds_progression / STUMP_ENABLE_OPDS_PROGRESSIONfalsefalseOPDS 翻页是否计入阅读进度;客户端批量预取时保持关闭可防进度失真

5.7 PDF Rendering:渲染管线

键 / 环境变量类型默认值实测值说明
pdfium_path / STUMP_PDFIUM_PATHString/lib/libpdfium.so(镜像内)未列出仅非 Docker 部署需要自备 PDFium 二进制后指路径
pdf_render_dpi / STUMP_PDF_RENDER_DPIInteger150150越高越清晰,内存与耗时越大
pdf_max_dimension / STUMP_PDF_MAX_DIMENSIONInteger12001200渲染图最长边(像素)
pdf_render_format / STUMP_PDF_RENDER_FORMATStringwebp"webp"渲染输出图格式
pdf_cache_pages / STUMP_PDF_CACHE_PAGESBooleantruetrue已渲染页缓存
pdf_prerender_range / STUMP_PDF_PRERENDER_RANGEInteger55当前页前后预渲染页数
pdf_high_quality / STUMP_PDF_HIGH_QUALITYBooleantruetrue高质量换资源占用

💡 技术拓展:PDF 渲染输出格式常见三选项——webp(默认,压缩率/质量均衡)、jpeg(兼容最广、无透明通道)、png(无损、体积大)。Stump 默认选 webp 兼顾带宽与清晰度;低端设备可降 pdf_render_dpi 而非改格式。

5.8 File Uploads:上传

键 / 环境变量类型默认值实测值说明
enable_upload / STUMP_ENABLE_UPLOADBooleanfalsetrue(compose 显式开启)网页上传总开关
max_file_upload_size / STUMP_MAX_FILE_UPLOAD_SIZEInteger20971520(20MB)20971520上传书籍字节上限,仅 enable_upload=true 时生效
max_image_upload_size / STUMP_MAX_IMAGE_UPLOAD_SIZEInteger20971520(20MB)20971520用户/书库/媒体缩略图字节上限

实测开启后 uploadBooks 变更上传 CBZ 成功入库(状态 READY),见 《Stump 0.1.12 Docker Compose 部署指南》 4.8 的媒体读回。

5.9 Performance / Developer:并发与调试

键 / 环境变量类型默认值实测值说明
parallelism_multiplier / STUMP_PARALLELISM_MULTIPLIERInteger22扫描/缩略图并发 = 逻辑 CPU × 该系数(6 核 ×2 = 12);弱机调低、批量导入调高
enable_playground / STUMP_ENABLE_PLAYGROUNDBooleanfalsefalseGraphQL 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 伪造风险增大,官方文档原话)。

八、参考链接