Starts after hermes-agent.service (gateway must be up)
Runs as hermes user with security hardening (NoNewPrivileges, ProtectSystem=strict, PrivateTmp)
Auto-restarts on failure (5s delay)
Firewall
Port 9119/tcp restricted to Netbird mesh range 100.64.0.0/16 via extraCommands
Not accessible from the public internet
Other
Added placeholder secrets/hermes-api-server-key.age (was missing from PR #12 — needs real encryption on host)
Updated services/default.nix to import the new module
Access after deploy
http://100.81.231.152:9119 (Netbird mesh IP)
Post-merge steps
Re-encrypt secrets/hermes-api-server-key.age on host with agenix -e
sudo nixos-rebuild switch --flake .#m3-hermes
## Summary
Adds the Hermes Agent Web Dashboard as a dedicated systemd service, accessible only from the Netbird mesh VPN.
## Changes
### New: `hosts/m3-hermes/services/hermes-dashboard.nix`
- **`hermes-dashboard.service`** — runs `hermes dashboard --host 0.0.0.0 --port 9119 --no-open`
- Starts after `hermes-agent.service` (gateway must be up)
- Runs as `hermes` user with security hardening (`NoNewPrivileges`, `ProtectSystem=strict`, `PrivateTmp`)
- Auto-restarts on failure (5s delay)
### Firewall
- Port **9119/tcp** restricted to Netbird mesh range `100.64.0.0/16` via `extraCommands`
- Not accessible from the public internet
### Other
- Added placeholder `secrets/hermes-api-server-key.age` (was missing from PR #12 — needs real encryption on host)
- Updated `services/default.nix` to import the new module
## Access after deploy
```
http://100.81.231.152:9119 (Netbird mesh IP)
```
## Post-merge steps
1. Re-encrypt `secrets/hermes-api-server-key.age` on host with `agenix -e`
2. `sudo nixos-rebuild switch --flake .#m3-hermes`
- New hermes-dashboard.service: runs 'hermes dashboard' on 0.0.0.0:9119
- Firewall restricts port 9119 to Netbird mesh VPN range (100.64.0.0/16)
- Runs as hermes user with NoNewPrivileges + ProtectSystem hardening
- Depends on hermes-agent.service (starts after gateway)
- Added placeholder hermes-api-server-key.age (needs real encryption on host)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
Adds the Hermes Agent Web Dashboard as a dedicated systemd service, accessible only from the Netbird mesh VPN.
Changes
New:
hosts/m3-hermes/services/hermes-dashboard.nixhermes-dashboard.service— runshermes dashboard --host 0.0.0.0 --port 9119 --no-openhermes-agent.service(gateway must be up)hermesuser with security hardening (NoNewPrivileges,ProtectSystem=strict,PrivateTmp)Firewall
100.64.0.0/16viaextraCommandsOther
secrets/hermes-api-server-key.age(was missing from PR #12 — needs real encryption on host)services/default.nixto import the new moduleAccess after deploy
Post-merge steps
secrets/hermes-api-server-key.ageon host withagenix -esudo nixos-rebuild switch --flake .#m3-hermes