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 packages are built by the package job of the pipeline and kept there
as an artifact (dnseditor-cloud_<version>_amd64.deb, …_arm64.deb,
dnseditor-cloud-<version>-1.x86_64.rpm, …aarch64.rpm). For your own node
make package works as well, see below.
# Debian, Ubuntu and relativessudo apt install ./dnseditor-cloud_1.0.0_amd64.deb
# RHEL, Fedora, Rocky, SUSEsudo dnf install ./dnseditor-cloud-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
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.The cloud edition has two separate logins: the platform admin and the
operator panel under /operator. The package generates both start
passwords on first install and writes them to /etc/dnseditor-cloud/env.
What the package installs
Section titled “What the package installs”| Path | Contents |
|---|---|
/usr/bin/dnseditor-cloud | the binary with the embedded interface |
/etc/dnseditor-cloud/env | configuration — created once, never overwritten |
/etc/dnseditor-cloud/env.example | full reference of every variable |
/lib/systemd/system/dnseditor-cloud.service | unit with Restart=always and hardening |
/var/lib/dnseditor-cloud | database and state, mode 0750 |
Plus a system account dnseditor-cloud 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 Commissioning).
Several nodes
Section titled “Several nodes”A single node runs right away with the SQLite default. A cluster needs
every node on the same database and the same session store — otherwise
node B does not know about a login on node A. Both are in
/etc/dnseditor-cloud/env, commented out:
DNSE_DB_DSN=postgres://dnseditor:...@db.internal:5433/dnseditor?sslmode=requireDNSE_DB_YB=onDNSE_VALKEY_ADDR=valkey.internal:6379Important: the same DNSE_ENCRYPTION_KEY on every node. The package
generates its own on each host — so copy the first node’s key to the
second, otherwise the credentials in the shared database cannot be read.
Details: Cluster operation.
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-cloud_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-cloud/envsudo systemctl restart dnseditor-cloudUpgrading and removing
Section titled “Upgrading and removing”An upgrade replaces the binary and restarts the service;
/etc/dnseditor-cloud/env is left alone.
sudo apt install ./dnseditor-cloud_1.1.0_amd64.deb # upgradesudo apt remove dnseditor-cloud # 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-cloud and /var/lib/dnseditor-cloud 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”- Commissioning — configuration, operations, self-healing
- Cluster operation — several nodes, shared database and sessions