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 stellen wir zusammen mit der Lizenz bereit (dnseditor-ee_<version>_amd64.deb, …_arm64.deb, dnseditor-ee-<version>-1.x86_64.rpm, …aarch64.rpm); in der Pipeline liegen sie als Artefakt des package-Jobs. Selbst bauen geht ebenfalls, siehe unten.

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

Anders als die Community Edition startet die Enterprise Edition noch nicht: ohne gültige, signierte Lizenz verweigert sie den Dienst. Das Paket sagt genau das:

DNS-Editor has been installed.
Web interface: http://127.0.0.1:8422
Login: admin / Rm1vp7oMuw6AIZoWyo9
IMPORTANT: back up the encryption key from /etc/dnseditor-ee/env now.
NOT STARTED YET: the Enterprise Edition needs a signed license.
1. Put the license file at /etc/dnseditor-ee/license.json
2. Set DNSE_LICENSE_PUBKEY in /etc/dnseditor-ee/env
3. systemctl start dnseditor-ee.service
No license yet? Write to info@techeve.de.

Der Dienst ist dabei bereits aktiviert (systemctl enable), aber bewusst nicht gestartet — ein Start ohne Lizenz endete sonst in einer Neustart-Schleife. Nach Lizenzdatei und Public Key genügt systemctl start dnseditor-ee. Details: Lizenz.

PfadInhalt
/usr/bin/dnseditor-eedie Binärdatei mit eingebetteter Oberfläche
/etc/dnseditor-ee/envKonfiguration — beim ersten Mal erzeugt, danach nie überschrieben
/etc/dnseditor-ee/env.examplevollständige Vorlage aller Variablen
/lib/systemd/system/dnseditor-ee.serviceUnit mit Restart=always und Härtung
/etc/dnseditor-ee/license.jsonAblageort der Lizenzdatei (nicht im Paket enthalten)
/var/lib/dnseditor-eeDatenbank und Zustand, Rechte 0750

Dazu ein Systemkonto dnseditor-ee ohne Login-Shell. Das Paket erklaert sich als Konflikt zu dnseditor (CE) und stellt es zugleich bereit — die Enterprise Edition enthaelt die Community Edition, beide zugleich zu installieren ergibt keinen Sinn. 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).

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

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

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

  • Lizenz — Lizenzdatei anfordern, prüfen, erneuern
  • Inbetriebnahme — Konfiguration, SSO, Selbstheilung