How to Install Hermes Agent on Proxmox (with the Community Script)

Written by Adi on Jul 7, 2026
Category: 
Tag: 

Hermes Agent is Nous Research's open-source AI agent that runs terminal commands, browses the web, and learns from what it does over time. This post is how I got it running on Proxmox in a single command using the community helper script, pointed it at a model, and reached its dashboard.

Heads up before you start: this thing executes shell commands and uses your LLM API keys. Keep it in its own container, and don't hand it production secrets while you're still poking at it. It's also early and moves fast, so expect some drift from what you see here.

I'll cover the one-line install, the first-run setup, reaching the dashboard, the built-in API, and two ways to get to it remotely.

Run the Community Script

Open the Proxmox VE Shell (the host shell, not a container) and run:

bash -c "$(curl -fsSL https://raw.githubusercontent.com/community-scripts/ProxmoxVE/main/ct/hermesagent.sh)"

The usual Proxmox VE Helper-Scripts installer pops up. Pick Default and it builds an unprivileged Debian LXC for you, or pick Advanced if you want to set cores, RAM, and disk yourself. It creates the container, installs Hermes and its dependencies, sets it to run as a dedicated hermes service user for isolation, and prints the container's IP when it's done.

One honest caveat the script itself flags: it pulls install steps from Nous's own installer, which lives outside the community-scripts repo. If that bothers you, skim the source before running it. This is an AI agent that runs commands on your box, so a quick look is fair.

First Login and hermes setup

SSH into the new container as root (or use the Proxmox console), drop to the hermes user, and run setup:

su - hermes
hermes setup

This walks you through two things: your model provider and the gateway. The provider is the important one. Your options are Nous Portal (their subscription, one bill for 300+ models), a single vendor key (Anthropic, OpenAI, OpenRouter), or a local endpoint.

I pointed mine at my local Ollama box on the LAN. Reasoning: for a homelab test, a local model on a GPU box is the free path. No per-token bill while you're just seeing what the agent can do. Pick the local/custom endpoint option and give it your Ollama address, something like http://<gpu-box-ip>:11434. If you want it genuinely smart (real coding work), give it a cloud model instead. You can switch anytime later with hermes model.

Whatever key you set gets written to /home/hermes/.hermes/.env. Remember that path, the built-in API server reads from it too.

Reach the Web Dashboard (It's Not Exposed by Default)

Hermes has a web dashboard, but the script does not open it on your LAN. It listens on localhost inside the container, which is the safe default. To reach it, forward the port over SSH from your own machine:

ssh -fNL 9119:localhost:9119 root@<lan-ip>

Swap <lan-ip> for the container IP the installer printed. Then open http://localhost:9119 in your browser and you should see the Hermes dashboard. The -fNL just forwards the port in the background without dropping you into a shell.

If nothing loads: double-check the container IP, and confirm Hermes is actually running with systemctl status inside the container before you go hunting for anything fancier.

The Built-In API (port 8642)

Hermes also ships an OpenAI-compatible API at:

http://<lan-ip>:8642/v1

The key lives in that same /home/hermes/.hermes/.env. This is the part I actually care about: anything that speaks the OpenAI API format (your own scripts, n8n, another self-hosted app) can point at Hermes as if it were OpenAI, and Hermes routes to whatever model you configured behind it. One endpoint, swap the brain underneath, no client changes.

Getting To It Remotely

The SSH tunnel above is the zero-setup private option, and honestly it's enough for most solo use. If you want a URL that's always there, two forks, the same ones I use for other homelab services:

Option A: Tailscale (Private, Recommended). Install Tailscale inside the LXC and you reach the dashboard and the API over your tailnet from anywhere, with nothing open to the public internet. This is what I'd do. I put Tailscale in the container rather than on the Proxmox host, safer if anything breaks.

Option B: Cloudflare Tunnel (Public). If you truly need it public, route a hostname through a Cloudflare Tunnel to the container. Heads up: this puts an AI agent that can run terminal commands behind a public URL. I would not do this without Cloudflare Access (or at least real auth) in front of it. Treat it like leaving a root shell on the internet, because it's not far off.

Closer

And that's it. One command to build the container, hermes setup to pick your brain, an SSH tunnel to the dashboard, and an OpenAI-compatible endpoint the rest of your homelab can point at. Personal poking around: local Ollama plus the SSH tunnel. Want it smart and reachable: cloud model plus Tailscale. Public: only with Access in front.

Script and source: community-scripts.org/scripts/hermesagent and the Hermes repo at github.com/NousResearch/hermes-agent. It's early and moving fast, so expect the install to drift from this over the next few releases.