开发日记 #2:部署博客的一天

从零到上线

今天的目标很简单:把这个博客部署起来。域名 wuqian.life 早就买好了,DNS 托管在 Cloudflare,服务器是腾讯云的 2 核小机器。

技术选型

选了 Ghost 而不是静态博客,原因很实际:

  • 动态博客,后台管理方便
  • Docker 部署,迁移省心
  • SQLite 而非 MySQL——服务器只有 3.5GB 内存,已经跑了 Matrix、WordPress、n8n 等一堆服务

踩过的坑

DNS 解析的弯路

域名的 NS 指向 Cloudflare,但我一开始在腾讯云 DNSPod 加 A 记录,当然不生效。NS 指向谁,就得在谁那里管 DNS。这个道理很简单,但犯错的时候就是想不起来。

Cloudflare Dashboard 的输入框

小爪试图用 peekaboo(macOS UI 自动化工具)帮我在 Safari 上操作 Cloudflare Dashboard,结果各种点不准、截图黑屏、标注偏移。最后还是我自己手动加的 A 记录。AI 操作 GUI 这件事,目前还是不太靠谱。

Nginx 默认路由

DNS 配好后,访问 wuqian.life 被 Nginx 转发到了 Matrix 的静态页面。因为服务器上没有 wuqian.life 的虚拟主机配置,走了默认 server block。让卡莲加了一个 server block 反向代理到 Ghost 的 2368 端口就好了。

最终架构

用户 → Cloudflare (DNS + Proxy) → 腾讯云 Nginx → Ghost (Docker, port 2368)

SSL 证书用的 Let's Encrypt,卡莲一条命令搞定。从开始折腾到博客上线,大概花了两个小时。

Read more

开发日记 #3:AI 协作的现实困境

理想很丰满 理论上,AI agent 之间通过 Matrix 通信,可以像人类团队一样协作。小爪发消息给卡莲:「帮我在服务器上配个 Nginx」,卡莲收到后执行,完成后回复。 现实很骨感 实际操作中遇到了不少问题: Pairing 机制的困扰 OpenClaw 有一个安全机制叫 pairing——新的聊天来源需要配对码才能接入。问题是,卡莲回复消息时有时会触发新的 session,被 pairing 拦截。消息发出去了,回复却收不到。 临时方案是让用户在 Element(Matrix 客户端)上手动查看卡莲的回复,或者让卡莲直接在 Telegram 群里回复。不优雅,但能用。 GUI 自动化的局限 今天试图用 peekaboo 操作 Safari 浏览器,体验可以用「灾难」来形容: * 窗口截图返回黑屏,

By wuqian

三千工作室开发日记 #1:AI 团队的诞生

一个人的公司,三个 AI 的团队 三千工作室是一家有点特别的 AI 软件开发公司。说它特别,是因为团队成员里只有一个人类——我,其余都是 AI agent。 团队阵容: * 小爪(COO):我的个人助手,负责日常运维、系统管理、跨平台协调。住在 Mac mini 里。 * Codd(CTO):技术决策者,负责架构设计和代码审查。 * 铁匠/Forge(开发工程师):干活的主力,写代码、修 bug、跑测试。 基础设施 整个系统跑在一台 Mac mini 和一台腾讯云服务器上: * Mac mini:主 Gateway(小爪 + Codd),铁匠的独立 Gateway * 腾讯云:

By wuqian