Captures the current state of all Docker stacks running on ai-apps (Hetzner cx22, 10.0.0.8) as of 2026-04-11. Includes resource budget, DNS records, Traefik integration pattern, and backup situation. This is a point-in-time snapshot; update when new stacks are added. Refs OP#1118
3.8 KiB
3.8 KiB
ai-apps — Service Stack Inventory
Stand: 2026-04-11 Host: Hetzner cx22 (8 GB RAM, 2 vCPU shared, 75 GB Disk) Netzwerke: Public 91.98.226.44, Privat 10.0.0.8 OS: Debian / Docker 29.x + Compose v5 Swap: 2 GB (/swapfile in fstab)
Service-Übersicht
| Stack | Containers | Exposed | Domain(s) | DB | Memory (peak) |
|---|---|---|---|---|---|
| shared | traefik, portainer | 80, 443 | traefik.sdda.eu, containers.sdda.eu |
— | ~200 MB |
| n8n | n8n, n8n-db | — (via Traefik) | n8n.sdda.eu |
Postgres 16 | ~400 MB |
| locosoft-hilfe-system | locosoft-backend, locosoft-frontend, locosoft-db, locosoft-redis, chromadb | — | locosoft.sdda.eu, chromadb.sdda.eu |
Postgres 16 + Redis + ChromaDB | ~1.5 GB |
| eh-search | eh-search, eh-search-redis | 10.0.0.8:8200 (privat) | via Pegasus nginx /api/search |
Redis | ~250 MB |
| loco-replica | loco-replica-db | 10.0.0.8:5433 (privat) | — | Postgres 17 | ~300 MB |
| electric-horses-audits | eh-audits | — (n8n-triggered) | — | — | ~200 MB |
| forgejo ★NEU★ | forgejo, forgejo-db | 222 (SSH), via Traefik | code.sdda.eu |
Postgres 16 | ~800 MB |
Gesamt-Schätzwert: ~3.5 GB Peak, gemessener Durchschnitt ~1.9 GB + Cache.
Traefik (shared)
- Version: 3.6.2
- ACME Resolver:
letsencrypt(HTTP-Challenge, Emailinfo@sdda.eu) - Dynamic Config:
/opt/shared/traefik/dynamic/(File Provider für Middlewares:authentik.yml,authentik-outpost.yml) - Docker Network:
traefik-public(external, alle Web-Services hängen dort) - ACME Store:
/opt/shared/traefik/acme.json
Authentik Integration
- Authentik-Server: separater Host
authentik-sso(138.199.202.82 / 10.0.0.7), NICHT auf ai-apps - ForwardAuth-Apps (existing):
locosoft-forward-auth,n8n-forward-auth(beide Proxy Provider, Embedded Outpost) - Native OIDC-Apps (neu ab 2026-04-11):
forgejo(OAuth2/OpenID Provider, siehe../Forgejo/adr/0003-*.md)
Stack-Organisation
Jeder Stack lebt in eigenem Verzeichnis unter /opt/ai-apps/<stack>/:
/opt/ai-apps/
├── electric-horses-audits/
├── eh-search/
├── forgejo/ ← NEW 2026-04-11
├── locosoft-hilfe-system/
├── loco-replica/
├── mobile-refdata/ ← scripts only
└── n8n/
/opt/shared/ ← Traefik + Portainer
/opt/backups/ ← centralised backup target
Pattern: Jeder Stack hat eine eigene docker-compose.yml und .env, eigene interne Netzwerke, gemeinsames traefik-public für Web-Exposure.
Ressourcen-Bewertung (2026-04-11)
- RAM: 7.6 GB total, 1.9 GB wirklich in use, 5.7 GB available (inkl. Cache), 250 MB free, 2 GB Swap aktiv
- Disk: 20 GB frei von 75 GB (73% belegt)
- Load: ~0.1 (idle)
- Fazit: Forgejo passt noch rein, aber der Spielraum für zukünftige Services (z.B. Forgejo Actions, Monitoring, Semantic Search Index) ist begrenzt. Bei >85% RAM-Auslastung: Upgrade auf cx32 (16 GB, +4 €/Monat).
DNS Einträge unter sdda.eu die auf ai-apps zeigen (91.98.226.44)
ai.sdda.eu(Alias)containers.sdda.eu(Portainer)traefik.sdda.eu(Traefik Dashboard)chromadb.sdda.eulocosoft.sdda.eun8n.sdda.eucode.sdda.eu← Forgejo (NEU)
Backups (Stand 2026-04-11)
- forgejo: Cron 03:00 →
/opt/backups/forgejo/, Retention 14 Tage (seit M7.1) - andere Stacks: Keine zentrale Backup-Infrastruktur. Hetzner Cloud Snapshots manuell. Rclone → Nextcloud noch nicht eingerichtet (geplant M7.5).
Zugriff
- SSH:
ssh ai-apps(User root, Key-basiert) - Portainer: https://containers.sdda.eu (admin)
- Traefik Dashboard: https://traefik.sdda.eu
OpenProject-Referenz
- M7.1 (#1119) — Forgejo Deployment: https://openproject.sdda.eu/work_packages/1119
- M7 (#1118) — Operations & Documentation Foundation (Parent Phase)