Skip to content

docs(deploy): 删除宝塔指南,补 AWS + Caddy 实际部署实录 - #6

Merged
talki-io merged 1 commit into
masterfrom
docs/replace-baota-with-aws
Jul 10, 2026
Merged

talki-io merged 1 commit into
masterfrom
docs/replace-baota-with-aws

Conversation

@talki-io

Copy link
Copy Markdown
Owner

为什么删 deploy/baota.md

生产最终部署在 AWS EC2 + Caddy(https://sahamdata.top),宝塔那份指南用不上了。

而且它有两个问题:从未在真实宝塔环境实测过(文档开头也如实写了),以及它是我建 fix/ 分支时忘了先切回 master、被 PR #3 夹带合并进来的——流程不干净。留着只会误导下一个接手的人。

换成 deploy/aws-caddy.md

记录 2026-07-10 实际跑通的这次部署,命令都在真实机器上执行过:两层反代拓扑、装 Docker、用只读 deploy key 拉私有仓库、Caddyfile、备份 cron。

最有价值的是「踩过的坑」一节,全部是这次真撞到的:

坑 表现
docker compose exec -T 吞 stdin heredoc / while read 循环静默截断,只执行一部分
sudo caddy validate 创建 root:root 的 access.log,caddy 启动 permission denied,报错完全不提日志权限
restart 不重读 .env 以为改动生效了其实没有,必须 --force-recreate
富化只在入库那一刻发生 先抓新闻后填 key → 整批裸数据,且不会回填,只能删掉重抓
重抓前不清 etag 条件请求返回 304,什么也抓不到
Caddy 与 nginx 超时默认值相反 nginx 默认 60s 要调,Caddy reverse_proxy 默认无响应超时,不用调

顺带归档三个已知问题

  • IDX 源抓不到内容:crawl_playwright.py 的选择器按旧版结构写死,返回「渲染成功但未抽到匹配的新闻链接」,而 health 仍标 ok——抓取源页面看起来正常,实际零产出。
  • scheduler.py 漏掉 HTML 类型源:只查 RSS 和 Playwright,OJK 是 HTML,打开定时抓取后它永远不会被自动抓。手动端点 sources.py 是支持的。
  • 中文文案没有确定性合规护栏:rules.py 的 34 条禁词全是印尼语/英语,规则层对中文完全失效,只剩 Haiku 语义层兜底。属合规口径,待业务/法务定夺。

影响面

纯文档。没有动任何运行中的配置——docker-compose.prod.yml、两个 Dockerfile、nginx.conf、CI、create_user.py 全部保持原样。

🤖 Generated with Claude Code

生产最终部署在 AWS EC2 + Caddy(https://sahamdata.top),宝塔那份指南用不上了。
它当初也从未在真实宝塔环境实测过,且是建分支时忘了切回 master、被 PR #3 夹带
合并进来的,留着只会误导。

新增 deploy/aws-caddy.md,记录 2026-07-10 实际跑通的这次部署:
两层反代拓扑、装 Docker、deploy key 拉私有仓库、Caddyfile、备份 cron。

重点是「踩过的坑」一节,全部实际撞到过:
- docker compose exec -T 吞 stdin,导致 heredoc / while read 静默截断
- sudo caddy validate 会创建 root:root 的 access.log,让 caddy 启动 permission denied
- restart 不重读 .env,改配置必须 --force-recreate
- 富化只在入库那一刻发生:先填 key 再抓新闻,顺序反了只能删掉重抓
- 重抓前须清 etag/last_modified,否则条件请求 304
- Caddy 的 reverse_proxy 默认无响应超时(与 nginx 默认 60s 相反)

并归档三个已知问题:IDX 选择器失效但 health 仍报 ok、scheduler 漏掉 HTML 类型源、
中文文案没有确定性合规护栏。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@talki-io
talki-io merged commit e854796 into master Jul 10, 2026
2 checks passed
@talki-io
talki-io deleted the docs/replace-baota-with-aws branch July 10, 2026 09:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant