Zum Inhalt

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 Datei syslet/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 Datei syslet/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