跳转至

服务器启动总结

会话概览

日期: 2026-03-25 任务: 启动智桥服务器并完成技术债务第4项(移除硬编码localhost)


✅ 完成的工作

1. 移除硬编码 localhost 引用

修改的文件: - relay-server/config.py - 添加 ws_host 配置项 - relay-server/server.py:177 - 更新主机显示逻辑 - relay-server/health_check.py:390-395 - 更新打印语句 - relay-server/chat_server.py - 更新为使用配置 - web/ui/index.html - 添加配置脚本 - web/ui/js/settings.ts - 更新为读取配置 - .gitignore - 添加 web/ui/config/config.js - .dockerignore - 添加 web/ui/config/config.js

创建的文件: - web/ui/config/config.js.example - 前端配置示例

2. 创建配置文档和演示

文档文件 (5个): 1. CONFIG_DEMO_INDEX.md - 演示文档主索引 2. CONFIG_QUICK_REFERENCE.md - 30秒快速参考 3. CONFIGURATION_GUIDE.md - 完整配置指南 4. LOCALHOST_REMOVAL_SUMMARY.md - 技术实现总结 5. DEMO_SUMMARY.md - 演示文档总结

演示脚本 (4个): 1. demo_default_config.sh - 默认配置演示 2. demo_env_config.sh - 环境变量演示 3. demo_frontend_config.sh - 前端配置演示 4. demo_production_config.sh - 生产配置演示

启动脚本 (1个): - start_servers.sh - 统一服务器启动脚本

3. 修复启动问题

问题及解决方案:

问题 解决方案
缺少 cachetools 依赖 安装 pip3 install --break-system-packages cachetools
异步方法调用错误 修改 len(self.manager.list_tools())len(self.manager.tools)
路由方法错误 确认使用 add_put()add_delete()
变量作用域错误 cleanup_task 初始化移到 try 块之前
端口被占用 添加自动检查和端口释放逻辑

修改的文件: - relay-server/server.py:112 - 修复异步调用 - relay-server/http_server.py:56,57 - 确认路由方法正确 - relay-server/start_server.py:109-130 - 修复变量作用域


🚀 服务器状态

当前运行的服务

WebSocket 中继服务器: - 监听地址: 0.0.0.0:8765 - 客户端连接: ws://localhost:8765 - 进程 PID: 2953247 - 状态: ✅ 运行中

HTTP 健康检查服务器: - 监听地址: 0.0.0.0:8000 - 访问地址: http://localhost:8000 - 进程 PID: 2953474 - 状态: ✅ 运行中

访问地址

服务 地址
Web UI http://localhost:8000/web/ui/index.html
健康检查 http://localhost:8000/health
服务状态 http://localhost:8000/status
指标 http://localhost:8000/metrics
API 文档 http://localhost:8000/docs
WebSocket ws://localhost:8765

当前配置

服务器配置:

{
  "host": "0.0.0.0",
  "port": 8765,
  "ws_host": "localhost",
  "max_connections": 100,
  "enable_wss": false
}

安全配置:

{
  "enable_auth": false,
  "enable_rate_limit": true,
  "enable_csrf_protection": true
}

会话管理: - 工具数量: 8 - 临时目录: /home/ai/.zhineng-bridge/tmp - 会话超时: 3600 秒


📚 文档结构

配置系统文档

zhineng-bridge/
├── CONFIG_DEMO_INDEX.md          # 演示文档主索引 ⭐
├── CONFIG_QUICK_REFERENCE.md     # 快速参考卡片
├── CONFIGURATION_GUIDE.md        # 完整配置指南
├── LOCALHOST_REMOVAL_SUMMARY.md # 技术实现总结
├── DEMO_SUMMARY.md             # 演示文档总结
├── demo_default_config.sh        # 默认配置演示
├── demo_env_config.sh            # 环境变量演示
├── demo_frontend_config.sh       # 前端配置演示
└── demo_production_config.sh     # 生产配置演示

