Minimum specs and what happens below them
Minimum: 2 vCPU, 4GB RAM, 40GB SSD. At this spec, Hermes Agent with an external API provider (OpenRouter, Anthropic, OpenAI) runs reliably for a single user. The 4GB RAM floor is hard — at 2GB you see OOM errors on complex tasks involving browser automation or heavy file processing. The errors are not always graceful; they can corrupt the session in progress.
The 40GB storage recommendation is because ~/.hermes/ grows over time. Session logs accumulate in ~/.hermes/sessions/ and the SQLite database (state.db) grows with every conversation. On a 20GB disk with normal usage (several sessions per day), you can fill it in 6-12 months. Start with 40GB or configure log rotation early.
Docker adds overhead. If you use hermes config set terminal.backend docker — which sandbox-isolates the agent's shell commands — Docker needs an additional 1-2GB of available memory for container spin-up. On a 4GB server running the gateway and Docker simultaneously, check your available RAM with free -h before enabling Docker backend.
Hetzner (community favourite)
Hetzner is the near-universal community recommendation for European and globally-accessible Hermes hosting. The price-to-spec ratio is significantly better than DigitalOcean or AWS Lightsail for equivalent hardware.
| Model | vCPU | RAM | NVMe | Price/mo |
|---|---|---|---|---|
| CX23 | 2 | 4 GB | 40 GB | €3.99 (~$4.49) |
| CX33 | 4 | 8 GB | 80 GB | €6.49 (~$7.30) |
| CX43 | 8 | 16 GB | 160 GB | €14.99 (~$16.90) |
| CPX32 | 4 | 8 GB | 80 GB | €13.99 |
Prices as of April 2026. Hetzner increased CX prices approximately 8% in early 2026.
CX23 is the minimum viable spec. Adequate for a single-user Hermes instance with external API inference, Telegram gateway, and moderate task volume.
CX33 is the recommended tier. The 8GB RAM headroom handles Docker backend, browser automation tasks, and occasional heavy workloads without OOM pressure. Running two light Hermes instances on one CX33 is feasible with careful resource limits.
Hetzner's datacenter locations: Nuremberg, Falkenstein, Helsinki (EU), Hillsboro Oregon, Ashburn Virginia (US). EU datacenters give lower latency to most European users; US datacenters reduce Telegram gateway round-trip for US users (though Telegram's servers are geographically distributed, the difference is modest).
DigitalOcean, Vultr, Linode, OVH
DigitalOcean: The default recommendation in a lot of tutorials because of good documentation and a polished UI. But the pricing doesn't compete:
| Droplet | vCPU | RAM | Price/mo |
|---|---|---|---|
| Basic | 2 | 4 GB | $24 |
| Basic | 4 | 8 GB | $48 |
At $48/month for 8GB RAM vs Hetzner's $7.30, the delta is hard to justify for Hermes hosting unless you already have DigitalOcean infrastructure and want to co-locate.
OVH: Competitive at the spec level. OVH VPS-1 (4 vCPU, 8GB RAM, 75GB SSD, unlimited traffic) at $6.46/month matches Hetzner CX33 pricing. OVH's unlimited bandwidth is useful if your Hermes instance does heavy data retrieval. European hosting. Support quality is lower than Hetzner in community reports.
Vultr: Pricing similar to DigitalOcean. The High Frequency compute line (6 vCPU, 16GB, $48/month) is competitive for multi-instance setups, but the entry tier ($24/4GB) is the same problem as DigitalOcean.
Hostinger KVM 2: 2 vCPU, 8GB RAM, ~$10-20/month. More RAM per dollar than Hetzner's CX23 for the same price. Appears in several community setup guides. Less established reputation in the self-hosting community.
Raspberry Pi: does it actually work?
Raspberry Pi 5 (8GB): yes, it works. Community members have run Hermes Agent on Pi 5 for multi-week stretches with external API inference. The limitations are practical, not architectural:
- SD card I/O under heavy SQLite writes causes periodic hangs. Use NVMe via USB or an official M.2 hat.
- Power outages corrupt the SQLite session database without a UPS.
- ARM64 support: Hermes Agent's Docker image does support arm64 — the Docker install works on Pi.
- No native local model inference at useful speeds. Small quantised models (Phi-3-mini, Llama 3.2 3B) on Pi 5 run at 5-15 tokens/second with CPU inference only — barely usable.
Pi is a legitimate option for a personal assistant that only uses external APIs. It is not production-viable. Use a VPS for anything where availability matters.
Shared VPS vs dedicated: which to use
Shared VPS (Hetzner CX series, DigitalOcean Basic) is the right choice for Hermes Agent with external API inference. CPU is the bottleneck for Hermes orchestration and tool execution — not inference — and shared vCPU handles it fine.
Dedicated (bare metal) only makes sense if you run local Ollama inference on the same machine. Llama 3.1 70B on CPU needs 48+ GB RAM and 16+ physical cores to run at acceptable speed. That territory is far beyond the cost/use-case for most Hermes users.
GPU hosting: Hermes Agent itself doesn't benefit from GPU. If you pair it with a local Ollama instance for inference, GPU matters a lot — but a GPU VPS costs $200-500/month, at which point Hermes OS managed hosting plus a premium API key is more economical.
Multi-instance: running several Hermes agents on one server
Hermes supports a profiles system (introduced in v0.6.0) for running multiple isolated instances from a single installation. Each profile gets:
- Separate
~/.hermes-<profile>/directory - Independent memory stores and session database
- Isolated skill library
- Distinct gateway services (can't share bot tokens across profiles)
- Separate config files
Manage profiles:
hermes profile create work
hermes profile create personal
hermes profile list
hermes profile switch work
hermes -p work -m 'Check my tasks for today'
For Docker-based multi-instance:
# Profile 1
docker run --memory=4g --cpus=2 --shm-size=1g -v hermes1:/app/.hermes ...
# Profile 2
docker run --memory=4g --cpus=2 --shm-size=1g -v hermes2:/app/.hermes ...
# NEVER run two containers against the same volume - causes session corruption
Resource allocation for multiple instances on one server:
| Instances | Min RAM | Recommended |
|---|---|---|
| 1 | 4 GB | 8 GB (CX33) |
| 2 | 8 GB | 16 GB (CX43) |
| 3-4 | 16 GB | 32 GB |
Hetzner CPX32 (8GB AMD, €13.99/month) runs two instances comfortably. CPX52 (16GB, ~€38/month) handles three to four instances.
Storage growth and disk management
What grows over time in ~/.hermes/:
state.db— the SQLite session database grows with every conversation. Expect 50-200MB per year for moderate usage.sessions/— JSONL session log files. Can be pruned withhermes sessions exportand deletion of old files.logs/— gateway logs. Configure log rotation viahermes config set logging.max_size_mb 100.downloads/— files created during tasks. Clean manually or set task-specific output directories.
Monitor disk usage:
df -h # total disk
du -sh ~/.hermes/ # hermes directory
du -sh ~/.hermes/state.db # session database specifically
hermes sessions stats # session count and estimated storage
A 40GB disk with normal single-user usage (5-10 sessions per day) should last 2-3 years before storage becomes a concern. If you run browser automation tasks that download files, add a dedicated data directory outside ~/.hermes/ and point the agent at it.
The total monthly cost breakdown
Running Hermes Agent 24/7 on a self-hosted VPS (single user, external API inference, Telegram gateway):
| Component | Monthly cost |
|---|---|
| Hetzner CX23 | €3.99 (~$4.49) |
| LLM API (OpenRouter, moderate usage) | $5-20 |
| Domain (optional, for HTTPS webhook) | ~$1 |
| Total | ~$10-25/month |
For comparison, Hermes OS managed hosting starts at $19/month and includes the server, all gateway setup, automated backups, and zero maintenance overhead. The self-hosted route is $10-25/month and includes 2-4 hours of initial setup plus 30-60 minutes/month of maintenance (updates, monitoring).
At $50/hour developer time, a single Saturday of debugging an update that broke your gateway costs more than 6 months of Hermes OS. That math changes in your favour if you run Hermes long-term with rare problems, or if the maintenance is enjoyable rather than a cost.