Skip to content

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.

We hand out the packages together with the license (dnseditor-ee_<version>_amd64.deb, …_arm64.deb, dnseditor-ee-<version>-1.x86_64.rpm, …aarch64.rpm); in the pipeline they are the artifact of the package job. Building them yourself works too, see below.

Terminal window
# Debian, Ubuntu and relatives
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

Unlike the Community Edition, the Enterprise Edition does not start yet: without a valid, signed license it refuses to serve. The package says exactly that:

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.

The unit is already enabled (systemctl enable) but deliberately not started — starting without a license would end in a restart loop. Once the license file and the public key are in place, systemctl start dnseditor-ee is enough. Details: License.

PathContents
/usr/bin/dnseditor-eethe binary with the embedded interface
/etc/dnseditor-ee/envconfiguration — created once, never overwritten
/etc/dnseditor-ee/env.examplefull reference of every variable
/lib/systemd/system/dnseditor-ee.serviceunit with Restart=always and hardening
/etc/dnseditor-ee/license.jsonwhere the license file goes (not shipped in the package)
/var/lib/dnseditor-eedatabase and state, mode 0750

Plus a system account dnseditor-ee without a login shell. The package declares a conflict with dnseditor (CE) and provides it at the same time — the Enterprise Edition contains the Community Edition, so installing both makes no sense. By default the service listens on 127.0.0.1:8422 only — put a TLS reverse proxy in front for public operation (see Commissioning).

Installer and service speak English by default. When the system language is German, the texts appear in German:

Terminal window
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

LC_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:

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

An upgrade replaces the binary and restarts the service; /etc/dnseditor-ee/env is left alone.

Terminal window
sudo apt install ./dnseditor-ee_1.1.0_amd64.deb # upgrade
sudo apt remove dnseditor-ee # stop the service, remove the package

Configuration 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-ee and /var/lib/dnseditor-ee by hand.

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

nfpm needs neither dpkg nor rpmbuild, so it also runs on a Mac and in the CI image. The package definition lives in packaging/.

  • License — request, verify and renew the license file
  • Commissioning — configuration, SSO, self-healing