开发者生态
morning
构建一个(几乎)完全自托管、沙盒、代理的软件工厂
2026-08-22
1 阅读
约7分钟阅读
jakelsaunders94
字号:
长话短说:博士:成功了!根据一个提示,它创建了一个存储库,编写了应用程序和测试,获得了 CI 绿色,配置了 Postgres 并在 HTTPS 后面部署了完成的应用程序,而没有我的另一条消息。如果你只是想看看结果,你可以在底部找到一个演示视频 法学硕士再次变得有趣!也许他们一直都是这样,而我只是陷入了幻灭的低谷。最近,每当我需要一个小工具时,我都会构建它。前几天我在健身房,想要一个体重追踪器。我想要的应用程序是尽可能的 CRUD 式的,但所有应用程序商店版本的价格都是每月 12 英镑,所以我只是和 Claude 一起开发了一款。很有趣,但是在自动模式下授予 LLM 根访问权限仍然不适合我。那么,挑战是:如何创建一个完全远程代理开发环境,在该环境中我们在结构上包含 LLM 而不仅仅是信任它?我想给它一个指令,让它自主地遍历整个 SDLC:研究要使用的正确堆栈和包。规划和编写代码和测试。致力于 Git、构建和运行 CI 管道。将工作部署到带有数据库、o11y 和带有 SSL 的域的“生产”服务器。全部都在我的家庭服务器上,无需额外的云基础设施费用。该实验唯一持续的特定成本是 20 英镑的 Codex sub。服务器在这里,他们尽显荣耀。底部的是 2014 年的双核 i3,我已经作为家庭实验室运行了五年。它勇敢地托管着这个博客和大约 45 个其他 Docker 容器,从 Pi-hole 到完整的 Prometheus / Loki / Grafana 堆栈。它还具有从我的路由器转发的端口 443。如果法学硕士打破了它,我会很生气,所以这不是我们今天使用的。最上面的一台是 2021 年第 10 代 i7,配备 32GB RAM,是从 eBay 刚买的,里面什么也没有。完美的。堆栈 核心开发堆栈是通过 Coolify 自托管的。 Tailscale、Telegram、DNS 和 ACME 等推理和集成仍然不受限制。你也可以进行推理,但我没有硬件,我宁愿 OpenAI 资助我的实验。组件注释 Pi-hole 本地 DNS 规则,附带的好处是看到更少的垃圾广告。 Tailscale 让我的家庭网络跟随我。 Coolify 一个基于 Docker 构建的自托管、Heroku 风格的 PaaS。 Forgejo(带有运行程序)自托管 Git 和 CI。 Hermes(带有 WebUI) OpenClaw 风格的虚拟助手,使用 Codex 进行推理。 Telegram 在厕所或任何地方与特工交谈。 Firecrawl(自托管)代理和网络之间的抓取/转换层。 Porkbun(注册商)和 Let’s Encrypt A 域和动态 SSL 证书。无论 Postgres、Redis,无论您的应用程序需要什么。这只是底层的 Docker,不是吗?这不是完整的操作指南。我可能可以编写一个 Ansible 一次性脚本来设置这一切;如果您愿意,请在下面的 GitHub 存储库上留下问题。不过,如果您已经读到这里,您可能就能明白了。网络 第一个护栏很明显:它是在自己的金属上。 Hermes 可以 rm -rf /,最坏的情况是需要花费我几个小时来重建它。防弹的下一层是网络。我的旧服务器有从路由器转发的端口 443;这个没有。没有外部入口,消除了巨大的攻击面以及人们在我设置的每个 DNS A 记录上推测性探测 /wp-admin 带来的所有互联网背景辐射。但是,如果没有入口,我该如何: 访问我手机上所有很酷的新应用程序?在虚荣 URL 生成 SSL 证书,以便我可以访问 https://cool-new-app.internal.jakeshomelab.me ?我将 Tailscale 设置为我的旧服务器作为退出节点。当我出门在外时,选择它会通过该服务器和 Pi-hole 路由我的流量,我将其用于自定义 DNS。 Pi-hole 允许您添加如下 dnsmasq 规则:address=/internal.jakeshomelab.me/192.168.1.201 任何请求 *.internal.jakeshomelab.me 的内容现在都会解析到我的新服务器,Coolify 的反向代理会在其中接收它并为我提供闪亮的新服务。 SSL 证书 使用 Caddy 或 Traefik 和 Docker 标签,您可以从 https://my-service.internal.jakeshomelab.me 为容器 X 上的端口 3000 提供服务。将 A 记录指向服务器,它将联系 Let’s Encrypt,完成 ACME 质询并获得 SSL 证书。我三年前就知道了这一点,现在看来仍然很神奇。问题出在A记录上。我不想公开将 my-service.internal.jakeshomelab.me 与我的 IP 关联起来,无论人们是否可以访问它。我想要一个用于 Ghost 服务的 SSL 证书。为了解决这个问题,我求助于DNS-01。老实说,这对我来说是新的,但它的工作原理如下:购买域名(在本例中是从 Porkbun)。生成 Porkbun API 密钥并将其添加到具有域写入权限的 Coolify 环境中。修改 Coolify 的 Docker Compose 文件以使用lego 和 Porkbun API: - '--certificatesresolvers.letsencrypt.acme.dnschallenge=true' - '--certificatesresolvers.letsencrypt.acme.dnschallenge.provider=porkb
这篇文章对您有帮助吗?
订阅66必读
每日精选科技资讯,直达你的邮箱