Spaces:
Paused
Paused
feat: overhaul README documentation and add .env.example configuration template
Browse files- .env.example +50 -0
- README.md +102 -145
.env.example
ADDED
|
@@ -0,0 +1,50 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
# ============================================================================
|
| 2 |
+
# HuggingMess - Hermes Agent on Hugging Face Spaces
|
| 3 |
+
# Configuration Reference
|
| 4 |
+
# ============================================================================
|
| 5 |
+
|
| 6 |
+
# ββ REQUIRED: Core Configuration ββ
|
| 7 |
+
# Your LLM provider API key
|
| 8 |
+
LLM_API_KEY=your_api_key_here
|
| 9 |
+
|
| 10 |
+
# LLM model to use (e.g. google/gemini-2.0-flash, openai/gpt-4o)
|
| 11 |
+
LLM_MODEL=google/gemini-2.0-flash
|
| 12 |
+
|
| 13 |
+
# Bearer token for the proxied Hermes API routes and Dashboard
|
| 14 |
+
# Generate: openssl rand -hex 32
|
| 15 |
+
GATEWAY_TOKEN=your_gateway_token_here
|
| 16 |
+
|
| 17 |
+
# ββ OPTIONAL: Chat Integrations ββ
|
| 18 |
+
# Get bot token from: https://t.me/BotFather
|
| 19 |
+
# TELEGRAM_BOT_TOKEN=your_bot_token_here
|
| 20 |
+
|
| 21 |
+
# Allowed Telegram User IDs (comma-separated numeric IDs)
|
| 22 |
+
# TELEGRAM_ALLOWED_USERS=123456789,987654321
|
| 23 |
+
|
| 24 |
+
# ββ OPTIONAL: Cloudflare Proxy & Keep-Alive ββ
|
| 25 |
+
# Cloudflare API token for automatic Worker proxy and KeepAlive setup
|
| 26 |
+
# CLOUDFLARE_WORKERS_TOKEN=your_cloudflare_token_here
|
| 27 |
+
|
| 28 |
+
# Alternatively, manual proxy config:
|
| 29 |
+
# CLOUDFLARE_PROXY_URL=https://your-proxy.workers.dev
|
| 30 |
+
# CLOUDFLARE_PROXY_SECRET=your_proxy_secret_here
|
| 31 |
+
|
| 32 |
+
# Extra domains to proxy, comma-separated. Set to "*" to proxy all.
|
| 33 |
+
# CLOUDFLARE_PROXY_DOMAINS=api.sendgrid.com,slack.com
|
| 34 |
+
|
| 35 |
+
# ββ OPTIONAL: Workspace Backup to HF Dataset ββ
|
| 36 |
+
# HF token with write access for private Dataset backup
|
| 37 |
+
HF_TOKEN=hf_your_token_here
|
| 38 |
+
|
| 39 |
+
# Dataset name (default: huggingmess-backup)
|
| 40 |
+
# BACKUP_DATASET_NAME=huggingmess-backup
|
| 41 |
+
|
| 42 |
+
# Backup interval in seconds (default: 180)
|
| 43 |
+
SYNC_INTERVAL=180
|
| 44 |
+
|
| 45 |
+
# ββ OPTIONAL: Advanced ββ
|
| 46 |
+
# Telegram mode (webhook/polling)
|
| 47 |
+
TELEGRAM_MODE=webhook
|
| 48 |
+
|
| 49 |
+
# Include .env in backups (default: false)
|
| 50 |
+
# SYNC_INCLUDE_ENV=false
|
README.md
CHANGED
|
@@ -9,204 +9,161 @@ pinned: true
|
|
| 9 |
license: mit
|
| 10 |
secrets:
|
| 11 |
- name: LLM_API_KEY
|
| 12 |
-
description: "Your LLM provider API key.
|
| 13 |
- name: LLM_MODEL
|
| 14 |
-
description: "
|
|
|
|
|
|
|
| 15 |
- name: TELEGRAM_BOT_TOKEN
|
| 16 |
description: "Telegram bot token from @BotFather."
|
| 17 |
- name: TELEGRAM_ALLOWED_USERS
|
| 18 |
-
description: "Comma-separated
|
| 19 |
-
- name: GATEWAY_TOKEN
|
| 20 |
-
description: "Bearer token for the proxied Hermes API routes."
|
| 21 |
- name: HF_TOKEN
|
| 22 |
-
description: "Hugging Face token with write access for
|
| 23 |
- name: CLOUDFLARE_WORKERS_TOKEN
|
| 24 |
-
description: "Cloudflare API token for automatic
|
| 25 |
---
|
| 26 |
|
| 27 |
-
|
| 28 |
-
|
| 29 |
-
|
| 30 |
-
|
| 31 |
-
|
| 32 |
|
| 33 |
-
|
| 34 |
-
2. Add these secrets in Space Settings:
|
| 35 |
|
| 36 |
-
|
| 37 |
-
| :--- | :--- | :--- |
|
| 38 |
-
| `LLM_MODEL` | Optional | Model override. If unset, HuggingMess leaves Hermes default/restored config alone. |
|
| 39 |
-
| `LLM_API_KEY` | Usually | Used to populate the provider-specific env var automatically |
|
| 40 |
-
| `TELEGRAM_BOT_TOKEN` | For Telegram | Bot token from BotFather |
|
| 41 |
-
| `TELEGRAM_ALLOWED_USERS` | Recommended | Comma-separated numeric Telegram user IDs |
|
| 42 |
-
| `GATEWAY_TOKEN` | Recommended | Bearer token for `/v1/*` API routes |
|
| 43 |
-
| `HF_TOKEN` | Optional | Enables private Dataset backup named `huggingmess-backup` |
|
| 44 |
-
| `CLOUDFLARE_WORKERS_TOKEN` | Optional | Auto-creates Workers for Telegram proxy and `/health` keep-awake |
|
| 45 |
-
|
| 46 |
-
## Access Control
|
| 47 |
|
| 48 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 49 |
|
| 50 |
-
|
| 51 |
-
|
| 52 |
-
```text
|
| 53 |
-
GATEWAY_TOKEN=your-strong-password-or-token
|
| 54 |
-
```
|
| 55 |
|
| 56 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 57 |
|
| 58 |
-
|
| 59 |
-
- Paste `GATEWAY_TOKEN` into that field.
|
| 60 |
-
- HuggingMess stores an HTTP-only session cookie for the dashboard routes.
|
| 61 |
-
- API routes under `/v1/*` accept `Authorization: Bearer <GATEWAY_TOKEN>`.
|
| 62 |
|
| 63 |
-
##
|
| 64 |
|
| 65 |
-
|
| 66 |
|
| 67 |
-
|
| 68 |
-
2. **Native Hermes style:** set Hermes variables directly, such as `HERMES_MODEL`, `HERMES_INFERENCE_PROVIDER`, and the provider API key.
|
| 69 |
|
| 70 |
-
|
| 71 |
|
| 72 |
-
|
|
|
|
|
|
|
| 73 |
|
| 74 |
-
|
| 75 |
-
| :--- | :--- |
|
| 76 |
-
| `LLM_MODEL` | `google/gemini-2.5-flash` |
|
| 77 |
-
| `LLM_API_KEY` | Your Google AI Studio API key |
|
| 78 |
|
| 79 |
-
|
| 80 |
|
| 81 |
-
|
| 82 |
-
model:
|
| 83 |
-
default: gemini-2.5-flash
|
| 84 |
-
provider: gemini
|
| 85 |
-
```
|
| 86 |
|
| 87 |
-
|
| 88 |
|
| 89 |
-
|
|
|
|
| 90 |
|
| 91 |
-
|
| 92 |
-
| :--- | :--- |
|
| 93 |
-
| `HERMES_MODEL` | `gemini-2.5-flash` |
|
| 94 |
-
| `HERMES_INFERENCE_PROVIDER` | `gemini` |
|
| 95 |
-
| `GOOGLE_API_KEY` or `GEMINI_API_KEY` | Your Google AI Studio API key |
|
| 96 |
|
| 97 |
-
|
| 98 |
|
| 99 |
-
| Provider |
|
| 100 |
| :--- | :--- | :--- |
|
| 101 |
-
|
|
| 102 |
-
| OpenRouter | `openrouter/anthropic/claude-
|
| 103 |
-
| Anthropic | `anthropic/
|
| 104 |
-
| OpenAI | `openai/
|
| 105 |
-
|
|
| 106 |
-
|
| 107 |
-
## Telegram on HF Spaces
|
| 108 |
-
|
| 109 |
-
When `TELEGRAM_BOT_TOKEN` and `SPACE_HOST` are present, HuggingMess defaults Telegram to webhook mode:
|
| 110 |
-
|
| 111 |
-
```bash
|
| 112 |
-
TELEGRAM_WEBHOOK_URL=https://your-space.hf.space/telegram
|
| 113 |
-
TELEGRAM_WEBHOOK_PORT=8765
|
| 114 |
-
```
|
| 115 |
-
|
| 116 |
-
If you need polling instead, set:
|
| 117 |
-
|
| 118 |
-
```bash
|
| 119 |
-
TELEGRAM_MODE=polling
|
| 120 |
-
```
|
| 121 |
-
|
| 122 |
-
Hermes requires numeric Telegram IDs for allowlists. You can use either Hermes-native `TELEGRAM_ALLOWED_USERS` or the HuggingClaw-style aliases `TELEGRAM_USER_ID` / `TELEGRAM_USER_IDS`.
|
| 123 |
-
|
| 124 |
-
## Cloudflare Workers
|
| 125 |
|
| 126 |
-
|
| 127 |
|
| 128 |
-
|
| 129 |
-
2. generate a shared proxy secret,
|
| 130 |
-
3. set Hermes Telegram `base_url` to `https://worker.example.workers.dev/bot`,
|
| 131 |
-
4. set `base_file_url` to `https://worker.example.workers.dev/file/bot`,
|
| 132 |
-
5. create a second scheduled keep-awake Worker that pings your Space `/health` route.
|
| 133 |
-
|
| 134 |
-
Manual mode is also supported:
|
| 135 |
-
|
| 136 |
-
```bash
|
| 137 |
-
CLOUDFLARE_PROXY_URL=https://your-worker.workers.dev
|
| 138 |
-
CLOUDFLARE_PROXY_SECRET=optional-shared-secret
|
| 139 |
-
```
|
| 140 |
|
| 141 |
-
|
|
|
|
|
|
|
| 142 |
|
| 143 |
-
##
|
| 144 |
|
| 145 |
-
|
| 146 |
|
| 147 |
-
``
|
| 148 |
-
|
| 149 |
-
```
|
| 150 |
|
| 151 |
-
|
| 152 |
|
| 153 |
-
|
| 154 |
-
*/10 * * * *
|
| 155 |
-
```
|
| 156 |
|
| 157 |
-
|
| 158 |
|
| 159 |
-
|
| 160 |
-
| :--- | :--- | :--- |
|
| 161 |
-
| `CLOUDFLARE_KEEPALIVE_ENABLED` | `true` | Set `false` to skip keep-awake Worker setup |
|
| 162 |
-
| `CLOUDFLARE_KEEPALIVE_CRON` | `*/10 * * * *` | Cloudflare cron expression |
|
| 163 |
-
| `CLOUDFLARE_KEEPALIVE_URL` | `https://<auto-detected-space-host>/health` | URL to ping |
|
| 164 |
-
| `CLOUDFLARE_KEEPALIVE_WORKER_NAME` | derived from space host | Custom Worker name |
|
| 165 |
|
| 166 |
-
|
| 167 |
|
| 168 |
-
|
| 169 |
|
| 170 |
| Variable | Default | Description |
|
| 171 |
| :--- | :--- | :--- |
|
| 172 |
-
| `
|
| 173 |
-
| `
|
| 174 |
-
| `
|
|
|
|
|
|
|
|
|
|
| 175 |
|
| 176 |
-
|
| 177 |
-
|
| 178 |
-
## Local Development
|
| 179 |
|
| 180 |
```bash
|
| 181 |
docker compose up --build
|
|
|
|
|
|
|
| 182 |
```
|
| 183 |
|
| 184 |
-
|
| 185 |
|
| 186 |
-
``
|
| 187 |
-
|
| 188 |
-
``
|
|
|
|
|
|
|
| 189 |
|
| 190 |
-
##
|
| 191 |
|
| 192 |
-
|
| 193 |
-
|
| 194 |
-
|
| 195 |
-
|
| 196 |
-
| `/status` | JSON status |
|
| 197 |
-
| `/app/` | Proxied Hermes dashboard/app |
|
| 198 |
-
| `/v1/*` | Proxied Hermes OpenAI-compatible API routes |
|
| 199 |
-
| `/telegram` | Telegram webhook endpoint |
|
| 200 |
|
| 201 |
-
|
| 202 |
|
| 203 |
-
|
| 204 |
-
Authorization: Bearer <GATEWAY_TOKEN>
|
| 205 |
-
```
|
| 206 |
|
| 207 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 208 |
|
| 209 |
-
-
|
| 210 |
-
|
| 211 |
-
- [Hermes Docker Docs](https://hermes-agent.nousresearch.com/docs/user-guide/docker/)
|
| 212 |
-
- [Hermes Telegram Docs](https://hermes-agent.nousresearch.com/docs/user-guide/messaging/telegram)
|
|
|
|
| 9 |
license: mit
|
| 10 |
secrets:
|
| 11 |
- name: LLM_API_KEY
|
| 12 |
+
description: "Your LLM provider API key (e.g. Anthropic, OpenAI, Google, OpenRouter)."
|
| 13 |
- name: LLM_MODEL
|
| 14 |
+
description: "Model ID to use, e.g. google/gemini-2.0-flash or openai/gpt-4o."
|
| 15 |
+
- name: GATEWAY_TOKEN
|
| 16 |
+
description: "Strong token to secure your dashboard and API (generate: openssl rand -hex 32)."
|
| 17 |
- name: TELEGRAM_BOT_TOKEN
|
| 18 |
description: "Telegram bot token from @BotFather."
|
| 19 |
- name: TELEGRAM_ALLOWED_USERS
|
| 20 |
+
description: "Comma-separated list of numeric user IDs allowed to use the bot."
|
|
|
|
|
|
|
| 21 |
- name: HF_TOKEN
|
| 22 |
+
description: "Hugging Face token with write access. Used for automatic workspace backup."
|
| 23 |
- name: CLOUDFLARE_WORKERS_TOKEN
|
| 24 |
+
description: "Cloudflare API token for automatic Worker proxy and KeepAlive setup."
|
| 25 |
---
|
| 26 |
|
| 27 |
+
<!-- Badges -->
|
| 28 |
+
[](https://github.com/NousResearch/hermes-agent)
|
| 29 |
+
[](https://opensource.org/licenses/MIT)
|
| 30 |
+
[](https://huggingface.co/spaces)
|
| 31 |
+
[](https://github.com/NousResearch/hermes-agent)
|
| 32 |
|
| 33 |
+
**Self-hosted Hermes AI agent gateway β free, no server needed.** HuggingMess runs [Nous Research Hermes Agent](https://github.com/NousResearch/hermes-agent) on HuggingFace Spaces, providing a 24/7 personal AI assistant. It includes a premium management dashboard, automatic persistent backup to HF Datasets, and built-in connectivity fixes to bypass platform restrictions. Deploy in minutes on the free HF Spaces tier with full data persistence.
|
|
|
|
| 34 |
|
| 35 |
+
## Table of Contents
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 36 |
|
| 37 |
+
- [β¨ Features](#-features)
|
| 38 |
+
- [π Quick Start](#-quick-start)
|
| 39 |
+
- [π Access Control](#-access-control)
|
| 40 |
+
- [π€ LLM Providers](#-llm-providers)
|
| 41 |
+
- [π± Telegram Setup](#-telegram-setup)
|
| 42 |
+
- [π Cloudflare Proxy](#-cloudflare-proxy)
|
| 43 |
+
- [πΎ Backup & Persistence](#-backup--persistence)
|
| 44 |
+
- [π Staying Alive](#-staying-alive)
|
| 45 |
+
- [π Security & Advanced](#-security--advanced)
|
| 46 |
+
- [π» Local Development](#-local-development)
|
| 47 |
+
- [ποΈ Architecture](#οΈ-architecture)
|
| 48 |
+
- [π Troubleshooting](#-troubleshooting)
|
| 49 |
+
- [π More Projects](#-more-projects)
|
| 50 |
|
| 51 |
+
## β¨ Features
|
|
|
|
|
|
|
|
|
|
|
|
|
| 52 |
|
| 53 |
+
- π§ **Hermes Core:** Runs the powerful Hermes agent framework for multi-modal chat and tool use.
|
| 54 |
+
- π **Secure by Default:** Adds a custom auth layer to protect the Hermes dashboard and API routes.
|
| 55 |
+
- π **Built-in Connectivity:** Includes transparent outbound proxying via Cloudflare Workers for Telegram, Google APIs, and more.
|
| 56 |
+
- π **Premium Dashboard:** Beautiful Web UI at `/` for real-time monitoring of uptime, sync health, and agent status.
|
| 57 |
+
- πΎ **Persistent Backup:** Automatically syncs agent state, chats, and config to a private HF Dataset.
|
| 58 |
+
- β° **Easy Keep-Alive:** Uses `CLOUDFLARE_WORKERS_TOKEN` to automatically set up a cron-triggered keep-awake worker at boot.
|
| 59 |
+
- π³ **Optimized Infrastructure:** Minimal resource usage with clean startup logs and production-ready proxying.
|
| 60 |
|
| 61 |
+
## π Quick Start
|
|
|
|
|
|
|
|
|
|
| 62 |
|
| 63 |
+
### Step 1: Duplicate this Space
|
| 64 |
|
| 65 |
+
[](https://huggingface.co/spaces/somratpro/HuggingMess?duplicate=true)
|
| 66 |
|
| 67 |
+
### Step 2: Add Your Secrets
|
|
|
|
| 68 |
|
| 69 |
+
Navigate to your new Space's **Settings β Variables and secrets**, and add the following three under **Secrets**:
|
| 70 |
|
| 71 |
+
- `LLM_API_KEY` β Your provider API key (e.g., Anthropic, OpenAI, OpenRouter).
|
| 72 |
+
- `LLM_MODEL` β The model ID string (e.g., `google/gemini-2.0-flash` or `openai/gpt-4o`).
|
| 73 |
+
- `GATEWAY_TOKEN` β A custom password to secure your dashboard.
|
| 74 |
|
| 75 |
+
### Step 3: Access Your Dashboard
|
|
|
|
|
|
|
|
|
|
| 76 |
|
| 77 |
+
Once the build is complete, visit your Space's public URL. You will see the HuggingMess management dashboard. Click **Open Hermes UI** and enter your `GATEWAY_TOKEN` to access the agent interface.
|
| 78 |
|
| 79 |
+
## π Access Control
|
|
|
|
|
|
|
|
|
|
|
|
|
| 80 |
|
| 81 |
+
Hermes' built-in dashboard is local-first. HuggingMess adds a secure wrapper:
|
| 82 |
|
| 83 |
+
- **Dashboard:** Opening `/app/` requires your `GATEWAY_TOKEN`.
|
| 84 |
+
- **API:** Routes under `/v1/*` (OpenAI-compatible) require `Authorization: Bearer <GATEWAY_TOKEN>`.
|
| 85 |
|
| 86 |
+
## π€ LLM Providers
|
|
|
|
|
|
|
|
|
|
|
|
|
| 87 |
|
| 88 |
+
HuggingMess automatically maps your `LLM_MODEL` and `LLM_API_KEY` to the correct Hermes configuration.
|
| 89 |
|
| 90 |
+
| Provider | Prefix | Example `LLM_MODEL` |
|
| 91 |
| :--- | :--- | :--- |
|
| 92 |
+
| **Google** | `google/` | `google/gemini-2.0-flash` |
|
| 93 |
+
| **OpenRouter** | `openrouter/` | `openrouter/anthropic/claude-3.5-sonnet` |
|
| 94 |
+
| **Anthropic** | `anthropic/` | `anthropic/claude-3-opus-latest` |
|
| 95 |
+
| **OpenAI** | `openai/` | `openai/gpt-4o` |
|
| 96 |
+
| **HuggingFace** | `huggingface/` | `huggingface/meta-llama/Llama-3.3-70B-Instruct` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 97 |
|
| 98 |
+
## π± Telegram Setup *(Optional)*
|
| 99 |
|
| 100 |
+
To use Hermes via Telegram:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 101 |
|
| 102 |
+
1. Add `TELEGRAM_BOT_TOKEN` from [@BotFather](https://t.me/BotFather).
|
| 103 |
+
2. Add `TELEGRAM_ALLOWED_USERS` (comma-separated numeric IDs) to restrict access.
|
| 104 |
+
3. Add `CLOUDFLARE_WORKERS_TOKEN` to bypass HF network restrictions automatically.
|
| 105 |
|
| 106 |
+
## π Cloudflare Proxy
|
| 107 |
|
| 108 |
+
HuggingFace Spaces often block outbound connections to external APIs. HuggingMess handles this automatically:
|
| 109 |
|
| 110 |
+
1. Add `CLOUDFLARE_WORKERS_TOKEN` as a Space secret.
|
| 111 |
+
2. Restart the Space.
|
|
|
|
| 112 |
|
| 113 |
+
HuggingMess will auto-provision a Worker proxy for Telegram and other restricted traffic, and set up a keep-awake cron.
|
| 114 |
|
| 115 |
+
## πΎ Backup & Persistence
|
|
|
|
|
|
|
| 116 |
|
| 117 |
+
Set `HF_TOKEN` with **Write** access to enable backup. HuggingMess syncs all agent data to a private Dataset named `huggingmess-backup` every 180 seconds.
|
| 118 |
|
| 119 |
+
## π Staying Alive *(Recommended on Free HF Spaces)*
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 120 |
|
| 121 |
+
Your Space will automatically be kept awake by a background Cloudflare Worker when you configure the `CLOUDFLARE_WORKERS_TOKEN` secret. The worker uses a cron trigger to regularly ping your Space's `/health` endpoint. The dashboard displays the current keep-alive worker status.
|
| 122 |
|
| 123 |
+
## π Security & Advanced
|
| 124 |
|
| 125 |
| Variable | Default | Description |
|
| 126 |
| :--- | :--- | :--- |
|
| 127 |
+
| `GATEWAY_TOKEN` | β | Token for dashboard and API auth |
|
| 128 |
+
| `HF_TOKEN` | β | HF token with write access for backups |
|
| 129 |
+
| `CLOUDFLARE_WORKERS_TOKEN` | β | Cloudflare API token for proxy & keep-awake |
|
| 130 |
+
| `SYNC_INTERVAL` | `180` | Backup frequency in seconds |
|
| 131 |
+
| `CLOUDFLARE_KEEPALIVE_ENABLED` | `true` | Set `false` to disable keep-awake worker |
|
| 132 |
+
| `TELEGRAM_MODE` | `webhook` | `webhook` or `polling` |
|
| 133 |
|
| 134 |
+
## π» Local Development
|
|
|
|
|
|
|
| 135 |
|
| 136 |
```bash
|
| 137 |
docker compose up --build
|
| 138 |
+
# Dashboard: http://localhost:7861
|
| 139 |
+
# Hermes App: http://localhost:7861/app/
|
| 140 |
```
|
| 141 |
|
| 142 |
+
## ποΈ Architecture
|
| 143 |
|
| 144 |
+
- **Dashboard (`/`)**: Real-time management and monitoring.
|
| 145 |
+
- **Hermes App (`/app/`)**: Secure proxied access to the Hermes UI.
|
| 146 |
+
- **API (`/v1/*`)**: Proxied OpenAI-compatible agent API.
|
| 147 |
+
- **Health Check (`/health`)**: Readiness probe for HF and Keep-Alive.
|
| 148 |
+
- **Sync Engine**: Python background task for HF Dataset persistence.
|
| 149 |
|
| 150 |
+
## π Troubleshooting
|
| 151 |
|
| 152 |
+
- **Telegram bot not responding:** Ensure `CLOUDFLARE_WORKERS_TOKEN` is set. Check logs for "Setting up Cloudflare proxy".
|
| 153 |
+
- **Authentication failed:** Clear your browser cookies or use an incognito window if your `GATEWAY_TOKEN` has changed.
|
| 154 |
+
- **Data not persisting:** Ensure `HF_TOKEN` has **Write** permissions.
|
| 155 |
+
- **Space keeps sleeping:** Add `CLOUDFLARE_WORKERS_TOKEN` as a Space secret to enable automatic keep-awake monitoring via Cloudflare Workers.
|
|
|
|
|
|
|
|
|
|
|
|
|
| 156 |
|
| 157 |
+
## π More Projects
|
| 158 |
|
| 159 |
+
Similar projects by [@somratpro](https://github.com/somratpro) β all free, one-click deploy on HF Spaces:
|
|
|
|
|
|
|
| 160 |
|
| 161 |
+
| Project | What it runs | HF Space | GitHub |
|
| 162 |
+
| :--- | :--- | :--- | :--- |
|
| 163 |
+
| **Hugging8n** | n8n β workflow & automation platform | [Space](https://huggingface.co/spaces/somratpro/Hugging8n) | [Repo](https://github.com/somratpro/hugging8n) |
|
| 164 |
+
| **HuggingClaw** | OpenClaw β Claude Code in the browser | [Space](https://huggingface.co/spaces/somratpro/HuggingClaw) | [Repo](https://github.com/somratpro/huggingclaw) |
|
| 165 |
+
| **HuggingClip** | Paperclip β AI agent orchestration platform | [Space](https://huggingface.co/spaces/somratpro/HuggingClip) | [Repo](https://github.com/somratpro/huggingclip) |
|
| 166 |
+
| **HuggingPost** | Postiz β social-media scheduler | [Space](https://huggingface.co/spaces/somratpro/HuggingPost) | [Repo](https://github.com/somratpro/huggingpost) |
|
| 167 |
|
| 168 |
+
---
|
| 169 |
+
*Made with β€οΈ by [@somratpro](https://github.com/somratpro)*
|
|
|
|
|
|