71 lines
2.8 KiB
Markdown
71 lines
2.8 KiB
Markdown
# 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.
|
|
|
|

|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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
|
|
```bash
|
|
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"`
|