尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Actual 服务器配置不生效时怎么用 DEBUG 环境变量排查

Actual 服务器配置不生效时怎么用 DEBUG 环境变量排查 Actual 服务器配置不生效时怎么用 DEBUG 环境变量排查【免费下载链接】actualA local-first personal finance app项目地址: https://gitcode.com/GitHub_Trending/ac/actual如果你在 Actual 的同步服务器sync-server里改了config.json或设置了环境变量但服务器行为没有变化——比如端口还是 5006、数据目录没有指向ACTUAL_DATA_DIR、HTTPS 始终没启用——官方文档给出了一条直接的排查路径Actual 使用标准 Node.jsdebug模块做日志给服务器进程加一个DEBUG环境变量就能在控制台看到配置是从哪里加载的、最终生效的值是什么。本文适用于以actual-app/sync-serverCLI 或 Docker 容器方式运行服务器的部署环境。先弄清配置是怎么加载的排查前需要知道配置来源的查找顺序这决定了你看日志时要核对什么服务器启动时先找可选的config.json位于 sync-server 的package.json同目录从源码构建时即packages/sync-server/。文件中定义的键会覆盖默认值所有配置值也可以用环境变量指定环境变量优先于config.json中的值如果设置了ACTUAL_CONFIG_PATH服务器直接从该路径读取配置文件否则按项目根目录的config.json、再回退到数据目录/data下的config.json查找。注意环境变量名和config.json的键并不是 1:1 对应例如port对应ACTUAL_PORT、dataDir对应ACTUAL_DATA_DIR。完整映射以源文件 load-config.js 中的 convict schema 为准。这些规则来自 Configuring the Server 和 Troubleshooting Server Configuration Issues。用 DEBUG 环境变量开启配置日志给服务器进程添加DEBUG环境变量值设为actual:configDEBUGactual:config actual-server如果你是用 Docker 容器运行服务器同样是在容器的环境变量中加入DEBUGactual:config例如 compose 文件的environment列表让该变量出现在服务器进程的环境中。如果问题出在 HTTPS 配置上需要把值改为actual:config,actual-sensitive:config这样才能打印出 HTTPS 密钥的真实内容。原因在 Troubleshooting Server Configuration Issues 中有说明HTTPS 的key/cert值默认会被遮蔽打印成星号以免意外泄露只有打开actual-sensitive:config这个命名空间才输出实际值DEBUGactual:config,actual-sensitive:config actual-server如何解读日志开启后服务器启动时会在控制台按顺序输出一组配置加载日志。下面的输出取自 load-config.js 中实际存在的debug(...)调用仅作为格式示例文档示例你的路径和值会不同[actual:config] Project root: /path/to/project [actual:config] loading config from ACTUAL_CONFIG_PATH: /data/config.json [actual:config] Config loaded [actual:config] Validating config [actual:config] Port: 5006 [actual:config] Hostname: :: [actual:config] Data directory: /data [actual:config] Server files: /data/server-files [actual:config] User files: /data/user-files [actual:config] Login method: password按顺序核对这几个关键点配置来源日志会明确显示是loading config from ACTUAL_CONFIG_PATH: ...还是loading config from default path: ...以及随后的Config loaded。如果你以为自己改的那份config.json没有被加载这里会直接指出服务器实际读的是哪个路径——这是“配置不生效”最常见的根因改错了文件或ACTUAL_CONFIG_PATH指向别处。最终生效值验证通过后打印Port、Hostname、Data directory、Server files、User files、Web root、Login method等项。把你预期改动的值和这里的输出逐一对比就能确认是文件没被读到、环境变量没进进程环境还是环境变量意外覆盖了文件值。HTTPS 项当https.key/https.cert有值时会各打印一行默认显示为星号如HTTPS Key: ***...长度与真实值一致用于确认值确实被读到了。只有加了actual-sensitive:config后才输出明文此时请留意控制台输出会包含敏感内容。GitHub Tokengithub.token同样有这组遮蔽/明文日志。对照配置 schema 检查键名文档建议把配置文件和配置 schema 对照着看schema 位于 load-config.js 中的configSchema convict({...})。每个键都带有doc用途说明、format允许的取值、default默认值和env对应的环境变量名。如果你的配置“不生效”其实是配置直接启动失败或值不被接受schema 能帮你确认键名、合法取值和环境变量名是否正确。限制与说明DEBUG只影响日志输出不会修改任何配置行为确认问题后建议移除该变量再启动避免长期把配置值或敏感明文留在控制台日志里。环境变量对config.json是覆盖关系不是并列关系两者都设置同一项时以环境变量为准。_FILE后缀的环境变量如ACTUAL_OPENID_CLIENT_SECRET_FILE、ACTUAL_GITHUB_TOKEN_FILE在config.json加载之后应用优先级高于普通环境变量详见 Configuring the Server。排查完配置问题后HTTPS 相关的进一步配置证书获取、ACTUAL_HTTPS_KEY/ACTUAL_HTTPS_CERT的取值规则可参考 Activating HTTPS。【免费下载链接】actualA local-first personal finance app项目地址: https://gitcode.com/GitHub_Trending/ac/actual创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表