← Home

Guide

Deploy Hermes Agent on Hostinger VPS

A complete walkthrough for running Hermes Agent on a Hostinger VPS: install Docker on Ubuntu, start the Hermes container, connect your model API, and optionally add a custom domain with auto-HTTPS via Caddy.

Is Hostinger a Good Fit for Hermes Agent?

Hostinger's KVM VPS plans give you full root access, dedicated resources, and Docker support — a reasonable foundation for running Hermes Agent against external model APIs such as OpenAI, Anthropic, or OpenRouter. For workloads in that category, Hostinger performs well and costs significantly less than many alternatives.

The honest limitation: Hostinger does not offer GPU-backed VPS plans at the time of writing. If your primary goal is running a local inference model with Ollama at useful quality (7B parameters and above), a Hostinger CPU VPS will be too slow for production use. For those workloads you need a GPU-equipped host. For everything else — Hermes connected to cloud model APIs, web search, shell automation, image generation via FAL, and Telegram or Discord channels — a mid-tier Hostinger KVM plan is a viable choice.

Hostinger VPS Plan Recommendations

Hermes Agent itself is lightweight, but it runs an API server on port 8642 and one or more platform connectors inside Docker. A comfortable minimum is 2 vCPU and 4 GB RAM. Here is how the tiers map to common use cases:

TiervCPURAMVerdict
Starting plan14 GBTight — possible for a single low-traffic bot, add swap
Mid plan28 GBRecommended — comfortable headroom for Hermes + one channel
Higher plan416 GBGood for multiple Hermes instances or shell-heavy workloads

Check Hostinger's current pricing directly at hostinger.com — plan prices and naming change with promotions. Avoid the smallest single-core plan if you want reliable uptime under moderate load.

Step 1: Spin Up a Hostinger VPS

Head to hostinger.com and navigate to VPS Hosting. During setup:

  1. Select Ubuntu 24.04 as the operating system (Ubuntu 22.04 also works).
  2. Choose the data center region closest to your users.
  3. Upload your SSH public key during provisioning — this is strongly recommended over password-only auth.
  4. Wait for provisioning (typically 1–3 minutes), then note the server's IP address from the Hostinger dashboard.

Once the VPS is ready, connect and update the system:

ssh root@your-server-ip
apt update && apt upgrade -y
Tip: Enable SSH key authentication and disable password login in /etc/ssh/sshd_config (PasswordAuthentication no) to reduce brute-force noise on a fresh server.

Step 2: Install Docker

Docker's official install script handles everything for Ubuntu:

# Install Docker using the official script
curl -fsSL https://get.docker.com | sh

# Verify the install
docker --version

# Enable Docker to start on boot
systemctl enable docker
systemctl start docker

After running the script, docker --version should print a current Docker CE release. No manual apt-pinning is needed — the script resolves the correct repository for your Ubuntu version automatically.

Step 3: Install Hermes Agent

Hermes Agent is distributed as a Docker image on Docker Hub at nousresearch/hermes-agent. The upstream repository is:

Before starting the container, create your data directory and configure your API keys. Hermes reads environment variables from ~/.hermes/.env, which is volume-mounted into the container:

# Create the Hermes data directory
mkdir -p ~/.hermes

# Create your .env file with required API keys
cat > ~/.hermes/.env << 'EOF'
ANTHROPIC_API_KEY=your-anthropic-key
OPENAI_API_KEY=your-openai-key

# Enable the OpenAI-compatible API server on port 8642
API_SERVER_ENABLED=true
API_SERVER_KEY=your-random-secret

# Optional: expose the API server beyond localhost inside the container
# API_SERVER_HOST=0.0.0.0
EOF

With your .env in place, run Hermes in gateway mode:

docker run -d \
  --name hermes \
  --restart unless-stopped \
  -v ~/.hermes:/opt/data \
  -p 8642:8642 \
  nousresearch/hermes-agent gateway run

