Self-hosting Hermes Agent with sovereign European inference

Self-hosting Hermes Agent with sovereign European inference

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
5 min

Hermes Agent is an open-source AI agent from Nous Research with tools, skills, memory, scheduled tasks, and multiple chat integrations. The Sliplane preset gives you a persistent Hermes runtime and dashboard on your own server, while Melious AI GmbH supplies OpenAI-compatible inference across European infrastructure.

This split is useful if you want more control than a fully hosted agent: Hermes' configuration, memories, skills, sessions, and files stay on your Sliplane volume. Model prompts still leave the server for inference, but they go to Melious' European network of open-weight model providers. It is a sovereign-by-design setup, not an offline one.

Prerequisites

You need:

  • A Sliplane account
  • A Melious API key from the Melious dashboard
  • A Sliplane server with at least 2 GB of memory; 4 GB is a better starting point when Hermes runs several tools or concurrent tasks

Step 1: Deploy the Hermes preset

Open the preset:

SliplaneDeploy Hermes Agent >

Select a project and server. Before you deploy, replace the placeholder in OPENAI_API_KEY with your Melious API key. Keep OPENAI_BASE_URL set to:

https://api.melious.ai/v1

Then click Deploy. The preset uses the official docker.io/nousresearch/hermes-agent:latest image and starts it with gateway run.

The preset intentionally follows Hermes Agent's rolling latest image, as recommended by its current Docker workflow. For a controlled production rollout, replace latest with a tested release tag before deploying.

Step 2: Sign in to the dashboard

Once the health check passes, open the generated sliplane.app domain. The username is admin.

Sliplane generates a unique 24-character dashboard password for every deployment. Copy HERMES_DASHBOARD_BASIC_AUTH_PASSWORD from the service's environment variables and use it to sign in. The generated credentials remain visible in the dashboard so you can retrieve them later.

The preset also creates two independent 32-byte secrets:

  • HERMES_DASHBOARD_BASIC_AUTH_SECRET signs dashboard sessions, so logins survive restarts
  • API_SERVER_KEY protects Hermes' OpenAI-compatible API

Do not replace either value with a short password or reuse your Melious API key.

Step 3: Select a Melious model

In the Hermes dashboard, go to Models → Change → OpenAI API. The endpoint and API key are already available from the service environment.

Select the model you want to use and save it as the default. Melious exposes its catalog through the OpenAI-compatible API, so you can change models without changing the Hermes deployment. Check the Melious model catalog for current model IDs, context windows, and capabilities.

Hermes recommends a context window of at least 64K tokens. Pick a model that meets that requirement if you expect long-running agent sessions.

What the preset configures

PartPreset value
DashboardEnabled on 0.0.0.0:8642
Dashboard URLhttps://$SLIPLANE_DOMAIN
Dashboard loginadmin plus a generated password
Hermes APIEnabled on port 8643
API model namehermes-agent
Inference endpointhttps://api.melious.ai/v1
Persistent storage/opt/data
Health check/api/status
Start commandgateway run

Everything mutable under /opt/data survives redeployments, including Hermes config, sessions, memories, skills, and dashboard data.

The sovereignty boundary

This setup separates the agent runtime from model inference:

LayerWhere it runsWhat it handles
Hermes AgentYour Sliplane serverTools, memory, skills, sessions, files, and orchestration
Persistent stateYour Sliplane volumeHermes data stored under /opt/data
Model inferenceMelious' European provider networkPrompts and model responses

That gives you control over the agent and its durable state while avoiding the cost and maintenance of running a large model yourself. It does not mean prompts remain on the Sliplane server. Review Melious' current data-processing terms before using sensitive data.

Security hardening

The preset's generated password is a convenient bootstrap, but Hermes' own documentation recommends OAuth or OIDC instead of basic username/password auth for an internet-facing dashboard. For a long-lived production deployment, connect Hermes to a self-hosted OIDC provider or restrict the dashboard to a trusted network.

Also:

  • Never commit your OPENAI_API_KEY, dashboard password, or API server key
  • Rotate the generated credentials if somebody gains access to your service settings
  • Only install Hermes skills and plugins you trust; they run with access to the agent environment
  • Keep /opt/data on its own persistent volume and back it up before major upgrades

Troubleshooting

The dashboard does not load

Check that the service health check reaches /api/status and that HERMES_DASHBOARD_PORT is 8642. The public Sliplane domain points to the dashboard on that port.

Login fails

Use admin and the exact generated value of HERMES_DASHBOARD_BASIC_AUTH_PASSWORD. If you change the password, redeploy the service so Hermes reloads the environment.

No models appear

Confirm that OPENAI_BASE_URL is https://api.melious.ai/v1 and that OPENAI_API_KEY contains a valid Melious key rather than the preset placeholder. Then return to Models → Change → OpenAI API.

Hermes forgets its configuration

Check that the persistent volume is still mounted at /opt/data. Do not deploy a second Hermes container against the same volume; the upstream project warns that its session and memory stores are not designed for concurrent writers.

Cost comparison

Sliplane charges for the server rather than each container, so you can run Hermes alongside other services while resources allow. Melious inference is billed separately based on the model and usage.

ProvidervCPURAMDiskMonthly CostNote
Sliplane22 GB40 GB€9 (~$10.65)Flat rate, 1 TB bandwidth, SSL included
Fly.io22 GB40 GB~$18Disk and bandwidth billed separately
Render12 GB40 GB~$35100 GB bandwidth, Disk billed separately
Railway22 GB40 GB~$67 + $20 planPro plan floor, usage-based, bandwidth billed separately
Click here to see how these numbers were calculated.

(Assuming an always-on instance running 730 hrs/month)

  • Sliplane: flat €9/month for the Base server. Unlimited services on the same server, 1 TB egress and SSL included.
  • Fly.io: shared-cpu-2x 2 GB = $11.83/mo + 40 GB volume × $0.15/GB = $6 -> ~$17.83/mo. Egress billed separately ($0.02/GB in EU).
  • Render: closest match is Standard ($25, 1 vCPU / 2 GB) plus 40 GB disk × $0.25/GB = $10 -> ~$35/mo. Stepping up to Pro (2 vCPU / 4 GB) costs $85/mo + disk.
  • Railway (Pro plan): CPU 2 × $0.00000772/s × 2,628,000 s = $40.57; RAM 2 × $0.00000386/s × 2,628,000 s = $20.29; volume 40 × $0.00000006/s × 2,628,000 s = $6.31 -> ~$67/mo compute, plus the $20/mo Pro plan floor and $0.05/GB egress.

Bandwidth costs can add up fast on usage-based providers. Use our bandwidth cost comparison tool to see what your egress would cost on each platform.

FAQ

Is this a fully sovereign AI stack?

It is a sovereign-by-design hosted stack: you control the Hermes runtime and persistent state, while inference is sent to Melious' European network. For a completely offline setup, you would need to run a compatible model endpoint on infrastructure you control instead.

Can I connect another app to Hermes?

Yes. Hermes exposes an OpenAI-compatible API as hermes-agent and protects it with API_SERVER_KEY. The preset keeps that API on port 8643, separate from the public dashboard port.

Can I use a different inference provider later?

Yes. Hermes supports other OpenAI-compatible endpoints and native providers. Change the provider from the dashboard and update the matching environment variables.

How do I update Hermes Agent?

Redeploy the service to pull the current latest image. Because all mutable data lives on /opt/data, the agent's state survives the container replacement. For production, test a specific release tag before updating.

Run your own Hermes Agent

Deploy the agent, dashboard, persistent state, and Melious connection from one preset.