Nomploy Nomad Packs

← All packs

hermes v0.1.0

AI

Hermes Agent — Nous Research's open-source, self-hosted personal AI agent: one gateway with persistent memory, skills, and scheduled jobs, reachable over an OpenAI-compatible API (and chat platforms). Deployed as a single host-networked Nomad service with a data volume; bring an LLM provider (OpenAI/Anthropic or a local endpoint).

nomad-pack run hermes --registry nomploy
1 task http 8642 1 volume image nousresearch/hermes-agent:latest
Variables 12
values.hcl

Save as values.hcl, edit, then run:

nomad-pack run hermes -f values.hcl --registry nomploy
# The name of the Nomad job.
job_name = "hermes"

# The Nomad namespace to deploy into.
namespace = "default"

# The datacenters to deploy to.
datacenters = ["*"]

# The Hermes Agent container image. Pin a tag in production.
image = "nousresearch/hermes-agent:latest"

# Host port for the gateway's OpenAI-compatible API and health endpoint.
port = 8642

# OpenAI API key (OPENAI_API_KEY). Set this or anthropic_api_key (or openai_base_url for a local endpoint).
openai_api_key = ""

# Anthropic API key (ANTHROPIC_API_KEY). Optional.
anthropic_api_key = ""

# Override the OpenAI-compatible base URL (OPENAI_BASE_URL) to use a local provider, e.g. the litellm pack (http://127.0.0.1:4000/v1) or ollama. Empty = OpenAI.
openai_base_url = ""

# Token that secures the API endpoint (HERMES_AUTH_TOKEN). Empty = no auth (trusted network only).
auth_token = ""

# Named volume for Hermes' persistent memory, config, and keys (/opt/data).
data_volume = "hermes_data"

# Placement constraints. Pin to the node holding the volume. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
constraints = []

# The task resources.
resources = {
    cpu    = 500
    memory = 512
  }
NameTypeDefaultDescription
job_name string
"hermes"
The name of the Nomad job.
namespace string
"default"
The Nomad namespace to deploy into.
datacenters list
["*"]
The datacenters to deploy to.
image string
"nousresearch/hermes-agent:latest"
The Hermes Agent container image. Pin a tag in production.
port number
8642
Host port for the gateway's OpenAI-compatible API and health endpoint.
openai_api_key key string
""
OpenAI API key (OPENAI_API_KEY). Set this or anthropic_api_key (or openai_base_url for a local endpoint).
anthropic_api_key key string
""
Anthropic API key (ANTHROPIC_API_KEY). Optional.
openai_base_url string
""
Override the OpenAI-compatible base URL (OPENAI_BASE_URL) to use a local provider, e.g. the litellm pack (http://127.0.0.1:4000/v1) or ollama. Empty = OpenAI.
auth_token key string
""
Token that secures the API endpoint (HERMES_AUTH_TOKEN). Empty = no auth (trusted network only).
data_volume string
"hermes_data"
Named volume for Hermes' persistent memory, config, and keys (/opt/data).
constraints list
[]
Placement constraints. Pin to the node holding the volume. On a nomploy cluster: attribute = "$${meta.nomploy_control_plane}", operator = "=", value = "true".
resources object
{
    cpu    = 500
    memory = 512
  }
The task resources.
Readme

hermes

Hermes Agent — Nous Research's open-source, self-hosted personal AI agent: one gateway with persistent memory, skills, and scheduled jobs, reachable over an OpenAI-compatible API (and 20+ chat platforms).

Single host-networked Nomad service with a data volume. Bring your own LLM provider.

Deploy

nomad-pack registry add nomploy https://github.com/Nomploy/nomad-packs
nomad-pack run hermes --registry=nomploy

Configure

Variable Default Description
port 8642 Gateway API / health port.
openai_api_key "" OPENAI_API_KEY.
anthropic_api_key "" ANTHROPIC_API_KEY.
openai_base_url "" OPENAI_BASE_URL — point at a local provider (litellm/ollama).
auth_token "" HERMES_AUTH_TOKEN securing the API.
data_volume hermes_data /opt/data — persistent memory, config, keys.
image nousresearch/hermes-agent:latest Image. Pin a tag in production.
resources { cpu = 500, memory = 512 } Task resources.

Set at least one provider (openai_api_key / anthropic_api_key) or openai_base_url to a local OpenAI-compatible endpoint — e.g. the litellm pack (http://127.0.0.1:4000/v1) fronting ollama. Set auth_token and front with TLS before exposing it. Pin the job to the node holding the volume with constraints.