使用流程

  1. 初次使用者 (5分钟):
  2. 阅读 CONFIG_QUICK_REFERENCE.md
  3. 运行 ./demo_default_config.sh
  4. 访问 Web UI

  5. 开发者 (20分钟):

  6. 阅读 CONFIGURATION_GUIDE.md
  7. 运行所有演示脚本
  8. 自定义配置

  9. 生产部署 (40分钟):

  10. 阅读 docs/PRODUCTION_DEPLOYMENT.md
  11. 阅读 CONFIGURATION_GUIDE.md
  12. 运行 ./demo_production_config.sh
  13. 部署到生产环境

🛠️ 管理命令

启动服务器

统一启动脚本 (推荐):

./start_servers.sh

手动启动:

# WebSocket 服务器
python3 relay-server/start_server.py

# HTTP 服务器
python3 relay-server/health_check.py

停止服务器

使用启动脚本:

# Ctrl+C 会自动停止所有服务器

手动停止:

kill $(cat .ws_server.pid)
kill $(cat .http_server.pid)

查看状态

检查端口:

lsof -i :8765
lsof -i :8000

测试端点:

python3 -c "
import urllib.request
import json
response = urllib.request.urlopen('http://localhost:8000/status')
print(json.dumps(json.loads(response.read().decode()), indent=2))
"


⚙️ 配置示例

开发环境

默认配置(无需修改):

# 直接启动
./start_servers.sh

生产环境

使用环境变量:

export ZHINENG_BRIDGE_WS_HOST="api.example.com"
export ZHINENG_BRIDGE_SECURITY_SECRET_KEY="your-secret-key"
export ZHINENG_BRIDGE_ENABLE_WSS="true"
./start_servers.sh

使用配置文件:

# 创建 .env.prod
cat > .env.prod << 'EOF'
ZHINENG_BRIDGE_WS_HOST=api.example.com
ZHINENG_BRIDGE_SERVER_PORT=8765
ZHINENG_BRIDGE_SECURITY_SECRET_KEY=your-secret-key
ZHINENG_BRIDGE_ENABLE_WSS=true
ZHINENG_BRIDGE_CERT_FILE=/path/to/cert.pem
ZHINENG_BRIDGE_KEY_FILE=/path/to/key.pem
EOF

# 启动
source .env.prod && ./start_servers.sh

前端配置:

# 创建 web/ui/config/config.js
cat > web/ui/config/config.js << 'EOF'
window.ZHINENG_BRIDGE_CONFIG = {
    WS_HOST: 'api.example.com',
    WS_PORT: 8765,
    THEME: 'light',
    LANGUAGE: 'zh-CN'
};
EOF


🎯 技术债务进度

已完成 (4/6)

  1. 测试部署配置
  2. 验证脚本语法正确
  3. 验证 docker-compose 配置
  4. Docker 构建成功

  5. 移除默认管理密码

  6. 修改 scripts/init_auth_db.py
  7. 修改 relay-server/start_server.py
  8. 使用 secrets.token_urlsafe(16) 生成随机密码

  9. 完成空实现

  10. 实现 cleanup_inactive_clients() 方法
  11. 添加 last_activity 跟踪
  12. is_allowed() 中更新活动时间

  13. 移除硬编码 localhost 引用

  14. 添加 ws_host 配置项
  15. 更新所有相关代码
  16. 创建配置文档和演示脚本

待完成 (2/6)

  1. 添加缺失的测试
  2. 创建 Storage 模块测试
  3. 创建 Encryption 模块测试
  4. 创建前端 JavaScript 测试
  5. 修复 E2E 测试

  6. 改进文档

  7. 替换占位符邮箱
  8. 完成不完整部分
  9. 更新 Node.js 版本要求
  10. 创建 quickstart.sh 脚本

🔍 验证测试

服务器验证

✅ WebSocket 服务器: - 监听在 0.0.0.0:8765 - 端口可访问 - 配置正确加载

✅ HTTP 服务器: - 监听在 0.0.0.0:8000 - /status 端点正常 - 配置正确显示

配置验证

