Installing from a package
Besides the bare binary there are ready-made distribution packages. The package brings everything a service needs on a server: its own system account, a systemd unit with a restart policy, a configuration file with a freshly generated encryption key and a start password for the first login.
Installing
Section titled “Installing”The most convenient route on Debian/Ubuntu is the TechEve package
repository — set it up once, then updates arrive through the ordinary
apt upgrade, and the admin area points out new versions:
curl -fsSL https://repo.techeve.de/setup.sh | sudo shsudo apt install dnseditorAlternatively, packages are attached to every release as Generic Packages
in the GitLab project (dnseditor_<version>_amd64.deb, …_arm64.deb,
dnseditor-<version>-1.x86_64.rpm, …aarch64.rpm).
# Debian, Ubuntu and relatives (single file)sudo apt install ./dnseditor_1.0.0_amd64.deb
# RHEL, Fedora, Rocky, SUSEsudo dnf install ./dnseditor-1.0.0-1.x86_64.rpmThe service runs right after installation and reports the credentials:
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.What the package installs
Section titled “What the package installs”| Path | Contents |
|---|---|
/usr/bin/dnseditor | the binary with the embedded interface |
/etc/dnseditor/env | configuration — created once, never overwritten |
/etc/dnseditor/env.example | full reference of every variable |
/lib/systemd/system/dnseditor.service | unit with Restart=always and hardening |
/var/lib/dnseditor | database and state, mode 0750 |
Plus a system account dnseditor without a login shell. By default the
service listens on 127.0.0.1:8422 only — put a TLS reverse proxy in front
for public operation (see Quick start).
Language of the output
Section titled “Language of the output”Installer and service speak English by default. When the system language is German, the texts appear in German:
LANG=de_DE.UTF-8 sudo apt install ./dnseditor_1.0.0_amd64.debDNS-Editor wurde installiert. Oberflaeche: http://127.0.0.1:8422 Anmeldung: admin / 3ce5002cb3a407e7fc70965aLC_ALL, LC_MESSAGES and LANG are read in that order, then LANGUAGE.
C and POSIX count as neutral and stay English.
The German terminal texts deliberately avoid umlauts (“Oberflaeche”, “Schluessel”). Services run under systemd with a neutral locale; real umlauts would regularly show up as question marks or mojibake in the journal, over SSH sessions and in log aggregators. The web interface, the API, e-mails and invoice PDFs are unaffected — they carry proper German.
To make the running service log in German, put the locale into the
configuration, because systemd starts services without LANG:
echo 'LANG=de_DE.UTF-8' | sudo tee -a /etc/dnseditor/envsudo systemctl restart dnseditorUpgrading and removing
Section titled “Upgrading and removing”An upgrade replaces the binary and restarts the service;
/etc/dnseditor/env is left alone.
sudo apt install ./dnseditor_1.1.0_amd64.deb # upgradesudo apt remove dnseditor # stop the service, remove the packageConfiguration and database survive even a purge — the env file holds the
key without which any backup is worthless. To really get rid of everything,
delete /etc/dnseditor and /var/lib/dnseditor by hand.
Building the packages yourself
Section titled “Building the packages yourself”go install github.com/goreleaser/nfpm/v2/cmd/nfpm@latestmake package # → dist/packages/*.deb and *.rpm, amd64 + arm64nfpm needs neither dpkg nor rpmbuild, so it also runs on a Mac and in
the CI image. The package definition lives in packaging/.
Next steps
Section titled “Next steps”- Configuration — every variable at a glance
- Operations & self-healing — health endpoints, watchdog, restart policy