mirror of
https://github.com/arch3rPro/1Panel-Appstore.git
synced 2026-05-10 03:01:38 +08:00
feat(hermes-web-ui): 添加 Hermes Web UI 应用及相关配置
添加 Hermes Web UI 应用,包含多语言支持、Docker 配置、数据持久化及文档说明 删除已废弃的 OpenClaw 应用及相关文件
This commit is contained in:
@@ -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
|
||||
@@ -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
|
||||
@@ -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
|
||||
@@ -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 |
@@ -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
|
||||
@@ -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/
|
||||
@@ -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/
|
||||
@@ -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
|
||||
@@ -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 |
Reference in New Issue
Block a user