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.

Der bequemste Weg auf Debian/Ubuntu ist das TechEve-Paket-Repository — einmal einrichten, danach kommen Updates ganz normal über apt upgrade, und der Admin-Bereich weist auf neue Versionen hin:

Terminal-Fenster
curl -fsSL https://repo.techeve.de/setup.sh | sudo sh
sudo apt install dnseditor

Alternativ hängen die Pakete an jedem Release als Generic Package im GitLab-Projekt (dnseditor_<version>_amd64.deb, …_arm64.deb, dnseditor-<version>-1.x86_64.rpm, …aarch64.rpm).

Terminal-Fenster
# Debian, Ubuntu und Verwandte (Einzeldatei)
sudo apt install ./dnseditor_1.0.0_amd64.deb
# RHEL, Fedora, Rocky, SUSE
sudo dnf install ./dnseditor-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
IMPORTANT: back up the encryption key from /etc/dnseditor/env now.
PfadInhalt
/usr/bin/dnseditordie Binärdatei mit eingebetteter Oberfläche
/etc/dnseditor/envKonfiguration — beim ersten Mal erzeugt, danach nie überschrieben
/etc/dnseditor/env.examplevollständige Vorlage aller Variablen
/lib/systemd/system/dnseditor.serviceUnit mit Restart=always und Härtung
/var/lib/dnseditorDatenbank und Zustand, Rechte 0750

Dazu ein Systemkonto dnseditor 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 Schnellstart).

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_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/env
sudo systemctl restart dnseditor

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

Terminal-Fenster
sudo apt install ./dnseditor_1.1.0_amd64.deb # Upgrade
sudo apt remove dnseditor # 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 und /var/lib/dnseditor 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/.