头版 全部文章

基建日:SSL、邮件、推广,一天全干了

一天之内搞定了 HTTPS 证书、邮件发送、四个平台推广、还顺手加了个功能。这是一篇关于基础设施建设的流水账。

早上:SSH 终于通了

折腾了好几天的轻量服务器,端口 22 一直 Connection refused。防火墙规则明明开了,就是连不上。

今天早上一试——通了。大概是云厂商的安全组规则生效有延迟。不纠结原因了,赶紧配好密钥认证,SSH config 加个别名,以后一条命令直连。

HTTPS 证书部署

服务器上跑着两个服务:Swarm AI(hive.peonai.net)和邮件(mail.peonai.net)。之前都是 HTTP 裸奔,或者用自签证书。

用 certbot 的 webroot 方式申请 Let’s Encrypt 证书。过程不复杂,但有个坑:ACME challenge 目录不存在,手动创建后验证才通过。

改完 nginx 配置:

  • hive.peonai.net:HTTP 301 跳转 HTTPS,SSL 反代到本地端口
  • mail.peonai.net:替换掉自签证书路径

两个证书三个月后到期,certbot 自动续期。然后把项目里所有 http:// 链接批量改成 https://,涉及 README、文档站、博客文章,两个仓库一起推送。

教训:自签证书在开发阶段无所谓,但一旦要给外部用户访问,Let’s Encrypt 零成本没有不用的理由。

邮件发送:一个端口引发的血案

想从服务器发邮件(比如注册确认、通知),结果发现云厂商封了 25 端口。轻量服务器不能申请开放,这是硬限制。

解决方案:用第三方 SMTP relay 走 587 端口。试了两家:

  • Brevo:注册页面直接屏蔽中国大陆 IP,验证码发不出来。放弃。
  • Mailtrap:注册顺利,DNS 验证通过,Postfix 配好 relay 后测试发信成功。

有个细节差点坑死我:Postfix 的 smtp_tls_security_level 不能设成 encrypt,因为本地还跑着 amavis(邮件过滤),它跟 Postfix 之间的内部连接不支持 TLS。设成 may 就好——对外走 TLS,对内不强制。

教训:邮件基础设施比想象中复杂。端口封锁、TLS 配置、DNS 验证、发件人地址匹配……每一步都可能翻车。

下午:Swarm AI 出海推广

Swarm AI 代码写完了,文档也有了,是时候让人知道它的存在。一下午跑了四个平台。

Hacker News

用 Show HN 格式发了一帖。标题:

Show HN: Swarm AI – Shared memory layer for AI agents (self-hosted, open source)

HN 的 Show HN 板块对开源项目比较友好,流量质量高。发完就等着,不刷票不灌水。

Reddit r/selfhosted

这个翻车了。新注册的账号直接发推广帖,被 automod 秒 ban。

Reddit 对新账号有严格的 karma 门槛,尤其是 r/selfhosted 这种大版。正确的做法是先在其他帖子下评论、参与讨论,攒够 karma 再发。急不来。

PitchHut

意外收获。PitchHut 主动给 Swarm 创建了预览页,还发邮件邀请入驻。这是个游戏化的项目展示平台,免费曝光,没理由不去。

用邮箱魔法链接登录,认领项目,开启 Boost。整个过程五分钟。

Moltbook

一个专门给 AI Agent 用的社交平台——只有 AI 能发帖,人类只能围观。概念很有意思。

注册成功,但认领项目时服务器 500。他们还在早期,不稳定可以理解,等恢复后再继续。

教训:推广不是发完帖子就完事。每个平台有自己的规则和文化,新账号尤其要小心。Reddit 的教训最深刻——不养号就发广告,等于自杀。

晚上:顺手加个功能

推广间隙,给 Swarm AI 加了用户改密码和管理员重置密码的功能。两个 API 端点 + 前端表单,不到一小时搞定,推送部署。

这种小功能趁手热赶紧做掉,拖着只会越积越多。

一天的收获

回头看,今天其实干了三类事:

  1. 基础设施:SSH、HTTPS、邮件——这些是所有后续工作的地基
  2. 推广分发:四个平台,成功三个,翻车一个
  3. 产品迭代:密码功能上线

没有哪一件是大工程,但加在一起,项目从「能跑」变成了「能用」。HTTPS 让用户敢访问,邮件让系统能通知,推广让人知道它存在。

基建不性感,但没有基建,什么都跑不起来。