ezbookkeeping 2.1.0 配置参数详解

目标:面向已完成 ezBookkeeping v2.1.0 安装或 Docker Compose 部署、需要精细化调整运行参数的读者,逐节详解官方配置文件 ezbookkeeping.ini 的全部 23 个配置节:默认值、取值范围、生效方式与实测验证结果。所有默认值均取自 v2.1.0 官方发布包内 conf/ezbookkeeping.ini 原文,所有验证性操作均在 Ubuntu 22.04.4 LTS 实测采集。

ezbookkeeping财务记账自托管2026/10/23

ezbookkeeping 2.1.0 配置参数详解

目标:面向已完成 ezBookkeeping v2.1.0 安装或 Docker Compose 部署、需要精细化调整运行参数的读者,逐节详解官方配置文件 ezbookkeeping.ini 的全部 23 个配置节:默认值、取值范围、生效方式与实测验证结果。所有默认值均取自 v2.1.0 官方发布包内 conf/ezbookkeeping.ini 原文,所有验证性操作均在 Ubuntu 22.04.4 LTS 实测采集。

一、环境信息

项目值
软件版本ezBookkeeping v2.1.0(2026-10-15 发布,commit ff168cf)
配置文件来源官方发布包 ezbookkeeping_2.1.0_linux_amd64.tar.gz 内 conf/ezbookkeeping.ini,共 807 行
实测环境Ubuntu 22.04.4 LTS(内核 6.8.0-138-generic)
配置加载方式启动时从默认路径 conf/ezbookkeeping.ini 加载,支持 EBK_ 前缀环境变量覆写
关联文档《ezbookkeeping 2.1.0 介绍与选型指南》、《ezbookkeeping 2.1.0 Docker Compose 部署指南》

v2.1.0 相比 1.x 的配置结构性变化(升级前必读):原 [llm] 及其子节已更名为 [ai] + 三个独立的 LLM 配置节([llm_text_recognition]、[llm_image_recognition]、[llm_coding_assistant]),新增 MCP 服务配置节 [mcp]。从 1.x 升级后沿用旧配置会导致 AI 与 MCP 功能配置静默失效,需按新结构重写。

二、前置条件

  1. 已按 B1 安装指南或 B2 Compose 部署指南完成 ezBookkeeping 部署并能正常访问;
  2. 明确自己的部署形态:裸机/systemd 安装的配置文件位于安装目录 conf/ezbookkeeping.ini;Docker 部署时为挂载进容器的 ini 文件;
  3. 若使用环境变量方式管理配置,了解所选编排工具(systemd EnvironmentFile 或 compose environment);
  4. 修改前备份原配置文件(cp conf/ezbookkeeping.ini conf/ezbookkeeping.ini.bak)。

三、参数查看与修改方式

3.1 修改通道一:ini 配置文件

主通道。编辑后重启服务生效(systemd 形态 systemctl restart ezbookkeeping;Compose 形态 docker compose restart)。文件为标准 INI 格式:方括号为节名,# 开头行为注释。

3.2 修改通道二:EBK_ 环境变量覆写

任意配置项都可用 EBK_<节名>_<配置项名> 环境变量覆写(全大写),无需改 ini 文件。实测验证(B2 部署中同时挂载 ini 并设置环境变量):

environment:
  - "EBK_SERVER_DOMAIN=book.example.com"
  - "EBK_SECURITY_SECRET_KEY=q8Zw7HmTsP5nVcXeR2uYbK4jL6fD0aG1"

启动日志实测输出(节选):"Domain":"book.example.com","RootUrl":"http://book.example.com:8080/",且 "SecretKeyNoSet":false,"SecretKey":"****"——两项均按环境变量值生效,优先级高于 ini 文件。三个通道的优先级为:环境变量 > ini 文件 > 程序内置默认值。

3.3 验证手段:启动日志配置快照

ezBookkeeping 启动时会把最终生效的全部配置以 JSON 形式打印到日志(敏感项脱敏为 ****),这是核对配置是否生效的第一入口:

docker compose logs | grep "has loaded configuration"
# 或 systemd 形态:
journalctl -u ezbookkeeping | grep "has loaded configuration"

实测输出为一段完整 JSON,字段名即配置项的驼峰形式(如 EnableAPIToken、TokenExpiredTime),逐一对照即可确认。

四、参数总览

v2.1.0 官方配置文件共 23 个配置节:

配置节职责关键配置项默认值
[global]运行模式modeproduction
[server]Web 服务与站点标识protocol / http_addr / http_port / domainhttp / 0.0.0.0 / 8080 / localhost
[mcp]MCP(AI 协议)服务enable_mcpfalse
[database]数据库连接与行为type / auto_update_databasesqlite3 / true
[mail]SMTP 邮件发送enable_smtpfalse
[log]日志输出mode / levelconsole file / info
[storage]附件对象存储typelocal_filesystem
[ai]AI 识别总开关transaction_from_ai_text/image_recognitionfalse / false
[llm_text_recognition]文本识别 LLMllm_provider空(未启用)
[llm_image_recognition]票据图片识别 LLMllm_provider空(未启用)
[llm_coding_assistant]图表脚本助手 LLMllm_provider空(未启用)
[uuid]UUID 生成器generator_type / server_idinternal / 0
[duplicate_checker]防重复提交duplicate_submissions_interval300
[cron]定时任务开关enable_remove_expired_tokens 等true / true
[security]密钥与会话安全secret_key / token_expired_time空 / 2592000
[auth]认证方式与 OAuth2enable_internal_auth / enable_two_factortrue / true
[user]注册与用户能力限制enable_register / avatar_providertrue / internal
[data]导入导出enable_export / enable_importtrue / true
[tip]登录页提示enable_tips_in_login_pagefalse
[notification]站内通知文案enable_notification_after_*false
[map]地图服务map_provideropenstreetmap
[exchange_rates]汇率数据源data_sourceeuro_central_bank
[developer]开发者选项enable_language_previewfalse

五、核心参数分类详解

5.1 全局与 Web 服务([global]、[server])

配置项默认值说明
modeproduction可选 production / development
protocolhttp可选 http / https / socket;https 需同时配 cert_file 与 cert_key_file
http_addr0.0.0.0监听地址;置于反向代理之后可改 127.0.0.1
http_port8080监听端口
domainlocalhost站点域名,影响 RootUrl、邮件中的链接;实测经 EBK_SERVER_DOMAIN 覆写为 book.example.com 后启动日志确认生效
root_url%(protocol)s://%(domain)s:%(http_port)s/浏览器访问完整地址,支持占位符;走反向代理且端口非 8080 时必须显式设置
cert_file / cert_key_file空HTTPS 证书与私钥路径
unix_socket空仅 socket 协议使用
static_root_pathpublic前端静态资源目录
enable_gzipfalseGZip 压缩;通常交由反向代理处理
log_requesttrue记录每个请求及耗时
request_id_headertrue响应头携带 X-Request-Id,排障时可用于服务端日志检索

secret_key 特殊说明(在 [security] 节,部署第一步就会遇到):用于密码哈希与会话令牌签名,官方注释明确要求首次运行前必须修改。ini 默认值为空,此时启动日志中 SecretKeyNoSet 会显示为 true(实测字段存在),功能可用但属于官方明示的不安全状态。secret_key 一旦有用户数据后不可更换,否则所有已有用户的密码与会话全部失效。推荐用 ezbookkeeping security gen-secret-key -l 32 生成(实测输出形如 EHzJgpPK6TnvXcR2uYbK4jL6fD0aG1q8Zw7HmTsP5n=)。

5.2 数据库([database])

配置项默认值说明
typesqlite3可选 sqlite3 / mysql / postgres
host127.0.0.1:3306仅 mysql/postgres 使用,格式 host:port
nameezbookkeeping数据库名
user / passwdroot / 空数据库凭据
ssl_modedisable仅 postgres,可选 disable / require / verify-full
db_pathdata/ezbookkeeping.db仅 sqlite3,相对安装目录或绝对路径
max_idle_conn2最大空闲连接数
max_open_conn0最大打开连接数,0 不限
conn_max_lifetime14400连接最长存活秒数,默认 4 小时
log_queryfalse记录每条 SQL 及耗时(排障时临时开启)
auto_update_databasetrue启动时自动更新表结构;实测启动日志逐表打印 xxx table maintained successfully

实测启动日志(SQLite 形态,节选):

[INFO] [database.updateAllDatabaseTablesStructure] user table maintained successfully
[INFO] [database.updateAllDatabaseTablesStructure] account table maintained successfully
[INFO] [database.updateAllDatabaseTablesStructure] transaction table maintained successfully

