hermes-agent-custom/README.md
2026-05-28 15:26:19 -03:00

70 lines
2.4 KiB
Markdown

# Hermes Agent - Ollama Cloud Custom Image
Custom Docker image for deploying Hermes Agent on Railway with Ollama Cloud provider and Gemma 4 31B model.
## Why this exists
The Hermes gateway ignores environment variables for the primary model configuration and only reads from `config.yaml`. This image bakes the correct config at build time, solving the fallback to `anthropic/claude-opus-4.6` issue.
## Configuration
The image pre-configures:
- **Provider**: `ollama-cloud`
- **Model**: `gemma4:31b-cloud`
- **Config path**: `/opt/data/.hermes/config.yaml`
## Environment Variables (set in Railway)
```env
HERMES_HOME=/opt/data/.hermes
API_SERVER_ENABLED=true
API_SERVER_KEY=your-secure-key
GATEWAY_ALLOW_ALL_USERS=false
HERMES_SOUL_OVERRIDE=Your custom soul prompt here
HERMES_STT_PROVIDER=local
HERMES_TTS_PROVIDER=disabled
HERMES_GATEWAY_ENABLED=auto
OLLAMA_API_KEY=your-ollama-api-key
PORT=8642
TELEGRAM_BOT_TOKEN=your-bot-token
TELEGRAM_ALLOWED_USERS=your-user-id
TELEGRAM_HOME_CHANNEL=your-channel-id
MIKA_AGENT_INSTANCE_ID=agent-instance-uuid
MIKA_PLATFORM_FUNCTIONS_BASE_URL=https://<project>.supabase.co/functions/v1
MIKA_CREATE_CRONJOB_URL=https://<project>.supabase.co/functions/v1/create-cronjob-from-agent
MIKA_CREATE_SKILL_URL=https://<project>.supabase.co/functions/v1/create-skill-from-agent
MIKA_INTERNAL_FUNCTION_SECRET=shared-internal-secret
```
`MIKA_CREATE_CRONJOB_URL` and `MIKA_CREATE_SKILL_URL` are optional when
`MIKA_PLATFORM_FUNCTIONS_BASE_URL` or `SUPABASE_URL` is present. The Mika
platform provisions all of these automatically for managed Railway services.
`HERMES_GATEWAY_ENABLED=auto` starts `hermes gateway run` whenever
`TELEGRAM_BOT_TOKEN` is present, so the container consumes Telegram polling in
addition to serving the dashboard/proxy runtime API.
By default the entrypoint hides `API_SERVER_KEY` from the gateway subprocess so
Hermes does not start its native `api_server` adapter on the same public port as
the Mika runtime proxy. Set `HERMES_GATEWAY_API_SERVER_ENABLED=true` only if you
intentionally want the native adapter as a separate gateway platform.
## Validation
```bash
python3 -m unittest discover -s tests -v
python3 -m compileall plugins patches tests
git diff --check
```
## Deploy to Railway
1. Connect this GitHub repo to Railway
2. Railway auto-detects the Dockerfile
3. Add the environment variables above
4. Deploy
## License
MIT