Hosta själv
Sätt upp hela agent-helm på din egen infrastruktur. Guiden är generisk — anpassa
registry, reverse proxy och CI till din stack. (Den fullständiga referens-uppsättningen
med Pi5 + Dockge + Nginx Proxy Manager finns i repots
deploy/DEPLOY.md.)
Vill du bara koppla upp mot en server som redan finns? Se Anslut.
Du behöver
- En Docker-host för servern.
- En reverse proxy med TLS och WebSocket-stöd (Nginx Proxy Manager, Caddy, Traefik …) samt ett domännamn.
- (Valfritt) en container-registry och Gitea Actions för automatiska byggen.
1. Token (gör först)
Generera en stark slumpad hemlighet. Den är enda åtkomstgrinden till sessionerna. Lägg den i serverns miljö och i varje klients config — aldrig i git.
2. Servern
Bygg image:n från repots Dockerfile (eller via CI, se steg 5) och kör den. Det finns en
färdig compose i deploy/agent-helm.compose.yaml:
- env:
AGENT_HELM_TOKEN=<din token>,PORT=8787,DATA_DIR=/app/data expose: 8787(ingen host-port — reverse proxyn binder publikt)- volym:
<host-katalog>:/app/data— skapa den före start och äg den som uid 1000 (containern kör som uid 1000), annars kan appen inte skriva. Hit hamnar framtida db/auth.
Servern serverar den inbyggda web-frontenden och WebSocket på samma port.
3. Reverse proxy
Peka din domän → agent-helm:8787. Slå på WebSocket-stöd (annars laddar UI:t men
sessioner kopplar aldrig upp) och TLS (t.ex. Let's Encrypt). Klienterna ansluter sedan
till wss://din-domän.
4. Klienterna
Bygg klient-binärerna (repots release-workflow, eller pkg lokalt) och installera dem
med install.sh. Peka klientens SERVER_URL på din domän. Binären är självständig
(Node + node-pty inbäddat) för linux x64/arm64.
5. CI (valfritt men rekommenderat)
Repot innehåller två Gitea Actions-workflows:
.gitea/workflows/build.yaml— på push tillmaster: bygger server-image och pushar till din registry..gitea/workflows/release.yaml— på push tillmaster: bygger klient-binärer (x64 + arm64 medpkg --no-bytecode, så de cross-byggs utan QEMU) och publicerar dem som en rullandelatest-release.vX.Y.Z-taggar ger versionerade releaser.
Det kräver en Gitea Actions-runner i Docker (deploy/act-runner.{compose,config}.yaml).
Runnern monterar värdens docker.sock och bygger nativt — kör den på en arm64-host om du
vill ha arm64-images. Se deploy/DEPLOY.md för registrering och fallgropar.
Strukturerade godkännanden (hook)
Klienten kan ta emot verktygsgodkännanden via en BeforeTool-hook (agent-helm hook).
Hooken pratar med daemonen över en endpoint som binder endast 127.0.0.1 — aldrig
nåbar utifrån. Utan UI faller den tillbaka till AGENT_HELM_HOOK_DEFAULT (default allow).
Säkerhet
- Token = enda åtkomstgrinden. Håll den hemlig, rotera vid läcka (byt på server + klienter). Lägg den aldrig i git — använd serverns/klientens lokala konfiguration.
- Exponera bara via reverse proxyn (TLS). Ingen rå host-port behövs.
- Hook-endpointen är loopback-only.
- Om din registry saknar auth: håll den LAN-only.