No description
Find a file
2026-02-28 02:14:53 +01:00
hosts comment and fix umlauts 2026-02-28 02:14:53 +01:00
.gitignore ignore result symlink 2025-10-24 16:38:29 +02:00
default.nix update default imports 2026-02-27 20:28:08 +01:00
flake-show.png screenshot nix flake show 2025-11-14 16:41:31 +01:00
flake.lock flake.lock: Update 2026-02-24 19:03:55 +01:00
flake.nix update default imports 2026-02-27 20:28:08 +01:00
hardware-configuration.nix nixfmt rfc style 2025-05-26 11:57:29 +02:00
hetzner-disk.nix disko install 2025-05-23 16:50:58 +02:00
README.md deploy without nix 2026-02-25 20:18:02 +01:00

StuRa HTW Dresden Mailserver

neue mailserver config, ersetzt von Hand konfiguriertes FreeBSD Relay System ohne Mailkonten.

Ziel ist es den Identity-Provider goauthentik mit ldap an simple-nixos-mailserver anzubinden.

Flake Struktur In dieser Flake werden, wie durch den command nix flake show zu sehen, mehrere NixOS-Configuration und Pakete definiert.

Ordner Hosts

jeder ornder ist ein system - es wird builtins.readDir verwendet, um alle Unterordner zu finden und ein nixos System fpr jeden davon zu generieren.

  • authentik
  • mail
  • git
  • redmine

Datei hosts/<name>/default.nix wird evaluiert und muss die alle weiteren z.B. authentik.nix importieren. Davon ausgenommen ist der inhalt von default.nix im Hauptordner, diese Datei enthält alle globalen Einstellungen, die in jedem System aktiviert werden.

Todo

  • mailverteiler mitgliedschaft aus ldap gruppen?

  • aliase aus ldap attributen?

  • forgejo an authentik via oauth

  • demo mäßg redmine in container kopieren

  • demo mäßg forgejo in container einrichten

Setup

Folgende DNS-Records werden benötigt:

Name Type IP
mail.test.htw.stura-dresden.de A 141.56.51.95
lists.test.htw.stura-dresden.de A 141.56.51.95
test.htw.stura-dresden.de A 141.56.51.95
auth.test.htw.stura-dresden.de A 141.56.51.96

Man könnte auch nur mail.test.htw.stura-dresden auf die ip zeigen lassen und die anderen beiden Records als CNAME Verweis auf diesen namen zeigen lassen

Setup Authentik

nix run github:nix-community/nixos-anywhere -- --flake .#authentik --target-host root@141.56.51.96

im installierten System

Authentik kann nicht ohne env datei starten

echo "AUTHENTIK_SECRET_KEY=$(openssl rand -hex 32)" > /var/lib/authentik_secret

danach muss man dann im browser den initial setup flow machen und dann ldap provider einrichten https://docs.goauthentik.io/add-secure-apps/providers/ldap/generic_setup

/var/lib/authentik-ldap-env

AUTHENTIK_HOST=https://auth.test.htw.stura-dresden.de
AUTHENTIK_TOKEN=<token>

Setup Mail

nix run github:nix-community/nixos-anywhere -- --flake .#mail --target-host root@141.56.51.95

Proxy (und andere Systeme) neu updaten

Die config liegt nicht mehr wie gehabt auf dem server sondern heir in dem git repo. Deployt wird vom eigenen Laptop über ssh in die Instanz. nixos-rebuild switch --flake .#proxy --target-host root@141.56.51.1

Das funktioniert nur wenn man einen ssh-config eintrag für die IP hat, da der Port gesetzt werden muss.

Kein NIX auf der lokalen Maschine

Wenn lokal kein nix installiert is kann natürlich nich nixos-rebuild verwendet werden. Stattdessen kann man den command auf dem Zielsystem ausführen: ssh root@141.56.51.1 "nixos-rebuild switch --flake git+https://codeberg.org/stura-htw-dresden/stura-infra#proxy"