生产建议:个人/小团队自托管 SQLite 完全够用(单文件备份方便);多人共享或多实例部署换 MySQL/PostgreSQL,此时修改 type/host/name/user/passwd 五项即可。

5.3 邮件([mail])

配置项默认值说明
enable_smtpfalseSMTP 总开关;关闭时所有依赖邮件的功能直接报错
smtp_host127.0.0.1:25SMTP 服务器地址:端口
smtp_user / smtp_passwd空SMTP 认证凭据
smtp_skip_tls_verifyfalse跳过 TLS 校验(自签证书场景)
from_address空发件人地址,支持 Name <user@domain.com> 格式

实测排障实录:enable_smtp=false 时执行邮件测试命令,实测报错为 SMTP server is not enabled——该报错是配置门拦截,并非网络问题;改为 enable_smtp=true 后(SMTP 服务器故意未启动),报错变为 dial tcp 127.0.0.1:25: connect: connection refused,证明配置门已通过、问题转移为网络连通性。两段报错的差异可用于快速定位"没配置"还是"连不上"。

5.4 日志([log])

配置项默认值说明
modeconsole file空格分隔多模式:console / file
levelinfo可选 debug / info / warn / error
log_pathlog/ezbookkeeping.logfile 模式日志路径
request_log_path / query_log_path空请求/SQL 日志独立文件路径,空则并入主日志
log_file_rotatefalse是否轮转
log_file_max_size104857600轮转阈值 100MB
log_file_max_days7保留天数,0 永久保留

5.5 附件对象存储([storage])

配置项默认值说明
typelocal_filesystem可选 local_filesystem / s3 / minio / webdav
local_filesystem_pathstorage/本地存储根路径,含 avatar/、icon/、transaction/ 三个子目录(实测自动创建)
s3_endpoint / s3_region / s3_access_key_id / s3_secret_access_key / s3_session_token空S3 兼容服务连接五件套
s3_use_ssl / s3_skip_tls_verify / s3_use_path_stylefalseS3 连接行为三项
s3_bucket / s3_root_pathezbookkeeping / /S3 桶与根路径
minio_endpoint / minio_location / minio_access_key_id / minio_secret_access_key空MinIO 专用连接四件套
minio_use_ssl / minio_skip_tls_verifyfalseMinIO 连接行为
minio_bucket / minio_root_pathezbookkeeping / /MinIO 桶与根路径
webdav_url / webdav_username / webdav_password / webdav_root_path空WebDAV 连接四件套
webdav_request_timeout10000WebDAV 请求超时毫秒,0 禁用超时
webdav_proxysystemsystem / none / 具体代理 URL
webdav_skip_tls_verifyfalseWebDAV 跳过 TLS 校验

5.6 AI 能力([ai] 与三个 LLM 节)

[ai] 是功能总开关,三个 LLM 节提供各能力的模型接入:

配置项默认值说明
transaction_from_ai_text_recognitionfalse允许从文本识别结果创建交易,需 llm_text_recognition 节配置模型
transaction_from_ai_image_recognitionfalse允许从票据图片识别创建交易,需 llm_image_recognition 节
insights_explorer_coding_assistantfalseInsights Explorer 自定义图表脚本生成,需 llm_coding_assistant 节
max_ai_recognition_picture_size10485760AI 识别图片大小上限 10MB

三个 LLM 节结构完全一致,llm_provider 支持 9 种:openai、openai_compatible、openai_responses_compatible、anthropic、anthropic_compatible、openrouter、ollama、lm_studio、google_ai。每个 provider 有专属的 key/url/model_id 三件套,共用 enable_thinking(off/low/medium/high/xhigh/on 六档,按 provider 支持度不同)、request_timeout(默认 60000ms)、proxy(默认 system)、skip_tls_verify(默认 false)。不使用 AI 能力时保持全部默认(关闭)即可,无资源开销。

5.7 UUID 与防重复提交([uuid]、[duplicate_checker])

配置项默认值说明
generator_typeinternalUUID 生成器类型,当前支持 internal
server_id0internal 生成器服务端唯一标识 0-255,多实例部署时必须各不相同(实测交易 ID 形如 3849861575464714240,首段即 server/instance 编码)
checker_typein_memory防重复提交实现,当前支持 in_memory
cleanup_interval60过期数据清理间隔秒数
duplicate_submissions_interval300同页面两次提交最小间隔秒数,0 关闭防重复检查

