Infrastructure as Code — docker-compose Stacks, Configs, Architektur-Docs und ADRs für die Electric Horses / Richter & Zech Hetzner-Cloud-Infrastruktur.
Find a file
Benjamin Weinlich 88c541c9ed docs(adr): mirror 6 ADRs from M7.1 into repo
Adds the Architecture Decision Records that were written during the
Forgejo deployment (M7.1) as part of moving docs from the iCloud folder
into this versioned repository.

Includes:
- ADR-0001: Forgejo vs Gitea (non-profit stewardship)
- ADR-0002: ai-apps placement (no separate VM)
- ADR-0003: Native OIDC, not ForwardAuth
- ADR-0004: Subdomain code.sdda.eu
- ADR-0005: Volume mount on /data (lesson learned)
- ADR-0006: Silent SSO via OAuth2 launch URL (lesson learned)

Plus a docs/adr/README.md that explains the ADR format, lists the
current ADRs, and provides a template for future entries.

Refs OP#1118
2026-04-11 22:26:05 +02:00
docs docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
stacks feat(stacks/eh-search): add site-search FastAPI service 2026-04-11 22:19:39 +02:00
.gitignore chore(repo): initialize infrastructure-as-code repository 2026-04-11 22:19:10 +02:00
Agent.md chore(repo): initialize infrastructure-as-code repository 2026-04-11 22:19:10 +02:00
README.md chore(repo): initialize infrastructure-as-code repository 2026-04-11 22:19:10 +02:00

electric-horses-infra

Infrastructure as Code für Electric Horses / Richter & Zech.

Dieses Repository enthält die versionierten Docker-Compose-Stacks, Reverse-Proxy-Configs, Architektur-Dokumentation und Architecture Decision Records (ADRs) für unsere Hetzner-Cloud-Infrastruktur.

Was lebt hier?

electric-horses-infra/
├── Agent.md                   # AI-Briefing für jede Session
├── README.md                  # diese Datei
├── .gitignore                 # was NICHT commitet wird
│
├── stacks/                    # Docker-Compose Stacks (1:1 was auf den Servern läuft)
│   ├── forgejo/               # code.sdda.eu — dieses Git-Hosting
│   └── eh-search/             # electric-horses.de Site-Search
│
└── docs/                      # Dokumentation
    └── architecture/          # Topologie-Snapshots, Stack-Inventories

Konvention: Jeder Stack-Ordner spiegelt den Stack auf dem tatsächlichen Server — aber ohne Secrets. Die .env mit echten Werten lebt auf dem Server (mode 600), hier ist nur die .env.example als Template.

Was gehört hier REIN

  • docker-compose.yml Dateien
  • Dockerfiles
  • Nginx-Configs
  • Python / Shell Scripts die Teil der Infra sind
  • SQL-Migrationen / Schema-Dumps (nicht Datenbank-Inhalte!)
  • .env.example mit Platzhaltern
  • Markdown-Dokumentation, Diagramme (Mermaid), ADRs, Runbooks

Was gehört hier NICHT REIN

  • Niemals echte .env Dateien, Passwörter, API-Keys, Zertifikate
  • Runtime-Daten (Datenbank-Inhalte, Git-Repos im Git-Repo, uploaded files)
  • Build-Artefakte (node_modules/, dist/, __pycache__/)
  • Logs
  • Backup-Dumps mit Nutzerdaten (DSGVO)

Wenn du unsicher bist: Lass es lieber raus. Es ist einfacher eine fehlende Datei nachzureichen als ein Secret aus der Git-History zu entfernen.

Mitarbeit

Du als Human: Du schreibst Wünsche und Feedback in Claude-Code / OpenProject, reviewst Commits im Web-UI (code.sdda.eu).

Die AI: Liest Agent.md am Sessionstart, macht Änderungen in bestehenden Stacks, committet mit Referenzen auf OpenProject-Work-Packages (Refs OP#1234).

OpenProject Referenz