electric-horses-infra/docs/adr
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
..
0001-forgejo-vs-gitea.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
0002-ai-apps-placement.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
0003-native-oidc-not-forwardauth.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
0004-subdomain-code-sdda-eu.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
0005-volume-mount-data-not-var-lib.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
0006-silent-sso-launch-url.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00
README.md docs(adr): mirror 6 ADRs from M7.1 into repo 2026-04-11 22:26:05 +02:00

Architecture Decision Records

Dieses Verzeichnis enthält ADRs — kurze Markdown-Dokumente die einzelne Architektur-Entscheidungen festhalten. Das Pattern kommt von Michael Nygard und ist gemeinsamer Standard in vielen Open-Source-Projekten.

Warum ADRs?

  • Warum, nicht Wie: Der Code ändert sich. Die Intention soll bleiben. Eine ADR erklärt warum etwas so gebaut wurde — in einem halben Jahr weiß niemand mehr sonst.
  • Referenz für AI-Sessions: Wenn die AI morgen eine Änderung vorschlägt, die eine bestehende Entscheidung umkehrt, soll sie das bewusst tun und neue ADR schreiben, nicht versehentlich.
  • Audit-Trail: Jede ADR hat Status, Datum und Entscheider. Das ist Compliance-ready.

Format

Jede ADR folgt grob diesem Schema:

# ADR-NNNN: <Titel>
Status: Proposed | Accepted | Superseded by ADR-NNNN | Deprecated
Datum: YYYY-MM-DD
Entscheider: <Name>
Phase: <OpenProject Phase oder Sprint>

## Kontext
Was war das Problem? Welche Optionen standen zur Wahl?

## Entscheidung
Was wurde gewählt?

## Begründung
Warum genau diese Option? Welche Prinzipien waren leitend?

## Konsequenzen
- **Positiv:** Was gewinnen wir?
- **Negativ/Trade-off:** Was geben wir auf?

## Alternativen
Was wurde verworfen und warum?

Nummerierung

Fortlaufend NNNN beginnend bei 0001. Niemals alte ADRs ändern — superseden via neue ADR mit Verweis. Die Historie ist die Wahrheit.

Aktuelle ADRs (alle aus M7.1 — Forgejo Deployment)

# Titel Status
0001 Forgejo statt Gitea Accepted
0002 Forgejo auf ai-apps, nicht separate VM Accepted
0003 Natives OIDC statt ForwardAuth Accepted
0004 Subdomain code.sdda.eu Accepted
0005 Volume-Mount auf /data Accepted (Lesson Learned)
0006 Silent SSO via OAuth2-Initiate-Launch-URL Accepted (Lesson Learned)

Vorlage für neue ADRs

Copy-and-paste Startpunkt:

# ADR-NNNN: <Titel>

**Status:** Proposed
**Datum:** YYYY-MM-DD
**Entscheider:** <Name>
**Phase:** <OpenProject>

## Kontext

## Entscheidung

## Begründung

## Konsequenzen

### Positiv

### Negativ / Trade-off

## Alternativen

## Referenzen