5.8 定时任务([cron])

配置项默认值说明
enable_remove_expired_tokenstrue定期清理过期会话令牌
enable_create_scheduled_transactiontrue按用户模板自动创建周期记账

实测启动日志可见对应任务注册:job "RemoveExpiredTokens" has been registered、job "CreateScheduledTransaction" has been registered。

5.9 安全与会话([security])

配置项默认值说明
secret_key空见 5.1 节特殊说明,最高优先级配置项
trusted_proxy_ips10.0.0.0/8,169.254.0.0/16,127.0.0.0/8,172.16.0.0/12,192.168.0.0/16可信代理 CIDR 列表;仅当来源 IP 在列表内才信任 X-Forwarded-For 等头。反向代理场景必须把代理 IP 加入,否则限流/日志记录到的都是代理地址
token_expired_time2592000会话令牌有效期 30 天
token_min_refresh_interval86400令牌最小刷新间隔 1 天,0 则前端每次刷新都换新令牌
temporary_token_expired_time300临时令牌 5 分钟
email_verify_token_expired_time3600邮箱验证令牌 1 小时
password_reset_token_expired_time3600密码重置令牌 1 小时
enable_api_tokenfalse是否允许用户生成个人访问令牌(供脚本/第三方调用 API)
api_token_allowed_remote_ips空API 令牌允许的来源 IP 列表,空不限制;支持 192.168.1.* 通配
max_failures_per_ip_per_minute5每 IP 每分钟密码/令牌校验失败上限,0 关闭限流
max_failures_per_user_per_minute5每用户每分钟失败上限

enable_api_token 实测排障实录:默认 false 时,已登录用户请求生成 API 令牌实测报错 api token is not enabled;将 enable_api_token 改为 true 并重启后,签发成功,且 GET /api/v1/tokens/list.json 返回的令牌记录中 tokenType: 8(API 令牌类型码)可查。生产开启时建议同时配置 api_token_allowed_remote_ips 收紧来源。

5.10 认证方式([auth])

配置项默认值说明
enable_internal_authtrue内置用户名密码认证
enable_oauth2_authfalseOAuth2 登录总开关
enable_two_factortrue允许用户启用两步验证(TOTP)
enable_forget_passwordtrue允许自助找回密码(依赖 [mail] 开启)
forget_password_require_email_verifyfalse找回密码前是否必须已验证邮箱
oauth2_provider空可选 oidc / nextcloud / gitea / github
oauth2_client_id / oauth2_client_secret空OAuth2 客户端凭据
oauth2_user_identifieremail以 email 或 username 作为用户标识 claim
oauth2_use_pkcefalse启用 PKCE
oauth2_auto_registertrueOAuth2 首登自动建号(需 enable_register=true)
oauth2_state_expired_time / oauth2_request_timeout300 / 10000state 有效期与 API 超时毫秒
oauth2_proxy / oauth2_skip_tls_verifysystem / false请求代理与 TLS 校验
oidc_provider_base_url空OIDC issuer 地址,需保证 .well-known/openid-configuration 可访问
oidc_provider_check_issuer_urltrue校验发现响应中的 issuer 与配置一致
enable_oidc_display_name / oidc_custom_display_namefalse / 空自定义登录按钮文案,支持 _zh_hans 等多语言后缀
nextcloud_base_url / gitea_base_url空对应 provider 的站点根地址

5.11 用户与注册([user])

配置项默认值说明
enable_registertrue官方默认 true,允许自助注册;家庭自用建议关闭、由管理员建号
enable_email_verifyfalse允许邮箱验证(依赖 SMTP)
enable_force_email_verifyfalse登录强制要求已验证邮箱
enable_custom_icontrue允许上传自定义图标
max_user_custom_icon_size1048576自定义图标上限 1MB
enable_transaction_picturetrue允许上传交易图片
max_transaction_picture_size10485760交易图片上限 10MB
enable_scheduled_transactiontrue允许创建周期记账
avatar_providerinternalinternal(存到本站对象存储)/ gravatar / 空禁用
max_user_avatar_size1048576头像上限 1MB
default_feature_restrictions空新注册用户默认能力限制,逗号分隔的数字组合,见下方 20 项编码

