arc42-Architekturdokumentation
Home Server
Selbst gehostete persönliche Infrastruktur
Abschnitt 1
Einführung und Ziele
Zweck
Home Server stellt die selbst gehostete Infrastruktur für persönliche Dienste, Anwendungen und technische Experimente bereit.
Abschnitt 2
Randbedingungen
Randbedingungen
- Die Infrastruktur läuft auf einem Linux-Host.
- Dienste sollen soweit sinnvoll containerisiert werden.
- Das Setup soll für den persönlichen Betrieb reproduzierbar und verständlich bleiben.
Abschnitt 3
Kontextabgrenzung
Für diesen Abschnitt wurden noch keine Inhalte hinzugefügt.
Abschnitt 4
Lösungsstrategie
Lösungsstrategie
- Linux als Host-Betriebssystem verwenden.
- Dienste in Docker-Containern betreiben.
- Ein strukturiertes lokales Netzwerk für die Dienstkommunikation verwenden.
Abschnitt 5
Bausteinsicht
Bausteine
Die Infrastruktur besteht aus Linux-Host, Container-Laufzeit, einzelnen Service-Containern, persistenten Volumes und dem lokalen Netzwerk.
Abschnitt 6
Laufzeitsicht
Für diesen Abschnitt wurden noch keine Inhalte hinzugefügt.
Abschnitt 7
Verteilungssicht
Home-Server-Deployment
Deployment-Übersicht des Linux-Hosts und seiner containerisierten Dienste.
Container-Beispiel
services:
web:
image: memanager
db:
image: postgres
Abschnitt 8
Querschnittliche Konzepte
Für diesen Abschnitt wurden noch keine Inhalte hinzugefügt.
Abschnitt 9
Architekturentscheidungen
Architekturentscheidungen
| Entscheidung | Begründung |
|---|---|
| Containerisierte Dienste | Container verbessern Isolation und Reproduzierbarkeit. |
| Linux als Host-Plattform | Linux stellt die für Netzwerk und Self-Hosting benötigten Werkzeuge bereit. |
Abschnitt 10
Qualitätsanforderungen
Qualitätsziele
- Reproduzierbare Bereitstellung von Diensten.
- Einfache Betriebsführung für eine persönliche Umgebung.
- Isolation zwischen unabhängig bereitgestellten Diensten.
Abschnitt 11
Risiken und technische Schulden
Risiken
- Ein einzelner physischer Host ist ein gemeinsamer Ausfallpunkt.
- Manuelle Netzwerk- und Speicherkonfiguration kann sich mit der Zeit auseinanderentwickeln.
Abschnitt 12
Glossar
Glossar
| Begriff | Definition |
|---|---|
| Host | Physische oder virtuelle Maschine, die die Container-Laufzeit bereitstellt. |
| Container | Isolierte Laufzeiteinheit für einen Dienst. |
| Volume | Persistenter Speicher, der in einen Container eingebunden wird. |