docs(architecture): add ai-apps stack inventory snapshot
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
This commit is contained in:
parent
c4a97793d5
commit
723ee00388
1 changed files with 79 additions and 0 deletions
79
docs/architecture/ai-apps-stacks.md
Normal file
79
docs/architecture/ai-apps-stacks.md
Normal file
|
|
@ -0,0 +1,79 @@
|
|||
# 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, Email `info@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.eu`
|
||||
- `locosoft.sdda.eu`
|
||||
- `n8n.sdda.eu`
|
||||
- **`code.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)
|
||||
Loading…
Add table
Reference in a new issue