default_feature_restrictions 的 20 项能力编码(官方注释原文):1 更新密码、2 更新邮箱、3 更新基本资料、4 更新头像、5 登出其他会话、6 启用两步验证、7 关闭两步验证、8 找回密码、9 导入交易、10 导出交易、11 清空数据、12 同步应用设置、13 MCP 访问、14 AI 图片识别记账、15 OAuth2 登录、16 解绑三方登录、17 生成 API 令牌、18 AI 文本识别记账、19 上传自定义图标、20 AI 生成图表脚本。

实测验证(配合 CLI 工具对单用户设置限制 -t 17,13 后):该用户请求生成 API 令牌实测报错 you are not permitted to perform this action,限制即时生效。注意语义是"限制清单"——填 17 表示禁止该用户生成 API 令牌。

5.12 数据导入导出([data])

配置项默认值说明
enable_exporttrue允许导出数据
enable_importtrue允许导入数据
max_import_file_size10485760导入文件上限 10MB

5.13 提示与通知([tip]、[notification])

配置项默认值说明
enable_tips_in_login_pagefalse登录页自定义提示
login_page_tips_content空提示内容,支持 _zh_hans 多语言后缀
enable_notification_after_register / after_login / after_openfalse注册后/登录后/打开应用后的首页通知三开关
after_register_notification_content 等空对应通知文案,同样支持多语言后缀

5.14 地图服务([map])

交易可记录地理位置,地图服务用于展示:

配置项默认值说明
map_provideropenstreetmap支持 openstreetmap / openstreetmap_humanitarian / opentopomap / opnvkarte / cyclosm / cartodb / tomtom / tianditu / googlemap / baidumap / amap / custom,空禁用
map_data_fetch_proxyfalse由 ezBookkeeping 服务端转发地图数据请求(前端无法直连地图源时开启)
proxysystem转发时使用的代理,system / none / 具体代理 URL
tomtom_map_api_key空TomTom 专用
tianditu_map_app_key空天地图专用
google_map_api_key / baidu_map_ak空Google/百度地图专用
amap_application_key空高德地图 key
amap_security_verification_methodinternal_proxy高德安全校验方式:internal_proxy / external_proxy / plain_text(明文不安全)
amap_application_secret / amap_api_external_proxy_url空高德密钥与外部代理地址
custom_map_tile_server_url空自定义瓦片服务地址,支持 {z}/{x}/{y} 占位符
custom_map_tile_server_annotation_url空自定义注记图层地址(可选)
custom_map_tile_server_min/default/max_zoom_level1 / 14 / 18自定义瓦片缩放级别范围与默认值

国内部署建议:map_provider = amap 并按需选择 internal_proxy 校验方式(密钥保留在服务端,前端不暴露)。

5.15 汇率数据源([exchange_rates])

配置项默认值说明
data_sourceeuro_central_bank内置 20 个央行/官方源(阿根廷/白俄罗斯/加拿大/捷克/丹麦/欧洲央行/格鲁吉亚/匈牙利/以色列/意大利/哈萨克斯坦/马来西亚/缅甸/挪威/波兰/罗马尼亚/俄罗斯/瑞士/乌克兰/乌兹别克斯坦)+ user_custom(用户在界面自行维护)
request_timeout10000拉取汇率超时毫秒
proxysystem拉取代理
skip_tls_verifyfalse跳过 TLS 校验

多币种记账且服务器无法直连欧洲央行时,改用 user_custom 或配置 proxy。

5.16 MCP 服务与开发者选项([mcp]、[developer])

配置项默认值说明
enable_mcpfalsev2.1.0 新增:经 HTTP 暴露 MCP(Model Context Protocol)服务,供 AI 客户端接入记账能力
mcp_allowed_remote_ips空MCP 来源 IP 白名单,* 通配,空全允许
enable_language_previewfalse桌面端开发者工具中预览语言配置

六、生产配置模板

6.1 模板一:个人/小团队 SQLite 单机(资源占用最低,实测空闲内存 8.8MB)

[global]
mode = production

[server]
protocol = http
http_addr = 0.0.0.0
http_port = 8080
domain = book.example.com
root_url = https://book.example.com/

[database]
type = sqlite3
db_path = data/ezbookkeeping.db
auto_update_database = true

[mail]
enable_smtp = true
smtp_host = smtp.example.com:465
smtp_user = no-reply@example.com
smtp_passwd = <SMTP密码>
from_address = ezBookkeeping <no-reply@example.com>

