| 目标 | 最短入口 | 说明 |
|---|---|---|
| 本地快速启动 | ./start.sh | 自动发现大部分依赖与路径 |
| 一键 bootstrap | python3 bootstrap.py | 适合仓库首次安装 |
| 后台守护启动 | ./ctl.sh start | 适合自托管 / VM / homelab |
| 查看状态 | ./ctl.sh status | PID、uptime、端口、日志、/health |
| 查看日志 | ./ctl.sh logs --lines 100 | 读 ~/.hermes/webui.log |
| 停止服务 | ./ctl.sh stop | 停掉后台 daemon |
| 直接跑服务 | HERMES_WEBUI_PORT=8787 venv/bin/python server.py | 仅在你知道 Hermes 依赖已就绪时使用 |
| 健康检查 | curl http://127.0.0.1:8787/health | 验证服务是否可用 |
server.py api/:+ ,纯 Python 标准库 HTTP 服务。static/:,纯 vanilla JS,不走构建链。~/.hermes/webui:会话、状态、工作区信息放在 一带的状态目录中。git clone https://github.com/nesquena/hermes-webui.git hermes-webui
cd hermes-webui
python3 bootstrap.py
# 或者
./start.sh./ctl.sh start
./ctl.sh status
./ctl.sh logs --lines 100
./ctl.sh restart
./ctl.sh stopcd /path/to/hermes-agent
HERMES_WEBUI_PORT=8787 venv/bin/python /path/to/hermes-webui/server.pyworkspace.js api/workspace.py127.0.0.1| 项目 | 发现顺序 / 默认值 |
|---|---|
| Hermes agent 目录 | HERMES_WEBUI_AGENT_DIR → $HERMES_HOME/hermes-agent → 相邻 ../hermes-agent |
| Python 可执行文件 | agent venv → 本仓库 .venv → system python3 |
| 状态目录 | HERMES_WEBUI_STATE_DIR → $HERMES_HOME/webui |
| 默认工作区 | HERMES_WEBUI_DEFAULT_WORKSPACE → ~/workspace → 状态目录 |
| 端口 | HERMES_WEBUI_PORT → 命令行参数 → 8787 |
export HERMES_WEBUI_AGENT_DIR=/path/to/hermes-agent
export HERMES_WEBUI_PYTHON=/path/to/python
export HERMES_WEBUI_PORT=9000
export HERMES_WEBUI_HOST=0.0.0.0
export HERMES_WEBUI_PASSWORD='your-password'
./start.sh| 变量 | 默认值 | 作用 |
|---|---|---|
| HERMES_WEBUI_AGENT_DIR | auto-discovered | Hermes Agent checkout 路径 |
| HERMES_WEBUI_PYTHON | auto-discovered | Python 可执行文件 |
| HERMES_WEBUI_HOST | 127.0.0.1 | 监听地址 |
| HERMES_WEBUI_PORT | 8787 | WebUI 端口 |
| HERMES_WEBUI_STATE_DIR | $HERMES_HOME/webui | 会话和状态存储 |
| HERMES_WEBUI_DEFAULT_WORKSPACE | ~/workspace | 默认工作区 |
| HERMES_WEBUI_DEFAULT_MODEL | provider default | 可选模型覆盖 |
| HERMES_WEBUI_PASSWORD | unset | 开启密码认证 |
| HERMES_WEBUI_CSP_CONNECT_EXTRA | unset | 额外允许的 connect-src origins |
| HERMES_WEBUI_EXTENSION_DIR | unset | 扩展目录 |
| HERMES_HOME | ~/.hermes | Hermes 基础状态目录 |
| HERMES_CONFIG_PATH | $HERMES_HOME/config.yaml | Hermes 配置文件 |
| 场景 | 推荐方式 |
|---|---|
| 本机 / 开发调试 | start.sh / bootstrap.py |
| 自托管 VM | ctl.sh |
| 需要隔离依赖 | Docker / Compose |
| 想看完整容器指南 | docs/docker.md |
docs/docker.md127.0.0.1| 方式 | 场景 | 关键点 |
|---|---|---|
| SSH tunnel | 临时远程访问 | ssh -N -L 8787:127.0.0.1:8787 user@host |
| Tailscale | 手机 / 多设备 | HERMES_WEBUI_HOST=0.0.0.0 + HERMES_WEBUI_PASSWORD |
| 直接公网监听 | 不推荐 | 要特别注意认证与暴露面 |
127.0.0.1HERMES_WEBUI_HOSTcd hermes-webui
pytest tests/ -v --timeout=60/healthHERMES_WEBUI_AGENT_DIRHERMES_HOME| 症状 | 常见原因 | 优先修法 |
|---|---|---|
| PermissionError at startup | UID mismatch | .env 里设 UID=$(id -u) |
| .env: permission denied | 0600 权限校验 | HERMES_SKIP_CHMOD=1 |
| workspace 为空 | 挂载 UID 不匹配 | 检查 volume 与 UID |
| 宿主机 localhost 访问失败 | 容器内 localhost 指向容器自身 | 改用 host.docker.internal / host.containers.internal |
| git: command not found | 两容器方案限制 | 改单容器或扩展镜像 |
./start.sh./ctl.sh start/status/logsstart.shserver.py api/