Agent工坊

【Agent工坊】OpenCode + systemd:搭建永不掉线的AI编程助手(含完整配置)

Claude Code 又限速了?每月 $200 的订阅还动不动封号?一个 HN 热帖(327 points)给出了答案:用 OpenCode + systemd 自建一套永不掉线的AI编程平台,成本直降 90%,还能跨设备使用。

为什么越来越多的开发者逃离 Claude Code?

最近 6 月 16 日的 Hacker News 热榜上,一篇「Homelab AI Dev Platform」的帖子拿下了 327 points。作者分享了他从 Claude Code 迁移到 OpenCode 的完整经历——触发点很直接:

  1. Token 限制越来越严:Claude Code 在高峰期的速率限制让开发者干等几分钟才能继续
  2. 成本失控:重度 AI 编程用户每月 token 费用轻松突破 $200-$500
  3. 会话无法持久化:关掉终端就丢失上下文,每次都要重新喂背景信息
  4. 跨设备无法共享:在笔记本上写的代码审查进度,台式机上完全看不到

评论区一位用户一针见血:「Claude Code is becoming the iPhone of coding — great UX, locked-in ecosystem, premium pricing」——Claude Code 正在变成编程界的 iPhone:体验好、生态封闭、溢价惊人。

但独立开发者不需要「编程界的 iPhone」,他们需要的是「编程界的 Linux」——可控、可定制、可长期运行。

这就是 OpenCode 的角色。

OpenCode 是什么?为什么它能替代 Claude Code?

OpenCode 是一个开源的 AI 编程助手 Web UI,它本身不绑定任何模型后端——你可以接入 Claude、GPT、本地模型(Ollama/LM Studio),任意切换。核心能力:

能力 OpenCode Claude Code
模型后端 任意切换(Claude/GPT/本地) 仅 Claude
持久化会话 ✅ systemd 服务常驻 ❌ 终端关闭即丢失
Web UI ✅ 浏览器随时访问 ❌ 仅 CLI
Git 集成 ✅ 内置 Git 管理服务 ⚠️ 需手动
跨设备 ✅ 局域网/公网可访问 ❌ 单机本地
定价 免费开源 $20-$200/月
Docker 集成 ✅ AI 辅助容器健康检查 ❌ 无

对于一人公司来说,OpenCode 的最大价值不是「免费」,而是可控性——你可以让它 7×24 小时运行,随时通过浏览器接入,不会因为 token 耗尽而中断工作流。

实战:10 分钟搭建 OpenCode 开发平台

下面是一套完整的搭建步骤,基于 Debian/Ubuntu 服务器。如果你已经有一台家用 NAS、树莓派或云服务器($5/月 VPS 足矣),跟着走就行。

Step 1:安装 OpenCode

OpenCode 以容器化部署为主,推荐用 Docker Compose:

# docker-compose.yml
version: '3.8'
services:
  opencode:
    image: ghcr.io/opencode-ai/opencode:latest
    container_name: opencode
    ports:
      - "3000:3000"
    volumes:
      - ./data:/app/data
      - ./workspace:/workspace
      - ~/.gitconfig:/home/node/.gitconfig:ro
    environment:
      - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY}
      - OPENAI_API_KEY=${OPENAI_API_KEY}
      - OLLAMA_HOST=http://host.docker.internal:11434
    restart: unless-stopped
# 拉取并启动
mkdir -p ~/opencode-platform/{data,workspace}
cd ~/opencode-platform

# 创建 .env 文件(填入你的 API Key)
echo 'ANTHROPIC_API_KEY=sk-ant-xxx' > .env
echo 'OPENAI_API_KEY=sk-xxx' >> .env

# 启动
docker compose up -d

# 验证
curl http://localhost:3000/api/health
# 返回 {"status":"ok"} 即成功

Step 2:配置 systemd 常驻服务

Docker 自带了 restart: unless-stopped,但为了更精细的控制(包括健康检查、日志轮转、开机自启延迟),建议再套一层 systemd:

# /etc/systemd/system/opencode.service
[Unit]
Description=OpenCode AI Dev Platform
After=docker.service network-online.target
Wants=network-online.target

[Service]
Type=simple
User=admin
WorkingDirectory=/home/admin/opencode-platform
ExecStartPre=/usr/bin/docker compose -f /home/admin/opencode-platform/docker-compose.yml pull
ExecStart=/usr/bin/docker compose -f /home/admin/opencode-platform/docker-compose.yml up
ExecStop=/usr/bin/docker compose -f /home/admin/opencode-platform/docker-compose.yml down
ExecReload=/usr/bin/docker compose -f /home/admin/opencode-platform/docker-compose.yml restart
Restart=always
RestartSec=10
TimeoutStartSec=120

# 日志管理 — 防止磁盘被填满
StandardOutput=journal
StandardError=journal
SyslogIdentifier=opencode

[Install]
WantedBy=multi-user.target
# 启用服务
sudo systemctl daemon-reload
sudo systemctl enable opencode
sudo systemctl start opencode

# 确认运行状态
sudo systemctl status opencode
# ● opencode.service - OpenCode AI Dev Platform
#    Active: active (running) since Mon 2026-06-16 17:00:00 UTC

# 查看实时日志
sudo journalctl -u opencode -f

Step 3:接入 Git 仓库

OpenCode 支持直接挂载 workspace 目录,但更推荐的做法是通过 Git 管理代码——AI 修改后你可以 review diff,回滚也方便。

