Installation de Technitium DNS Server sous Alpine Linux
Contexte
Officiellement, Technitium DNS Server ne dispose pas de documentation officielle pour Alpine Linux.
Ce guide a donc pour objectif de vous proposer une méthode non officielle mais fonctionnelle pour installer et exécuter Technitium sous Alpine 3.20.
Prérequis
- Alpine Linux 3.20 minimum
- Accès root ou
sudo - Connexion Internet active
Installation des paquets nécessaires
Ajouter les dépôts Edge
Éditez le fichier des dépôts :
vi /etc/apk/repositories
Ajoutez les dépôts Edge :
http://dl-cdn.alpinelinux.org/alpine/edge/main
http://dl-cdn.alpinelinux.org/alpine/edge/community
http://dl-cdn.alpinelinux.org/alpine/edge/testing
Installer les dépendances
apk add aspnetcore8-runtime bash sudo tar unzip curl
Télécharger et installer Technitium DNS
curl -O https://download.technitium.com/dns/DnsServerPortable.tar.gz
sudo mkdir -p /opt/technitium/dns
sudo tar -zxf DnsServerPortable.tar.gz -C /opt/technitium/dns
chmod +x /opt/technitium/dns/start.sh
Création du service OpenRC
Créez le fichier de service :
vi /etc/init.d/technitium-dns
[!NOTE] Remarque : Le script ci-dessous utilise un
kill -9pour forcer l'arrêt du processus. C'est un peu « sale », mais nécessaire ici à cause de la gestion incomplète du signalTERMpar dotnet sous Alpine.
Contenu du script /etc/init.d/technitium-dns
#!/sbin/openrc-run
name="Technitium DNS Server"
description="Technitium DNS Server using dotnet"
command="/usr/bin/dotnet"
command_args="/opt/technitium/dns/DnsServerApp.dll"
command_user="root"
pidfile="/var/run/technitium-dns.pid"
directory="/opt/technitium/dns"
depend() {
need net
}
start_pre() {
if [ ! -f "${directory}/DnsServerApp.dll" ]; then
eerror "DnsServerApp.dll not found in ${directory}"
return 1
fi
export DOTNET_ROOT=/usr/lib/dotnet
export PATH=$PATH:/usr/lib/dotnet
return 0
}
start() {
ebegin "Starting ${name}"
${command} ${command_args} > /opt/technitium/dns/technitium-dns.log 2>&1 &
echo $! > ${pidfile}
eend $?
}
stop() {
ebegin "Stopping ${name}"
if [ -f "${pidfile}" ]; then
PID=$(cat ${pidfile})
kill -9 $PID
sleep 2
if ps -p $PID > /dev/null; then
eerror "Failed to stop ${name}. Process is still running."
eend 1
else
rm -f ${pidfile}
eend 0
fi
else
eerror "No PID file found. Is the service running?"
eend 1
fi
}
Activer et démarrer le service
Rendez le script exécutable et ajoutez-le au démarrage :
sudo chmod +x /etc/init.d/technitium-dns
sudo rc-update add technitium-dns
sudo rc-service technitium-dns start
Accès à l'interface d'administration
Une fois le service démarré, accédez à l'interface Web de Technitium via :
[!TIP] http://IP_SERVEUR:5380/
Conclusion
Vous disposez maintenant d’un serveur DNS complet et léger fonctionnant sous Alpine Linux grâce à Technitium DNS Server.
Malgré l’absence de documentation officielle, cette méthode s’avère fiable pour un usage personnel ou en labo.
[!NOTE] Note de transparence : Cet article est basé sur mon contenu original. La mise en forme et certaines reformulations ont été réalisées avec l'aide d'un outil d'IA.!