Key flags explained:

  • -v ~/.hermes:/opt/data — Persists Hermes config, keys, sessions, memories, skills, and logs across container restarts. Your .env file inside this directory is loaded automatically.
  • -p 8642:8642 — Exposes the OpenAI-compatible API server. Requires API_SERVER_ENABLED=true and API_SERVER_KEY set in your .env.
  • gateway run — Starts Hermes in gateway mode (serves the API and handles platform connectors).
  • --restart unless-stopped — Auto-restarts after crashes or server reboots.

Check the container is running and review startup logs:

docker ps | grep hermes
docker logs hermes --tail 50
Note: The API server on port 8642 is only active when API_SERVER_ENABLED=true is set in ~/.hermes/.env. If you update the .env file after the container is already running, restart it with docker restart hermes for the changes to take effect.

Step 3b: Access the Dashboard

The Hermes dashboard runs as a separate command — it is not bundled into the gateway container. To start it, run:

hermes dashboard

The dashboard listens on port 9119 and binds to 127.0.0.1 by default, meaning it is only accessible from the VPS itself. It has no built-in authentication. On a public Hostinger VPS you have two safe options:

  • SSH tunnel (recommended for personal use): access the dashboard locally without exposing it to the internet.
    ssh -L 9119:localhost:9119 root@your-server-ip
    Then open http://localhost:9119 in your browser.
  • Reverse proxy with auth: if you need remote access, put Caddy in front with basicauth and serve it only over HTTPS. Do not expose port 9119 directly on the public internet — there is no built-in auth to protect it.

Step 4: Point a Domain at the VPS

If you want HTTPS access to the Hermes API server using a custom domain, create an A record in your DNS provider pointing to your Hostinger VPS IP address. For example:

hermes.yourdomain.com  A  your-server-ip

DNS propagation typically takes a few minutes to an hour. You can verify with:

dig +short hermes.yourdomain.com

Step 5: TLS and Reverse Proxy

Running Hermes directly on plain HTTP over a public port is not recommended in production. Use a reverse proxy with TLS termination. Caddy is the simplest option — it provisions and renews Let's Encrypt certificates automatically with zero manual configuration.

Install Caddy on Ubuntu:

apt install -y debian-keyring debian-archive-keyring apt-transport-https
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' \
  | gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg
curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
  | tee /etc/apt/sources.list.d/caddy-stable.list
apt update && apt install caddy

Create /etc/caddy/Caddyfile to proxy the API server. If you also want to expose the dashboard remotely, add basicauth to avoid leaving an unauthenticated service on the internet:

# API server — protected by API_SERVER_KEY bearer token
hermes-api.yourdomain.com {
    reverse_proxy localhost:8642
}

# Dashboard — add basicauth since the dashboard has no built-in auth
hermes.yourdomain.com {
    basicauth {
        # Generate hash: caddy hash-password
        admin $2a$14$your-bcrypt-hash-here
    }
    reverse_proxy localhost:9119
}

Restart Caddy to apply:

systemctl restart caddy

Caddy will obtain certificates from Let's Encrypt automatically. The API server becomes available at https://hermes-api.yourdomain.com.

If you prefer Nginx, use its proxy_pass directive with Certbot for certificate management. The Caddy path is recommended for simplicity.

Step 6: Connect a Channel

Hermes supports Telegram, Discord, Slack, and other platforms through its platform connector system. Platform config lives in your Hermes config file (mounted at /opt/data inside the container) and takes effect after a container restart.

To connect a platform, use the Hermes CLI pairing flow or the dashboard (if running separately). For a complete end-to-end deploy walkthrough including platform connection, see the Hermes Agent web UI guide.

Common Hostinger Gotchas

Firewall blocking ports

Hostinger VPS instances typically have an open firewall by default, but if you have enabled ufw, make sure to allow the ports Hermes uses:

ufw allow 8642/tcp   # Hermes API server (if exposing directly)
ufw allow 80/tcp     # Needed for Let's Encrypt HTTP challenge
ufw allow 443/tcp    # HTTPS

If you front Hermes with Caddy and keep direct port access off the public internet, you only need ports 80 and 443 open. Do not open port 9119 on the public firewall — access the dashboard via SSH tunnel instead.

