SG SealGrid Athena Docs

Agent Install Bundle

The install bundle is a self-contained ZIP you download for a specific agent version and copy onto a Windows host to enrol it. It packs the agent executable, a pre-filled configuration, and a PowerShell installer, so a technician can install and connect an agent without hand-editing any files. You can optionally embed a short-lived, one-shot registration token in the ZIP for zero-touch enrolment, and override the server URL the agent will connect to. Because the bundle carries everything it needs, it is the enrolment method of choice for air-gapped, hardened, or mass-imaging environments where the machine cannot fetch a script from the server.

Bundle vs. the one-line installer

Two ways to enrol a new machine. The one-line bootstrap installer (irm | iex / curl | bash) is best when the machine can reach the server and an operator is present to type credentials. The bundle on this page is best when it can't — the ZIP is everything, and with an embedded token it installs with no prompts at all. Both end with the same HermesAgent Windows service checking in on the Agents page.

What's supported#

The install bundle is Windows-only today — the dialog shows Linux bundle coming soon, and requesting a bundle for a Linux binary is refused. To enrol Linux hosts, use the Linux agent one-line installer instead. On the target Windows host you need:

Downloading a bundle is an Admin-only action. Building an agent binary available to bundle is covered in Agent Binaries & Updates; if no active binary has been uploaded for an operating system, there is nothing to bundle.

Downloading a bundle#

Open Settings → Agent → Updates. Each uploaded binary version in the Agent Binaries list has a Download Bundle action. Choosing it opens the Download Agent Bundle dialog with three choices:

OptionWhat it does
Server URL The host:port the agent will connect to, written into the bundle's configuration. It is pre-filled with this server's public URL; override it only if the target host reaches the server through a different address (for example a public hostname or a VPN address). A supplied value must be an absolute https URL with a host — for example https://athena.example.com:8444.
Embed a short-lived registration token in the zip When ticked, the server mints a fresh registration token and writes it into the bundle's configuration so the agent registers on first start with no operator input. When left unticked, the bundle ships without a token and one must be supplied at install time (see Manual install).
Token lifetime How long an embedded token stays valid: 1 hour (the default), 2 hours, or 4 hours. After it expires the bundle can no longer register an agent and you must download a fresh one.

The download is a ZIP named HermesAgent-<version>-windows.zip. Every bundle download is written to the audit log, recording whether a token was embedded and its lifetime, so you always know which bundles carry a live credential.

A bundle with an embedded token is a credential

Anyone holding a token-embedded ZIP can register an agent against your server until the token expires. The dialog warns of exactly this. Keep the file secure, share it only with trusted technicians, and delete it once the agent is installed. Prefer the shortest lifetime that fits your rollout, and remember the token is one-shot — see below.

The embedded token is one-shot#

An embedded registration token is minted with a single use. The first agent that registers with it consumes it; the token then cannot enrol any further machines even if its lifetime window has not elapsed. This keeps a leaked bundle from being replayed to stand up additional agents.

The practical consequence: a token-embedded bundle enrols one machine. For a mass-imaging or golden-image workflow — where the same ZIP is baked into an image and applied to many machines — do not embed a token. Instead download the bundle without a token and supply a token at install time (a token minted for reuse), or mint a fresh token per machine. See Registration Tokens for one-time vs. reusable tokens and their expiry.

What's inside the ZIP#

FilePurpose
Hermes.Agent.exeThe agent executable — a self-contained application that runs as a Windows service.
appsettings.jsonThe agent's configuration, pre-filled with the server URL you chose. If you ticked embed token, the one-shot registration token is written here too.
Install-HermesAgent.ps1The installer. Run as Administrator; it installs and starts the service (see below).
README.txtQuick-start, manual-install, verification, and uninstall instructions for the technician at the machine.

Installing on the target machine#

Copy the ZIP to the Windows host and extract it. When the bundle has an embedded token, installation is zero-touch — right-click Install-HermesAgent.ps1 and choose Run with PowerShell as Administrator, or from an elevated PowerShell prompt:

Set-Location <path-to-extracted-zip>
.\Install-HermesAgent.ps1

The installer:

Within a heartbeat or two (the default heartbeat is 30 seconds) the machine appears on the Agents page and turns Online. If a token was embedded, it is consumed on this first registration.

Manual install (no embedded token)#

If you downloaded the bundle without a token, supply one at install time with the installer's -Token parameter. You can also override the server URL with -ServerUrl:

# Supply a registration token at install time
.\Install-HermesAgent.ps1 -Token "your-registration-token"

# Override the server URL as well
.\Install-HermesAgent.ps1 -ServerUrl "https://athena.example.com:8444" -Token "your-token"

When -ServerUrl and -Token are omitted, the installer uses the values already in the bundle's appsettings.json. Two more parameters are available: -ServerName (the name of the server entry to override, default primary) and -InstallPath (the install directory, default C:\Program Files\Hermes Agent). Mint a token in Settings → Security → Tokens, or see Registration Tokens.

Verifying and uninstalling#

On the machine, confirm the service is running and check the agent's logs:

Get-Service HermesAgent

# Recent agent logs
Get-Content "C:\ProgramData\Hermes\Logs\hermes-*.log" -Tail 50

The agent's runtime data (its certificate, state, and logs) lives under C:\ProgramData\Hermes\. To remove the agent, from an elevated prompt:

Stop-Service HermesAgent -Force
sc.exe delete HermesAgent
Remove-Item -Recurse -Force "C:\Program Files\Hermes Agent"

# To also remove the agent's data (certificate, state, logs)
Remove-Item -Recurse -Force "C:\ProgramData\Hermes"

For an orderly, server-side retirement of an already-enrolled agent (revoking its certificate and removing it from the fleet), see Retiring & Removing Agents.

Troubleshooting#

SymptomWhat to check
Service won't start Read C:\ProgramData\Hermes\Logs\hermes-*.log. The most common causes are an unreachable server URL or an expired / already-consumed registration token.
"The token has expired" Embedded tokens are short-lived (1–4 hours) and one-shot. Mint a new token in the console and re-run .\Install-HermesAgent.ps1 -Token "new-token", or download a fresh bundle.
Can't reach the server / firewall Open outbound TCP from the host to the server's gRPC port (8444 by default). See Network Ports.
Wrong address baked in If the host reaches the server through a different address than the pre-filled one, re-download the bundle with the correct Server URL, or pass -ServerUrl to the installer.
Nothing to download for an OS No active agent binary has been uploaded for that operating system. Upload one first in Agent Binaries & Updates.
Air-gapped enrolment

The bundle needs no connectivity to the server to install — only to register. Copy the ZIP across your air gap on approved media, extract, and run the installer; the agent then connects to the server over your internal network on port 8444. This makes the bundle the natural fit for isolated networks. See Air-Gapped Operation for the wider offline story.