# 在 workspace 目录初始化 Git 仓库
cd ~/opencode-platform/workspace
git init
git config user.email "ai-assistant@opencode.local"
git config user.name "OpenCode AI"

# 配置 pre-commit hook — AI 的每次修改自动 commit
cat > .git/hooks/post-commit << 'EOF'
#!/bin/bash
echo "[OpenCode] Auto-committed AI changes at $(date)" >> /tmp/opencode-git.log
EOF
chmod +x .git/hooks/post-commit

关键提示:给 AI 单独配置 Git 用户名和邮箱,这样所有 AI 提交都清晰标记,方便日后审计。

Step 4:让 AI 管理 Docker 容器

这是 Homelab 场景的核心价值——AI 不只是写代码,还能帮你做运维:

# 给 OpenCode 容器挂载 Docker socket(只读)
# 在 docker-compose.yml 的 opencode 服务下添加:
volumes:
  - /var/run/docker.sock:/var/run/docker.sock:ro

然后在 OpenCode 的 Prompt 中配置运维指令:

你是运维 + 开发一体化的 AI 助手。你可以:

1. 查看容器状态:docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Image}}"
2. 检查容器日志:docker logs --tail 50 <container>
3. 审核镜像更新:比较 running image 与 latest tag 的 digest
4. 健康检查:对关键服务执行 curl health endpoint 验证

每次代码修改后,先 commit 再通知我。运维操作前,先说明你要做什么、为什么。

这样,你的 Homelab 就有了一个能主动发现问题、自动修复代码、还能帮你管理容器的 AI 助手。

成本对比:Claude Code vs OpenCode 自建

项目 Claude Code Pro OpenCode 自建
月费 $200(Anthropic Max) VPS:$5/月 + API 按量
API 费用 包含在内(但有速率限制) 按实际用量(约 $20-50/月)
模型选择 仅 Claude Claude + GPT + 本地模型
速率限制 高峰期排队 无限制(取决于 API tier)
跨设备 ❌ 不支持 ✅ 浏览器随处访问
持久化 ❌ 终端关闭即丢 ✅ 常驻服务,7×24
月总成本 ~$200 ~$30-80
年化 $2,400 $360-960

年化节省 $1,440-$2,040,降幅 60-85%。

如果你有家用服务器/NAS 可以跑 Docker,VPS 的 $5/月都可以省掉——成本直接变成纯 API 费用。

进阶玩法:三件套组合拳

独立开发者「rsgm」在 HN 帖子中分享了他实际在用的组合:

OpenCode Web UI(前端交互)
    ↓ Git 管理代码变更
Gitea 自建 Git 服务(代码仓库)
    ↓ Webhook 触发
Woodpecker CI(持续集成)
    ↓ 自动部署
Docker Compose(生产环境)

这套架构的精妙之处在于:AI 修改的代码经过 Git → CI → 自动部署的完整流水线,每一步都可审计、可回滚。不是「AI 直接搞生产环境」这种危险操作,而是把 AI 当成团队里一个需要 Code Review 的初级工程师。

常见问题

Q:OpenCode 的代码质量比 Claude Code 差吗?

A:OpenCode 本身不生成代码——它只是交互界面。代码质量取决于你接入的模型后端。用 Claude Opus 4 后端,质量与 Claude Code 完全相同;切到本地模型,质量取决于模型本身。

Q:自建方案的延迟如何?

A:API 延迟与 Claude Code 一致(都是调 Anthropic/OpenAI 的 API)。如果接入本地模型(Ollama + RTX 4090),延迟更低但质量取决于模型。

Q:安全性怎么样?公网暴露安全吗?

A:强烈建议:
1. 用 Tailscale/WireGuard 组内网,不要直接暴露公网
2. 或者在前面套一个 Nginx + Let's Encrypt + HTTP Basic Auth
3. Docker socket 挂载必须是 :ro(只读)

# /etc/nginx/sites-available/opencode
server {
    listen 443 ssl;
    server_name opencode.yourdomain.com;

    ssl_certificate /etc/letsencrypt/live/opencode.yourdomain.com/fullchain.pem;
    ssl_certificate_key /etc/letsencrypt/live/opencode.yourdomain.com/privkey.pem;

    auth_basic "OpenCode";
    auth_basic_user_file /etc/nginx/.htpasswd;

    location / {
        proxy_pass http://127.0.0.1:3000;
        proxy_http_version 1.1;
        proxy_set_header Upgrade $http_upgrade;
        proxy_set_header Connection "upgrade";
    }
}

Q:适合完全没有编程基础的人吗?

A:如果你能跟着本文的 docker-compose.yml 和 systemd 配置跑通,就适合。门槛就是会用 Docker 和 Linux 命令行。

总结

这次 HN 327 points 热帖的核心启示是:AI 编程助手的「基础设施化」正在发生。就像当年开发者从 GitHub 迁移到自建 Gitea、从 AWS 迁移到自建 Homelab——当工具足够成熟、成本差距足够大,自建方案的吸引力就会爆发。

对于一人公司来说,OpenCode + systemd 的组合意味着:
- ✅ 不再担心 Claude Code 封号/限速
- ✅ 成本降低 60-85%
- ✅ 7×24 小时在线,随时接入
- ✅ 完全掌控数据和会话

立即行动:今天就花 10 分钟搭一套,把今晚的代码审查交给它跑一夜,明天早上看结果。


AI创业 #Agent工坊 #OpenCode #自建AI #一人公司 #Docker #systemd #成本优化