
Self-hosting Hermes Agent with sovereign European inference
Jonas ScholzHermes 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:
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
latestimage, as recommended by its current Docker workflow. For a controlled production rollout, replacelatestwith 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_SECRETsigns dashboard sessions, so logins survive restartsAPI_SERVER_KEYprotects 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
| Part | Preset value |
|---|---|
| Dashboard | Enabled on 0.0.0.0:8642 |
| Dashboard URL | https://$SLIPLANE_DOMAIN |
| Dashboard login | admin plus a generated password |
| Hermes API | Enabled on port 8643 |
| API model name | hermes-agent |
| Inference endpoint | https://api.melious.ai/v1 |
| Persistent storage | /opt/data |
| Health check | /api/status |
| Start command | gateway 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:
| Layer | Where it runs | What it handles |
|---|---|---|
| Hermes Agent | Your Sliplane server | Tools, memory, skills, sessions, files, and orchestration |
| Persistent state | Your Sliplane volume | Hermes data stored under /opt/data |
| Model inference | Melious' European provider network | Prompts 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/dataon 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.
| Provider | vCPU | RAM | Disk | Monthly Cost | Note |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 (~$10.65) | Flat rate, 1 TB bandwidth, SSL included |
| Fly.io | 2 | 2 GB | 40 GB | ~$18 | Disk and bandwidth billed separately |
| Render | 1 | 2 GB | 40 GB | ~$35 | 100 GB bandwidth, Disk billed separately |
| Railway | 2 | 2 GB | 40 GB | ~$67 + $20 plan | Pro 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-2x2 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.