Low-RAM plans and swap

On the smallest Hostinger plans (4 GB RAM), Docker memory pressure can cause the container to be killed. Add a swap file as a safety buffer:

fallocate -l 4G /swapfile
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile
echo '/swapfile none swap sw 0 0' >> /etc/fstab

This does not replace adequate RAM, but it prevents hard OOM kills during transient memory spikes.

Docker bridge vs host networking

By default, Docker containers use bridge networking. This means the container sees localhost as its own loopback interface, not the host's. When configuring Hermes to call a service running on the host (e.g., a local Ollama instance), use the host gateway IP (172.17.0.1 on most Linux Docker setups) rather thanlocalhost. Alternatively, add --network=host to the docker run command, which removes the network namespace entirely.

The Easy Way: Use OpenClaw Launch

Self-hosting Hermes on Hostinger gives you full control, but it also means managing Docker, SSL certificates, server updates, uptime monitoring, and config files by hand. If you want a Hermes Agent running in minutes without any of that overhead, OpenClaw Launch deploys a fully managed, production-ready Hermes instance with TLS and a domain included — no VPS required.

Hostinger VPS (Self-Managed)OpenClaw Launch
Time to deploy2–4 hoursUnder 30 seconds
TLS setupInstall Caddy + configure CaddyfileAutomatic, included
Docker managementManual pull, run, restartFully managed
UpdatesManual docker pull + restartAutomatic image pinning & updates
MonitoringSet up yourselfBuilt-in
Cost rangeVPS plan + your timeFrom $3/mo

Frequently Asked Questions

Does Hostinger offer GPU VPS plans?

As of early 2026, Hostinger does not offer GPU-backed VPS plans in their standard lineup. If you need GPU acceleration for local inference (Ollama with a 13B+ model, for example), you will need to look at GPU-specific cloud providers. For Hermes running against external model APIs (OpenAI, Anthropic, OpenRouter), CPU VPS is perfectly adequate.

Can I run Hermes Agent with Ollama on Hostinger?

You can run Ollama on a Hostinger CPU VPS, but the practical limit is small models (around 3B parameters or less) that fit comfortably in RAM and tolerate slow CPU-only inference. For anything larger, inference will be too slow for interactive use. If you want to experiment with Ollama alongside Hermes, start with a model like phi3:mini and benchmark response times before committing to that setup in production.

How much RAM does Hermes Agent need?

Hermes Agent itself typically uses 300–600 MB of RAM when idle, with spikes during active sessions. However, Docker overhead, the OS, and any other services you run alongside it push the practical minimum to 4 GB total RAM for a stable single-instance deployment. An 8 GB plan gives comfortable headroom for sessions with web search, shell tools, or image generation active.

Can I run multiple Hermes instances on one VPS?

Yes. Each instance runs in its own Docker container with its own data directory and port mapping. On an 8 GB RAM plan you can typically run 2–3 Hermes instances before hitting resource limits, depending on concurrent session load. Use different host ports for each container (e.g., 8642 and 8643 for API servers) and configure separate subdomains in Caddy.

Is Hostinger reliable enough for a production Hermes deployment?

Hostinger's KVM plans use dedicated resources with SSD storage, and their network uptime is generally solid for small-to-medium workloads. They are not a premium managed cloud provider, so if you need SLA-backed uptime guarantees or enterprise support, look elsewhere. For personal projects, small teams, or early-stage products, Hostinger is a reasonable choice at a competitive price.

How do I access the Hermes dashboard on a remote VPS?

The hermes dashboard command starts a local web UI on port 9119. Because it has no built-in authentication, the safest way to access it on a remote VPS is via an SSH tunnel: run ssh -L 9119:localhost:9119 root@your-server-ip from your local machine, then open http://localhost:9119 in your browser. Alternatively, put it behind Caddy with basicauth if you need persistent remote access.

Related Guides

Skip the VPS Setup?

OpenClaw Launch deploys a managed Hermes Agent instance in under a minute — no Docker, no Caddy, no server admin. Plans from $3/mo.

Deploy Now