[log]
mode = console file
level = info
log_file_rotate = true
log_file_max_size = 104857600
log_file_max_days = 30

[storage]
type = local_filesystem
local_filesystem_path = storage/

[cron]
enable_remove_expired_tokens = true
enable_create_scheduled_transaction = true

[security]
secret_key = <gen-secret-key 生成,一旦确定不可更换>
trusted_proxy_ips = 10.0.0.0/8,127.0.0.0/8,192.168.0.0/16
enable_api_token = false

[auth]
enable_internal_auth = true
enable_two_factor = true

[user]
enable_register = false
avatar_provider = internal

[data]
enable_export = true
enable_import = true

[exchange_rates]
data_source = euro_central_bank

适用场景:1-10 人自用,磁盘占用为 SQLite 单文件(实测 21 万字节量级),无外部数据库依赖。

6.2 模板二:多人 MySQL/PostgreSQL 共享

在模板一基础上替换 [database] 节:

[database]
type = mysql
host = 10.89.71.2:3306
name = ezbookkeeping
user = ezbookkeeping
passwd = <数据库密码>
max_idle_conn = 2
max_open_conn = 20
conn_max_lifetime = 14400
auto_update_database = true

PostgreSQL 部署将 type 改为 postgres 并按需加 ssl_mode = require。多实例(如双机热备)时必须同步设置 [uuid] server_id 为不同值(0-255)。

七、常见问题

Q1:生成 API 令牌报 api token is not enabled

[security] enable_api_token 默认 false。改为 true 并重启服务后重新生成即可;若仍报 you are not permitted to perform this action,则是该用户被 default_feature_restrictions 或管理员单独设置了能力限制(编码 17),由管理员解除。

Q2:邮件相关功能报 SMTP server is not enabled

[mail] enable_smtp 默认 false 的配置门拦截。改为 true 后若报 dial tcp ...: connect: connection refused,则进入网络层排查(SMTP 地址/端口/防火墙)。两段报错差异是判断"未配置"与"连不上"的依据。

Q3:首次启动后登录用户全部失效 / 升级迁移后密码错误

secret_key 与建号时不一致所致。secret_key 确定后不可更换;迁移部署必须把旧实例的 secret_key 一并迁移(ini 或 EBK_SECURITY_SECRET_KEY 环境变量均可)。

Q4:反向代理后日志与限流记录到的全是代理 IP

[security] trusted_proxy_ips 未包含代理的来源地址。默认值仅覆盖常见私网段,若代理不在这些网段(如容器自定义网段),把代理 IP 所在 CIDR 加入并重启。

Q5:从 1.x 升级后 AI/MCP 配置不生效

v2.1.0 将 [llm] 配置节更名为 [ai] + 三个独立 LLM 节,并新增 [mcp] 节(Breaking Change)。旧节名会被忽略但不报错,需按第五章 5.6/5.16 节的新结构重写。

Q6:注册接口报 parameter "categories" is required

注册请求必须携带预置分类(网页端自动带上)。API/脚本注册时补上 categories 数组即可,每个分类组还需至少一个二级分类,原因见 B2 部署指南 Q2 的实测说明。

Q7:改了配置不生效

三种可能:① 改的是容器内路径而非挂载的宿主文件;② 用了环境变量覆写,其优先级高于 ini,ini 的修改被环境变量压住;③ 未重启服务。排查顺序:先看启动日志 has loaded configuration 的 JSON 快照,确认进程实际读到的值,再回溯两个通道。

八、参考链接

  1. 官方配置文档:https://ezbookkeeping.mayswind.net/configuration
  2. v2.1.0 官方默认配置文件(GitHub):https://github.com/mayswind/ezbookkeeping/blob/2.1.0/conf/ezbookkeeping.ini
  3. 站内关联阅读:《ezbookkeeping 2.1.0 介绍与选型指南》、《Ubuntu 22.04 安装 ezbookkeeping 2.1.0 指南》、《ezbookkeeping 2.1.0 Docker Compose 部署指南》、《ezbookkeeping 2.1.0 常用 CLI 命令与工具详解》

以上默认值逐项对照 v2.1.0 官方发布包内 conf/ezbookkeeping.ini 原文(807 行),验证性操作均在 Ubuntu 22.04.4 LTS 实测采集,实测日期 2026-10-23。