运维
这一节覆盖部署之后的事:配置、数据、备份、告警、观测与排查。
运行形态
一个进程 + 一个 SQLite 数据库。数据库与备份都在 DATA_DIR(容器内 /data)。没有外部依赖、没有独立缓存、没有需要另外维护的消息队列。
配置分三层
| 层 | 位置 | 何时生效 |
|---|---|---|
| 环境变量 | 部署文件(.env / compose) | 需要重启 |
| 运行设置 | 控制台「运维 → 运行设置」,存 runtime_settings 表 | 大多热生效,无需重启 |
| 路由 / 渠道级 | 各自的行上(超时、并发、重试、代理等) | 保存即生效 |
环境变量是启动时的初始值,运行设置是对它的覆盖。想彻底关掉某个后台任务,两处都要看。
本节页面
| 页面 | 内容 |
|---|---|
| 架构总览 | 包结构、请求生命周期、数据库与迁移 |
| 部署与反代 | 部署、Web 控制台的构建顺序、反代与零停机更新、优雅关闭 |
| 观测与指标 | 时间窗口聚合、/metrics、/readyz、实时追踪 |
| 数据保留策略 | 审计保留、历史表裁剪、站点探针保留期 |
| 站点签到 | 两种签到的区别、请求形态、、WAF/五秒盾与失败对照 |
| 备份与恢复 | 在线快照、恢复流程、MASTER_KEY 铁律 |
| 故障排查 | 按症状排查,基于 proxy_logs 的链路钻取 |
| 端到端验证 | 容器 E2E 的跑法 |
三条不能违反的约定
MASTER_KEY必须随库一起备份、一起迁移。 换一个MASTER_KEY打开同一个库,所有加密字段都解不开。- 已应用的迁移文件不能改名、不能编辑。
schema_migrations按文件名记录,改名字等于让迁移重放。 internal/webui/dist是构建产物但被跟踪,因为 Go 二进制go:embed它。重新构建后要单独提交,不要混进源码提交。