- Dockerfile 55.4%
- Shell 44.6%
- Create ~/.storage/containers/ygg-hermes-gateway/identity directory on install - Mount identity directory as /root/.ssh inside the container - Generate ed25519 SSH key pair on first startup (preserves existing keys) - Create SSH config with AddKeysToAgent and IdentityFile settings - Document SSH key support in README |
||
|---|---|---|
| ext | ||
| quadlet-files | ||
| s6/hermes-gateway | ||
| .gitignore | ||
| .gitmodules | ||
| build.sh | ||
| Containerfile | ||
| install.sh | ||
| README.md | ||
YGG-HERMES-GATEWAY
YGG-HERMES-GATEWAY runs the Hermes Agent messaging gateway in a yggdrasil container, allowing the gateway to operate on the Yggdrasil mesh network.
Hermes is a self-improving AI agent that supports Telegram, Discord, Slack, WhatsApp, Signal, and other messaging platforms through a unified gateway process.
SETUP
-
Clone the repo and initialize submodules:
git submodule update --init --recursive -
Build the container:
./build.sh -
Install quadlet files and create storage dirs:
./install.sh -
Configure Hermes — run the setup wizard once to generate config:
podman run --rm -v ~/.storage/containers/ygg-hermes-gateway/hermes/data:/opt/data ygg-hermes-gateway hermes setupOr place your config files directly at:
~/.storage/containers/ygg-hermes-gateway/hermes/data/ -
Start the service:
systemctl --user enable --now ygg-hermes-gateway
CONFIGURATION
Hermes stores all state under HERMES_HOME (mounted at /opt/data). Key files:
config.yaml— main configuration (model, tools, gateway settings).env— API keys and secrets
See Hermes documentation for full configuration options.
To configure a specific LLM provider:
podman run --rm -v ~/.storage/containers/ygg-hermes-gateway/hermes/data:/opt/data ygg-hermes-gateway hermes model
To configure gateway platforms:
podman run --rm -v ~/.storage/containers/ygg-hermes-gateway/hermes/data:/opt/data ygg-hermes-gateway hermes gateway setup
SSH KEY SUPPORT
On first startup, the container generates an ed25519 SSH key pair and stores it at:
~/.storage/containers/ygg-hermes-gateway/identity/
This directory is mounted as /root/.ssh inside the container. The keys persist across container restarts and rebuilds.
The private key (id_ed25519) is used for git operations and any SSH connections the agent makes. The public key (id_ed25519.pub) can be added to remote servers or GitHub/GitLab accounts to authorize the agent.
To view the public key:
cat ~/.storage/containers/ygg-hermes-gateway/identity/id_ed25519.pub
Existing keys in the identity directory are preserved and reused on subsequent startups.
YGGDRASIL IP
The yggdrasil IPv6 address is written at boot to:
~/.storage/containers/ygg-hermes-gateway/yggdrasil/export/ip.txt
Read from the host:
cat ~/.storage/containers/ygg-hermes-gateway/yggdrasil/export/ip.txt
AI DISCLAIMER
This project is partially or fully developed with the assistance of AI tools. Review all generated code, configurations, and documentation before deploying to production.