Zum Inhalt springen

Installation als Paket

Neben der nackten Binärdatei gibt es fertige Distributionspakete. Das Paket bringt alles mit, was ein Dienst auf einem Server braucht: eigenes Dienstkonto, systemd-Unit mit Neustart-Policy, Konfigurationsdatei mit frisch erzeugtem Verschlüsselungsschlüssel und ein Startpasswort für den ersten Login.

Die Pakete entstehen im package-Job der Pipeline und liegen dort als Artefakt (dnseditor-cloud_<version>_amd64.deb, …_arm64.deb, dnseditor-cloud-<version>-1.x86_64.rpm, …aarch64.rpm). Für einen eigenen Knoten geht auch der Weg über make package, siehe unten.

Terminal-Fenster
# Debian, Ubuntu und Verwandte
sudo apt install ./dnseditor-cloud_1.0.0_amd64.deb
# RHEL, Fedora, Rocky, SUSE
sudo dnf install ./dnseditor-cloud-1.0.0-1.x86_64.rpm

Direkt nach der Installation läuft der Dienst und meldet den Zugang:

DNS-Editor has been installed.
Web interface: http://127.0.0.1:8422
Login: admin / 3ce5002cb3a407e7fc70965a
Operator panel: http://127.0.0.1:8422/operator
Operator login: operator / Ox2h8dDLBFfs3neJacgq
IMPORTANT: back up the encryption key from /etc/dnseditor-cloud/env now.

Die Cloud-Variante hat zwei getrennte Zugaenge: den Plattform-Admin und das Operator-Panel unter /operator. Beide Startpasswoerter erzeugt das Paket beim ersten Mal und schreibt sie nach /etc/dnseditor-cloud/env.

PfadInhalt
/usr/bin/dnseditor-clouddie Binärdatei mit eingebetteter Oberfläche
/etc/dnseditor-cloud/envKonfiguration — beim ersten Mal erzeugt, danach nie überschrieben
/etc/dnseditor-cloud/env.examplevollständige Vorlage aller Variablen
/lib/systemd/system/dnseditor-cloud.serviceUnit mit Restart=always und Härtung
/var/lib/dnseditor-cloudDatenbank und Zustand, Rechte 0750

Dazu ein Systemkonto dnseditor-cloud ohne Login-Shell. Der Dienst lauscht per Vorgabe nur auf 127.0.0.1:8422 — für den öffentlichen Betrieb gehört ein Reverse Proxy mit TLS davor (siehe Inbetriebnahme).

Ein einzelner Knoten laeuft mit der SQLite-Vorgabe sofort. Fuer einen Cluster muessen alle Knoten dieselbe Datenbank und denselben Sitzungsspeicher benutzen — sonst kennt Knoten B die Anmeldung von Knoten A nicht. Beides steht auskommentiert in /etc/dnseditor-cloud/env:

Terminal-Fenster
DNSE_DB_DSN=postgres://dnseditor:...@db.internal:5433/dnseditor?sslmode=require
DNSE_DB_YB=on
DNSE_VALKEY_ADDR=valkey.internal:6379

Wichtig: derselbe DNSE_ENCRYPTION_KEY auf allen Knoten. Das Paket erzeugt auf jedem Host einen eigenen — beim zweiten Knoten also den Schluessel des ersten uebernehmen, sonst sind die Zugangsdaten in der gemeinsamen Datenbank nicht lesbar. Details: Clusterbetrieb.

Installer und Dienst reden standardmäßig Englisch. Ist die Systemsprache deutsch, erscheinen die Texte auf Deutsch:

Terminal-Fenster
LANG=de_DE.UTF-8 sudo apt install ./dnseditor-cloud_1.0.0_amd64.deb
DNS-Editor wurde installiert.
Oberflaeche: http://127.0.0.1:8422
Anmeldung: admin / 3ce5002cb3a407e7fc70965a

Ausgewertet werden LC_ALL, LC_MESSAGES und LANG in dieser Reihenfolge, danach LANGUAGE. C und POSIX gelten als neutral und bleiben englisch.

Die deutschen Terminal-Texte kommen bewusst ohne Umlaute aus („Oberflaeche”, „Schluessel”). Dienste laufen unter systemd mit neutraler Locale; echte Umlaute würden im Journal, über SSH-Sitzungen und in Log-Aggregatoren regelmäßig als Fragezeichen oder Mojibake ankommen. Oberfläche, API, E-Mails und Rechnungs-PDFs sind davon nicht betroffen — dort steht korrektes Deutsch.

Soll auch der laufende Dienst deutsch protokollieren, gehört die Locale in die Konfiguration, denn systemd startet Dienste ohne LANG:

Terminal-Fenster
echo 'LANG=de_DE.UTF-8' | sudo tee -a /etc/dnseditor-cloud/env
sudo systemctl restart dnseditor-cloud

Ein Upgrade tauscht nur die Binärdatei und startet den Dienst neu; /etc/dnseditor-cloud/env bleibt unangetastet.

Terminal-Fenster
sudo apt install ./dnseditor-cloud_1.1.0_amd64.deb # Upgrade
sudo apt remove dnseditor-cloud # Dienst stoppen, Paket entfernen

Konfiguration und Datenbank bleiben auch beim purge erhalten — im env-File liegt der Schlüssel, ohne den jedes Backup wertlos ist. Wer wirklich alles loswerden will, löscht /etc/dnseditor-cloud und /var/lib/dnseditor-cloud von Hand.

Terminal-Fenster
go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latest
make package # → dist/packages/*.deb und *.rpm, amd64 + arm64

nfpm braucht weder dpkg noch rpmbuild und läuft deshalb auch auf einem Mac und im CI-Image. Die Paketdefinition liegt in packaging/.