Deploy Hermes Agent on Any VPS — Complete Guide

Deploy Hermes Agent on a VPS, understand the hidden maintenance cost, and decide when FlyHermes is easier for dashboard, Telegram, Discord, memory, and browser/search agents.

Quick answer

Deploy Hermes Agent on a VPS when you want full control: provision a server, install Hermes, configure provider and gateway credentials, run it as a service, secure the dashboard, monitor logs, and back up ~/.hermes. If you mainly want an always-on Telegram/Discord agent with dashboard visibility and browser/search workflows, FlyHermes avoids the VPS, Docker, reverse-proxy, and restart burden.

Running Hermes on a VPS means your agent is always on — it works while you sleep, handles scheduled tasks, and stays connected to your channels 24/7 without draining your laptop battery.

Deploy Hermes faster with FlyHermes

Managed cloud · API costs included · Skill library · Cancel anytime

Before you start:

  • A VPS with at least 1GB RAM (DigitalOcean, Hetzner, Vultr — $5-6/month is sufficient without a local LLM)
  • SSH access to the server
  • The Hermes installer handles Node.js and Python automatically

Steps

  1. 1

    Choose a VPS provider

    Any $5+/month VPS works — DigitalOcean, Hetzner, Vultr, or AWS Lightsail

  2. 2

    SSH into your server

    ssh root@your-server-ip and ensure Node.js 18+ is installed

  3. 3

    Run the installer

    curl -fsSL https://raw.githubusercontent.com/NousResearch/hermes-agent/main/scripts/install.sh | bash

  4. 4

    Configure channels and API keys

    Edit config.yaml with your Telegram/Discord tokens and model API keys

  5. 5

    Set up process manager

    Install PM2 with npm i -g pm2, then pm2 start hermes --name hermes-agent

  6. 6

    Enable auto-restart

    Run pm2 startup && pm2 save so Hermes survives server reboots

Pro Tips

  • 💡Hetzner CX22 is a popular choice — cheap, fast EU datacenter, excellent uptime for around $4/month
  • 💡Use PM2 ecosystem files to manage multiple Hermes profiles or agents from one config file
  • 💡Set up a daily backup cron to copy ~/.hermes/ to S3 or rsync to another server — losing agent memory is painful
  • 💡For repository automation on a VPS, use a fine-grained GitHub token or GitHub App credentials and keep them in the active Hermes profile env file
  • 💡If you enable the Hermes Agent dashboard / Web UI on a VPS, keep it behind HTTPS, auth, and firewall rules instead of exposing a raw admin port

Troubleshooting

Hermes stops running after SSH session closes

You need a process manager. Install PM2: 'npm i -g pm2' then 'pm2 start hermes --name hermes-agent'. This keeps Hermes running after you disconnect.

High memory usage after a few days

This is usually the ChromaDB vector store growing. Set memory limits in PM2: 'pm2 start hermes --max-memory-restart 512M' to auto-restart if it exceeds 512MB.

VPS firewall blocking Telegram webhooks

Open port 8443 in your firewall: 'ufw allow 8443/tcp'. Alternatively use polling mode which doesn't require inbound connections.

Related setup and cost guides

Related Guides