feat(hermes-web-ui): 添加 Hermes Web UI 应用及相关配置

添加 Hermes Web UI 应用,包含多语言支持、Docker 配置、数据持久化及文档说明
删除已废弃的 OpenClaw 应用及相关文件
This commit is contained in:
arch3rPro
2026-05-10 02:02:23 +08:00
parent 859bf90472
commit 12b719c7be
18 changed files with 273 additions and 199 deletions
+54
View File
@@ -0,0 +1,54 @@
# Hermes Web UI
Hermes Agent 的全功能 Web 管理面板。管理 AI 聊天会话、监控使用量与成本、配置平台渠道、调度定时任务、浏览技能等,全部通过简洁响应式 Web 界面完成。
## 功能特点
- **AI 聊天** — 实时流式 SSE 传输,多会话管理,Markdown 渲染与代码高亮
- **平台渠道** — 统一配置 8 大平台(Telegram、Discord、Slack、WhatsApp、Matrix、飞书、微信、企业微信)
- **用量分析** — Token 使用量统计、成本追踪、模型分布图表
- **定时任务** — 创建、编辑、暂停、恢复、删除 Cron 任务
- **模型管理** — 自动发现/添加提供商,支持 OpenAI 兼容接口
- **多配置文件** — 创建、克隆、导入/导出 Hermes 配置文件
- **文件浏览器** — 浏览、上传、下载远程后端文件
- **群聊** — 多 Agent 聊天室,支持 @提及和上下文压缩
- **技能与记忆** — 浏览已安装技能,用户笔记管理
- **日志查看** — Agent/网关/错误日志过滤与查看
- **身份认证** — 基于 Token 的认证(首次运行自动生成)
- **Web 终端** — 集成终端,支持多会话
## 使用说明
### 架构说明
本应用包含两个服务:
- **hermes-agent**:使用 1Panel 官方维护的 Hermes Agent 镜像([1panel/hermes-agent](https://hub.docker.com/r/1panel/hermes-agent)
- **hermes-webui**:社区维护的全功能 Web 管理面板
### 默认端口
- Web 界面: `6060`(可在安装时修改)
### 默认认证
- 首次运行时自动生成 Auth Token,可通过容器日志查看:
```bash
docker logs <容器名> | grep token
```
- 也可通过环境变量 `AUTH_TOKEN` 设置自定义 Token
- 如需禁用认证,可将 `AUTH_DISABLED` 设置为 `true`
### 数据目录
- `./data` — Hermes Agent 运行时数据(会话、配置、配置文件)
- `./webui-data` — Web UI 数据(Auth Token 等)
### 前置条件
使用前请确保已在 Web 界面的模型管理页面配置好 AI 模型的 API 密钥。
## 相关链接
- Hermes Web UI: https://github.com/EKKOLearnAI/hermes-web-ui
- Hermes Agent: https://github.com/NousResearch/hermes-agent
- 1Panel 官方 Hermes Agent: https://github.com/1Panel-dev/appstore/tree/dev/apps/hermes-agent
+54
View File
@@ -0,0 +1,54 @@
# Hermes Web UI
A full-featured web dashboard for Hermes Agent. Manage AI chat sessions, monitor usage & costs, configure platform channels, schedule cron jobs, browse skills — all from a clean, responsive web interface.
## Features
- **AI Chat** — Real-time streaming via SSE, multi-session management, Markdown rendering with syntax highlighting
- **Platform Channels** — Unified configuration for 8 platforms (Telegram, Discord, Slack, WhatsApp, Matrix, Feishu, WeChat, WeCom)
- **Usage Analytics** — Token usage breakdown, cost tracking, model distribution charts
- **Scheduled Jobs** — Create, edit, pause, resume, delete cron jobs
- **Model Management** — Auto-discover providers, add custom OpenAI-compatible endpoints
- **Multi-Profile** — Create, clone, import/export Hermes profiles
- **File Browser** — Browse, upload, download files on remote backends
- **Group Chat** — Multi-agent chat rooms with @mention support and context compression
- **Skills & Memory** — Browse installed skills, user notes management
- **Log Viewer** — Filter and view agent/gateway/error logs
- **Authentication** — Token-based auth (auto-generated on first run)
- **Web Terminal** — Integrated terminal with multi-session support
## Usage
### Architecture
This app includes two services:
- **hermes-agent**: Uses the official 1Panel-maintained Hermes Agent image ([1panel/hermes-agent](https://hub.docker.com/r/1panel/hermes-agent))
- **hermes-webui**: Community-maintained full-featured web dashboard
### Default Port
- Web UI: `6060` (configurable during installation)
### Default Credentials
- Auth Token is auto-generated on first run. View it via container logs:
```bash
docker logs <container-name> | grep token
```
- You can also set a custom token via `AUTH_TOKEN` environment variable
- Set `AUTH_DISABLED=true` to disable authentication
### Data Directories
- `./data` — Hermes Agent runtime data (sessions, configs, profiles)
- `./webui-data` — Web UI data (auth token, etc.)
### Prerequisites
Make sure to configure your AI model API keys via the Web UI's Model Management page before use.
## Links
- Hermes Web UI: https://github.com/EKKOLearnAI/hermes-web-ui
- Hermes Agent: https://github.com/NousResearch/hermes-agent
- Official 1Panel Hermes Agent: https://github.com/1Panel-dev/appstore/tree/dev/apps/hermes-agent
+33
View File
@@ -0,0 +1,33 @@
name: Hermes Web UI
tags:
- AI
title: Hermes Agent 的全功能 Web 管理面板
description: Hermes Agent 的全功能 Web 管理面板
additionalProperties:
key: hermes-web-ui
name: Hermes Web UI
type: website
tags:
- AI
shortDescZh: Hermes Agent 的全功能 Web 管理面板
shortDescEn: A full-featured web dashboard for Hermes Agent
description:
en: A full-featured web dashboard for Hermes Agent. Manage AI chat sessions, monitor usage & costs, configure platform channels, schedule cron jobs, browse skills — all from a clean, responsive web interface.
ja: Hermes Agent のフル機能 Web ダッシュボード。AIチャットセッション管理、使用量・コスト監視、プラットフォームチャンネル設定、cronジョブスケジュール、スキル閲覧など。
ms: Papan pemuka web berciri penuh untuk Hermes Agent
pt-br: Um painel web completo para Hermes Agent
ru: Полнофункциональная веб-панель для Hermes Agent
ko: Hermes Agent를 위한 완전한 기능의 웹 대시보드
zh-Hant: Hermes Agent 的全功能 Web 管理面板
zh: Hermes Agent 的全功能 Web 管理面板。管理 AI 聊天会话、监控使用量与成本、配置平台渠道、调度定时任务、浏览技能等,全部通过简洁响应式 Web 界面完成。
tr: Hermes Agent için tam özellikli web kontrol paneli
es-es: Un panel web completo para Hermes Agent
crossVersionUpdate: true
limit: 0
recommend: 13
website: https://github.com/EKKOLearnAI/hermes-web-ui
github: https://github.com/EKKOLearnAI/hermes-web-ui
document: https://github.com/EKKOLearnAI/hermes-web-ui
architectures:
- amd64
- arm64
+21
View File
@@ -0,0 +1,21 @@
additionalProperties:
formFields:
- default: 6060
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web UI Port
labelZh: Web UI 端口
required: true
rule: paramPort
type: number
label:
en: Web UI Port
es-es: Puerto web
ja: Web UIポート
ms: Port Web UI
pt-br: Porta da Web UI
ru: Порт веб-интерфейса
ko: 웹 UI 포트
zh-Hant: Web UI 埠
zh: Web UI 端口
tr: Web UI Bağlantı Noktası
@@ -0,0 +1,45 @@
services:
hermes-agent:
container_name: ${CONTAINER_NAME}-agent
image: 1panel/hermes-agent:latest
restart: always
networks:
- 1panel-network
environment:
HOME: /opt/data/home
HERMES_HOME: /opt/data
HERMES_DASHBOARD: "1"
HERMES_DASHBOARD_HOST: 0.0.0.0
HERMES_DASHBOARD_PORT: 9119
TERM: xterm-256color
volumes:
- ./data:/opt/data
- /etc/localtime:/etc/localtime
init: true
labels:
createdBy: "Apps"
hermes-webui:
container_name: ${CONTAINER_NAME}
image: ekkoye8888/hermes-web-ui:latest
entrypoint: ["node", "dist/server/index.js"]
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:6060"
volumes:
- ./data:/opt/data
- ./webui-data:/home/agent/.hermes-web-ui
environment:
- PORT=6060
- HERMES_HOME=/opt/data
- HERMES_BIN=/opt/hermes/.venv/bin/hermes
- AUTH_DISABLED=false
- PATH=/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
depends_on:
- hermes-agent
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

+21
View File
@@ -0,0 +1,21 @@
additionalProperties:
formFields:
- default: 6060
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web UI Port
labelZh: Web UI 端口
required: true
rule: paramPort
type: number
label:
en: Web UI Port
es-es: Puerto web
ja: Web UIポート
ms: Port Web UI
pt-br: Porta da Web UI
ru: Порт веб-интерфейса
ko: 웹 UI 포트
zh-Hant: Web UI 埠
zh: Web UI 端口
tr: Web UI Bağlantı Noktası
@@ -0,0 +1,45 @@
services:
hermes-agent:
container_name: ${CONTAINER_NAME}-agent
image: 1panel/hermes-agent:2026.5.7
restart: always
networks:
- 1panel-network
environment:
HOME: /opt/data/home
HERMES_HOME: /opt/data
HERMES_DASHBOARD: "1"
HERMES_DASHBOARD_HOST: 0.0.0.0
HERMES_DASHBOARD_PORT: 9119
TERM: xterm-256color
volumes:
- ./data:/opt/data
- /etc/localtime:/etc/localtime
init: true
labels:
createdBy: "Apps"
hermes-webui:
container_name: ${CONTAINER_NAME}
image: ekkoye8888/hermes-web-ui:v0.5.15
entrypoint: ["node", "dist/server/index.js"]
restart: always
networks:
- 1panel-network
ports:
- "${PANEL_APP_PORT_HTTP}:6060"
volumes:
- ./data:/opt/data
- ./webui-data:/home/agent/.hermes-web-ui
environment:
- PORT=6060
- HERMES_HOME=/opt/data
- HERMES_BIN=/opt/hermes/.venv/bin/hermes
- AUTH_DISABLED=false
- PATH=/opt/hermes/.venv/bin:/opt/data/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
depends_on:
- hermes-agent
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
@@ -1,31 +0,0 @@
additionalProperties:
formFields:
- default: 18789
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web UI Port
labelZh: Web UI 端口
required: true
rule: paramPort
type: number
label:
en: Web UI Port
zh: Web UI 端口
zh-Hant: Web UI 埠
- default: ""
edit: true
envKey: OPENCLAW_GATEWAY_TOKEN
labelEn: Gateway Token
labelZh: 网关令牌
random: true
required: false
rule: paramCommon
type: password
label:
en: Gateway Token
zh: 网关令牌
zh-Hant: 閘道權杖
description:
en: Token used to access the OpenClaw Dashboard. Append ?token=your-token to the Dashboard URL when needed.
zh: 用于访问 OpenClaw Dashboard 的令牌。需要时可在访问地址后追加 ?token=你的令牌。
zh-Hant: 用於訪問 OpenClaw Dashboard 的權杖。需要時可在訪問地址後追加 ?token=你的權杖。
@@ -1,36 +0,0 @@
services:
openclaw-zh:
container_name: ${CONTAINER_NAME}
image: 1186258278/openclaw-zh:2026.5.7-nightly.202605080122
restart: always
networks:
- 1panel-network
environment:
HOME: /root
TERM: xterm-256color
OPENCLAW_DISABLE_BONJOUR: "1"
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
volumes:
- ./data/conf:/root/.openclaw
ports:
- ${PANEL_APP_PORT_HTTP}:18789
command: openclaw gateway run --allow-unconfigured
init: true
healthcheck:
test:
[
"CMD",
"node",
"-e",
"fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
]
interval: 3m
timeout: 10s
start_period: 15s
retries: 3
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
-19
View File
@@ -1,19 +0,0 @@
# OpenClaw Chinese
OpenClaw Chinese 是 OpenClaw 的汉化发行版。OpenClaw 是开源、自托管的个人 AI 助理,提供本地运行的 Web Dashboard 和 Gateway。
## 使用说明
安装后访问 `http://服务器 IP:端口` 打开 Dashboard。默认端口为 `18789`
建议在安装参数中设置 `OPENCLAW_GATEWAY_TOKEN`,用于 Dashboard 访问认证。浏览器打开页面后,可以在 URL 后追加 `?token=你的令牌` 进行访问。
## 数据目录
应用数据会持久化到安装目录下的 `data/conf`,对应容器内 `/root/.openclaw`
## 参考
- 项目仓库:https://github.com/1186258278/OpenClawChineseTranslation
- Docker 说明:https://github.com/1186258278/OpenClawChineseTranslation/blob/main/DOCKER_README.md
- OpenClaw 官网:https://openclaw.ai/
-19
View File
@@ -1,19 +0,0 @@
# OpenClaw Chinese
OpenClaw Chinese is a localized Chinese distribution of OpenClaw. OpenClaw is an open-source, self-hosted personal AI assistant with a local Web Dashboard and Gateway.
## Usage
After installation, open `http://server-ip:port` in your browser. The default port is `18789`.
It is recommended to set `OPENCLAW_GATEWAY_TOKEN` during installation for Dashboard authentication. You can append `?token=your-token` to the URL when opening the Dashboard.
## Data Directory
Application data is persisted in `data/conf` under the installation directory, mapped to `/root/.openclaw` inside the container.
## References
- Repository: https://github.com/1186258278/OpenClawChineseTranslation
- Docker guide: https://github.com/1186258278/OpenClawChineseTranslation/blob/main/DOCKER_README.md
- OpenClaw website: https://openclaw.ai/
-27
View File
@@ -1,27 +0,0 @@
name: OpenClaw Chinese
tags:
- AI / 大模型
title: OpenClaw 汉化发行版,开源、自托管的个人 AI 助理
description: OpenClaw 汉化发行版,开源、自托管的个人 AI 助理
additionalProperties:
key: openclaw-zh
name: OpenClaw Chinese
tags:
- AI
shortDescZh: OpenClaw 汉化发行版,开源、自托管的个人 AI 助理
shortDescEn: Chinese localized OpenClaw distribution, a self-hosted personal AI assistant
description:
en: Chinese localized OpenClaw distribution, a self-hosted personal AI assistant
zh: OpenClaw 汉化发行版,开源、自托管的个人 AI 助理
zh-Hant: OpenClaw 漢化發行版,開源、自托管的個人 AI 助理
type: website
crossVersionUpdate: true
limit: 0
recommend: 0
batchInstallSupport: true
website: https://openclaw.qt.cool/
github: https://github.com/1186258278/OpenClawChineseTranslation
document: https://github.com/1186258278/OpenClawChineseTranslation/blob/main/DOCKER_README.md
architectures:
- amd64
- arm64
-31
View File
@@ -1,31 +0,0 @@
additionalProperties:
formFields:
- default: 18789
edit: true
envKey: PANEL_APP_PORT_HTTP
labelEn: Web UI Port
labelZh: Web UI 端口
required: true
rule: paramPort
type: number
label:
en: Web UI Port
zh: Web UI 端口
zh-Hant: Web UI 埠
- default: ""
edit: true
envKey: OPENCLAW_GATEWAY_TOKEN
labelEn: Gateway Token
labelZh: 网关令牌
random: true
required: false
rule: paramCommon
type: password
label:
en: Gateway Token
zh: 网关令牌
zh-Hant: 閘道權杖
description:
en: Token used to access the OpenClaw Dashboard. Append ?token=your-token to the Dashboard URL when needed.
zh: 用于访问 OpenClaw Dashboard 的令牌。需要时可在访问地址后追加 ?token=你的令牌。
zh-Hant: 用於訪問 OpenClaw Dashboard 的權杖。需要時可在訪問地址後追加 ?token=你的權杖。
@@ -1,36 +0,0 @@
services:
openclaw-zh:
container_name: ${CONTAINER_NAME}
image: 1186258278/openclaw-zh:latest
restart: always
networks:
- 1panel-network
environment:
HOME: /root
TERM: xterm-256color
OPENCLAW_DISABLE_BONJOUR: "1"
OPENCLAW_GATEWAY_TOKEN: ${OPENCLAW_GATEWAY_TOKEN}
volumes:
- ./data/conf:/root/.openclaw
ports:
- ${PANEL_APP_PORT_HTTP}:18789
command: openclaw gateway run --allow-unconfigured
init: true
healthcheck:
test:
[
"CMD",
"node",
"-e",
"fetch('http://127.0.0.1:18789/healthz').then((r)=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))"
]
interval: 3m
timeout: 10s
start_period: 15s
retries: 3
labels:
createdBy: "Apps"
networks:
1panel-network:
external: true
Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.3 KiB