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
2.3 KiB
2.3 KiB
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