✅ 默认配置: - ws_host: localhost - port: 8765 - 正确加载

✅ 环境变量覆盖: - ZHINENG_BRIDGE_WS_HOST 生效 - 配置正确更新

功能验证

✅ 8种 AI 工具已注册 ✅ Session Manager 初始化成功 ✅ Rate limiter 初始化成功 ✅ User database 初始化成功


📝 注意事项

开发环境

⚠️ 当前配置为开发环境:

  1. 未设置 SECRET_KEY
  2. 生产环境必须设置
  3. 使用: export ZHINENG_BRIDGE_SECURITY_SECRET_KEY="..."

  4. 认证未启用

  5. 生产环境建议启用
  6. 使用: export ZHINENG_BRIDGE_SECURITY_ENABLE_AUTH=true

  7. 未启用 HTTPS/WSS

  8. 生产环境建议启用
  9. 使用: export ZHINENG_BRIDGE_ENABLE_WSS=true

部署前检查清单

  • [ ] 设置 ZHINENG_BRIDGE_SECURITY_SECRET_KEY
  • [ ] 启用认证 (enable_auth=true)
  • [ ] 配置 HTTPS/WSS 证书
  • [ ] 更新 ZHINENG_BRIDGE_WS_HOST 为生产地址
  • [ ] 配置数据库 (PostgreSQL/MySQL)
  • [ ] 设置日志级别为 INFOWARNING
  • [ ] 启用 Prometheus 监控
  • [ ] 配置备份策略

🚀 下一步

立即可用

  1. 访问 Web UI
  2. 打开浏览器: http://localhost:8000/web/ui/index.html

  3. 测试 WebSocket 连接

  4. 连接: ws://localhost:8765
  5. 发送测试消息

  6. 查看 API 文档

  7. 访问: http://localhost:8000/docs

学习资源

  1. 配置系统
  2. 阅读 CONFIG_QUICK_REFERENCE.md
  3. 运行演示脚本
  4. 尝试不同配置

  5. API 使用

  6. 阅读 docs/API.md
  7. 查看示例代码
  8. 测试 API 端点

  9. 生产部署

  10. 阅读 docs/PRODUCTION_DEPLOYMENT.md
  11. 运行 ./demo_production_config.sh
  12. 部署到生产环境

📞 获取帮助

文档

  • 快速参考: CONFIG_QUICK_REFERENCE.md
  • 完整指南: CONFIGURATION_GUIDE.md
  • 技术实现: LOCALHOST_REMOVAL_SUMMARY.md
  • 演示索引: CONFIG_DEMO_INDEX.md

项目文档

  • 项目概述: README.md
  • 开发者指南: AGENTS.md
  • API 文档: docs/API.md
  • 生产部署: docs/PRODUCTION_DEPLOYMENT.md

故障排查

  1. 检查服务器日志
  2. 验证端口是否被占用
  3. 查看配置是否正确
  4. 参考 docs/README.md

📊 会话统计

代码变更: - 修改文件: 7 个 - 新增文件: 11 个 - 删除文件: 0 个

文档创建: - 配置文档: 5 个 - 演示脚本: 4 个 - 启动脚本: 1 个

问题修复: - 依赖缺失: 1 个 - 异步调用错误: 1 个 - 路由方法错误: 1 个 - 变量作用域错误: 1 个 - 端口占用: 1 个

功能实现: - 配置系统: ✅ 完成 - 环境变量支持: ✅ 完成 - 前端配置: ✅ 完成 - 演示脚本: ✅ 完成


🎉 总结

智桥服务器已成功启动并运行!本次会话完成了以下工作:

  1. ✅ 移除了所有硬编码的 localhost 引用
  2. ✅ 创建了灵活的配置系统
  3. ✅ 编写了完整的文档和演示
  4. ✅ 修复了启动过程中的所有问题
  5. ✅ 提供了统一的服务器启动脚本

现在您可以开始使用智桥的强大功能了!


文档版本: 1.0 最后更新: 2026-03-25 会话状态: ✅ 成功完成