本文档详细说明 OpenCode Bridge 的部署、升级和运维方法。
| 组件 | 版本要求 | 说明 |
|---|---|---|
| Node.js | >= 18.0.0 | 运行环境 |
| npm | >= 9.0.0 | 包管理器 |
| OpenCode | 最新版 | AI 编程助手 |
| 操作系统 | Linux / macOS / Windows | 支持的平台 |
Linux/macOS:
# 克隆项目
git clone https://github.com/HNGM-HP/opencode-bridge.git
cd opencode-bridge
# 执行部署脚本
chmod +x ./scripts/deploy.sh
./scripts/deploy.sh guideWindows PowerShell:
# 执行部署脚本
.\scripts\deploy.ps1 guide部署脚本会自动完成:
- ✅ 检测并引导安装 Node.js
- ✅ 检测并引导安装 OpenCode
- ✅ 安装项目依赖并编译
- ✅ 生成初始配置文件
# 1. 安装依赖
npm install
# 2. 编译项目
npm run build
# 3. 复制配置示例
cp .env.example .env
# 4. 编辑配置
vim .envLinux/macOS:
# 后台启动
./scripts/start.sh
# 前台运行(开发模式)
npm run devWindows:
# 后台启动
.\scripts\start.ps1
# 前台运行(开发模式)
npm run dev通过管理菜单安装 systemd 服务:
npm run manage:bridge
# 选择"安装并启动 systemd 服务"手动配置服务文件 /etc/systemd/system/opencode-bridge.service:
[Unit]
Description=OpenCode Bridge Service
After=network.target
[Service]
Type=simple
User=your-user
WorkingDirectory=/path/to/opencode-bridge
ExecStart=/usr/bin/node dist/index.js
Restart=always
RestartSec=10
[Install]
WantedBy=multi-user.target启用服务:
sudo systemctl daemon-reload
sudo systemctl enable opencode-bridge
sudo systemctl start opencode-bridge服务启动后,通过浏览器访问:
http://localhost:4098
| 功能模块 | 说明 |
|---|---|
| 配置管理 | 实时修改平台配置、可靠性配置等 |
| Cron 管理 | 创建、启用/禁用、删除定时任务 |
| 服务状态 | 查看运行时长、版本、数据库路径 |
| 模型列表 | 获取 OpenCode 可用模型 |
| 服务控制 | 远程重启服务 |
| 平台状态 | 查看各平台连接状态 |
- 首次访问时在 Web 面板设置
- 存储在 SQLite 数据库中
- 可在 Web 面板中修改
配置参数存储在 SQLite 数据库中:
- 数据库路径:
data/config.db - 首次迁移: 启动时自动从
.env迁移 - 备份位置: 原
.env备份为.env.backup
| 方式 | 说明 |
|---|---|
| Web 面板 | 访问 http://localhost:4098 可视化修改 |
| SQLite 工具 | 直接编辑 data/config.db 数据库 |
| 配置文件 | 首次启动前在 .env 中配置(会自动迁移) |
完成基础部署后,需要在 Web 面板中配置各平台参数:
| 平台 | 配置文档 |
|---|---|
| 飞书 | 飞书配置指南 |
| Discord | Discord 配置指南 |
| 企业微信 | 企业微信配置指南 |
| Telegram | Telegram 配置指南 |
| QQ 配置指南 | |
| WhatsApp 配置指南 | |
| 微信个人号 | 微信个人号配置指南 |
详见 可靠性指南。
# OpenCode 连接(建议本地运行才能触发自动救援)
OPENCODE_HOST=localhost
OPENCODE_PORT=4096
# Cron 基础开关
RELIABILITY_CRON_ENABLED=true
RELIABILITY_CRON_API_ENABLED=true
RELIABILITY_CRON_API_HOST=127.0.0.1
RELIABILITY_CRON_API_PORT=4097
# 主动心跳开关(默认关闭)
RELIABILITY_PROACTIVE_HEARTBEAT_ENABLED=false
RELIABILITY_INBOUND_HEARTBEAT_ENABLED=false
# 可靠性策略
RELIABILITY_LOOPBACK_ONLY=true
RELIABILITY_HEARTBEAT_INTERVAL_MS=1800000
RELIABILITY_FAILURE_THRESHOLD=3
RELIABILITY_WINDOW_MS=90000
RELIABILITY_COOLDOWN_MS=300000
RELIABILITY_REPAIR_BUDGET=3
# 宕机救援配置文件
OPENCODE_CONFIG_FILE=./opencode.json# 方式一:使用升级脚本
node scripts/deploy.mjs upgrade
# 方式二:手动升级
git pull origin main
npm install
npm run build
node scripts/stop.mjs
npm run startnpm update -g opencode-bridge| 文件 | 说明 |
|---|---|
logs/service.log |
服务标准输出 |
logs/service.err |
服务错误输出 |
logs/bridge.pid |
后台进程 PID |
logs/reliability-audit.jsonl |
可靠性审计日志 |
建议配置 logrotate 进行日志轮转:
# /etc/logrotate.d/opencode-bridge
/path/to/opencode-bridge/logs/*.log {
daily
rotate 7
compress
missingok
notifempty
}
# 备份数据目录
tar -czvf opencode-bridge-backup.tar.gz data/
# 备份配置
cp data/config.db data/config.db.backup# 恢复数据目录
tar -xzvf opencode-bridge-backup.tar.gz
# 恢复配置
cp data/config.db.backup data/config.db详见 故障排查文档。
| 问题 | 解决方案 |
|---|---|
| 服务无法启动 | 检查端口占用,查看 logs/service.err |
| Web 面板无法访问 | 检查防火墙设置,确认服务已启动 |
| 平台无响应 | 检查平台配置,查看服务日志 |
| OpenCode 连接失败 | 检查 OPENCODE_HOST 和 OPENCODE_PORT 配置 |
# 检查 OpenCode 本地环境
node scripts/deploy.mjs opencode-check
# 查看服务日志
tail -f logs/service.log
# 查看错误日志
tail -f logs/service.err
# 检查进程状态
ps aux | grep opencode-bridge| 场景 | CPU | 内存 | 磁盘 |
|---|---|---|---|
| 个人使用 | 2 核 | 2GB | 10GB |
| 小团队(<10 人) | 4 核 | 4GB | 20GB |
| 中型团队(<50 人) | 8 核 | 8GB | 50GB |
- 数据库优化: 定期清理过期会话数据
- 日志管理: 配置日志轮转,避免磁盘占满
- 会话清理: 启用自动清理无效会话
- 可靠性配置: 根据实际需求调整心跳间隔
- 访问控制: 配置 Web 面板访问密码
- 网络隔离: 将服务部署在内网环境
- 权限最小化: 只授予必要的平台权限
- 定期备份: 定期备份配置数据库
- 日志审计: 定期检查操作日志