Agent+MultiServer

This commit is contained in:
2025-11-25 16:02:00 +00:00
parent 9b25cb807a
commit fc3ed57a40
26 changed files with 3233 additions and 338 deletions
+34
View File
@@ -0,0 +1,34 @@
# Stackpulse Agent
Der Stackpulse Agent stellt Docker- und Host-Metadaten über eine REST-API bereit. Er verbindet sich lokal über `/var/run/docker.sock`, validiert alle Anfragen per `X-Agent-Token` und läuft standardmäßig auf Port `7070`.
## Start lokal
1. Abhängigkeiten installieren: `npm install`
2. Starten: `AGENT_TOKEN=<token> npm start`
3. Optional: Port via `AGENT_PORT` anpassen.
## Als Docker-Container
```
docker build -t stackpulse-agent ./agent
docker run -d \
-p 7070:7070 \
-e AGENT_TOKEN=<token> \
-v /var/run/docker.sock:/var/run/docker.sock \
stackpulse-agent
```
Der Agent liest nur Docker-Daten und verändert keine Container oder Images.
## Stack-Image-Checks (CE-/BE-Parität)
Endpoint: `GET /stack-images?checkUpdates=true|false`
- Liefert pro Stack (Compose: `com.docker.compose.project`, Swarm: `com.docker.stack.namespace`) die verwendeten Images.
- Optional `checkUpdates=true` für lokalen/remote Digest-Vergleich (`updateAvailable`).
### Portainer-Version
- `GET /portainer/version` liest den laufenden Portainer-Container (Image/Tag/Labels) aus, ermittelt lokale Digest und vergleicht mit Registry-Digest (Update-Indikator). Funktioniert ohne Portainer-API.
Optionale Registry-Creds (für private Registries):
- `REGISTRY_TOKEN` (Bearer)
- oder `REGISTRY_USERNAME` + `REGISTRY_PASSWORD` (Basic)
Hinweis: Für Swarm-Stacks muss der Agent Swarm-Services lesen können (`docker.listServices`). Ohne Swarm-Manager-Rolle bleibt die Swarm-Liste leer.