Architektur¶
Diese Seite zeigt das Gesamtbild: wo unsere Anwendungen laufen, welche Anbieter beteiligt sind und wie die Teile verbunden sind. Jeder Bestandteil hat eine eigene Seite mit den Details.
Die Plattformen (Netcup, Proxmox, Webhosting, server.camp) und die meisten externen Dienste verwalten wir über die Web-Oberflächen der Anbieter. Eine Übersicht über alles steht in Was wird wo verwaltet.
Die Konfiguration der beiden Hosts, die DNS-Einträge und große Teile von Authentik liegen als Dateien in diesem Repo und werden von unseren eigenen Rechnern aus ausgerollt. Wie das funktioniert, erklärt Infrastructure as Code.
Das Gesamtbild¶
flowchart TB
users(["Mitglieder und Gäste<br>(Internet)"])
subgraph netcup ["Netcup (Rechenzentrum)"]
werner["werner<br>VM, garage-lab.de"]
end
subgraph vorort ["Maschinendorf (vor Ort)"]
gw["Gateway"]
subgraph vlan ["Server-VLAN"]
subgraph proxmox ["Proxmox"]
ch["containerhost<br>VM, garage-lab.net"]
end
nas[("NAS")]
end
kiosk["Kiosk-Bildschirme"]
end
subgraph servercamp ["server.camp"]
authentik["Authentik<br>Single Sign-On"]
kuma["Uptime Kuma"]
end
subgraph webhosting ["Webhosting"]
website["Webseite"]
wiki["DokuWiki"]
mailboxes["Postfächer"]
end
subgraph extern ["Externe Dienste"]
desec["deSEC<br>DNS"]
mailjet["Mailjet<br>Mailversand"]
hc["healthchecks.io"]
codeberg["Codeberg<br>Git-Repo"]
end
users --> werner
users --> authentik
users --> webhosting
werner <-->|WireGuard-Tunnel| gw
gw --- ch
ch -->|NFS| nas
kiosk --> ch
werner -.->|Login| authentik
werner -.->|Mails| mailjet
werner -.->|Backup-Status| hc
kuma -.->|prüft Erreichbarkeit| werner
Durchgezogene Linien sind Verbindungen, über die Menschen oder Geräte unsere Dienste nutzen bzw. über die Netzwerke verbunden sind. Gestrichelte Linien zeigen, welche externen Dienste unsere Server nutzen. Zur besseren Übersicht sind sie nur für werner eingezeichnet; die Apps auf containerhost nutzen dieselben Dienste.
Die Bestandteile¶
Managed Services¶
- hosting.de
- ist der Registrar unserer Domains und unser Webhoster: Dort liegen der Webspace für die Vereinswebseite und das DokuWiki und die E-Mail-Postfächer. Verwaltet wird das über die Web-Oberfläche des Anbieters. Mehr dazu: hosting.de, Eingehende E-Mails
- deSEC
- betreibt die Nameserver für unsere beiden DNS-Zonen. Die Einträge pflegen wir im Repo. Mehr dazu: deSEC, Unsere Zonen
- Mailjet
- verschickt die E-Mails unserer Apps (Benachrichtigungen, Einladungen, Newsletter). Mehr dazu: Mailjet, Ausgehende E-Mails
- server.camp
- betreibt für uns Authentik, unseren zentralen Login, und Uptime Kuma, das von außen prüft, ob unsere Dienste erreichbar sind, und Ausfälle meldet. Mehr dazu: server.camp, Uptime-Monitoring
- healthchecks.io
- meldet, wenn ein Backup fehlschlägt oder gar nicht erst läuft. Mehr dazu: healthchecks.io, Cronjob-Monitoring
- Netcup
- stellt die VM im Rechenzentrum, auf der werner läuft. Mehr dazu: Netcup, VM bei Netcup
- Codeberg
- hostet dieses Repo, also die Konfiguration der gesamten Infrastruktur. Mehr dazu: Codeberg, Git-Workflow
Selfhosting¶
- werner
- Unser Host in der VM bei Netcup, im Internet erreichbar unter
garage-lab.de. Hier laufen die Anwendungen, die Mitglieder und Gäste von überall erreichen sollen, zum Beispiel das Forum, die Nextcloud oder HedgeDoc. Alle Anwendungen laufen als Container, Grundlage ist die Dateisyslet/werner/host.cue. Mehr dazu: werner - containerhost
- Eine VM auf unserem eigenen Proxmox-Server im Maschinendorf, im lokalen Netz unter
garage-lab.net. Hier laufen Dienste, die vor Ort gebraucht werden (etwa für die Kiosk-Bildschirme), das Monitoring und das Ziel für die Backups von werner. Grundlage ist die Dateisyslet/containerhost/host.cue. Mehr dazu: containerhost, Proxmox - Gateway, Server-VLAN und NAS
- Im Maschinendorf verbindet ein Gateway das lokale Netz mit dem Internet. containerhost und das NAS liegen gemeinsam in einem eigenen VLAN für Server. Das NAS speichert die Backups; containerhost bindet es per NFS ein. Mehr dazu: Netzwerk, NAS, Backup
- WireGuard-Tunnel
- werner und das Gateway im Maschinendorf sind über einen verschlüsselten WireGuard-Tunnel verbunden. Darüber schickt werner seine Backups an containerhost, und das Monitoring auf containerhost holt sich die Messwerte von werner. Aus dem Internet ist davon nichts erreichbar. Mehr dazu: Netzwerk, Monitoring
Anwendungen¶
Die Apps sind danach gegliedert, wer sie betreibt (siehe Anwendungen):
- SaaS
- Authentik, unser zentraler Login (Single Sign-On, kurz SSO): Mitglieder haben ein Konto und melden sich damit bei allen angebundenen Apps an. server.camp betreibt die Anwendung samt Updates, wir kümmern uns um die Konfiguration. Mehr dazu: Authentik, SSO und OIDC
- Webhosting
- Die Vereinswebseite und das DokuWiki auf dem Webspace bei hosting.de; die Anwendungen selbst betreiben wir. Mehr dazu: Webseite, DokuWiki
- Selfhosting
- Alle anderen Apps, als Container auf werner und containerhost. Mehr dazu: Anwendungen
Weiterlesen¶
- Grundsätze: nach welchen Regeln wir die Infrastruktur betreiben
- Repo-Aufbau: wo im Repo was liegt
- Anwendungen: welche Apps es gibt und wo sie laufen