yggdrasil container that runs the hermes gateway
  • Dockerfile 55.4%
  • Shell 44.6%
Find a file
sigil-03 2dbe458c7a feat: add persistent SSH key support
- 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
2026-06-11 14:30:47 -06:00
ext initial commit of repo files 2026-06-11 12:51:19 -06:00
quadlet-files feat: add persistent SSH key support 2026-06-11 14:30:47 -06:00
s6/hermes-gateway feat: add persistent SSH key support 2026-06-11 14:30:47 -06:00
.gitignore initial commit of repo files 2026-06-11 12:51:19 -06:00
.gitmodules initial commit of repo files 2026-06-11 12:51:19 -06:00
build.sh initial commit of repo files 2026-06-11 12:51:19 -06:00
Containerfile initial commit of repo files 2026-06-11 12:51:19 -06:00
install.sh feat: add persistent SSH key support 2026-06-11 14:30:47 -06:00
README.md feat: add persistent SSH key support 2026-06-11 14:30:47 -06:00

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

  1. Clone the repo and initialize submodules:

    git submodule update --init --recursive
    
  2. Build the container:

    ./build.sh
    
  3. Install quadlet files and create storage dirs:

    ./install.sh
    
  4. 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 setup
    

    Or place your config files directly at:

    ~/.storage/containers/ygg-hermes-gateway/hermes/data/
    
  5. 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.