Installation Technitium DNS Server sous Alpine Linux
Officiellement Technitium n'a pas de guide officiel pour être installé sous Alpine Linux.
c'est donc un guide non officiel mais fonctionnelle pour installer Technitium sous Alpine.
Éditer le fichier des dépôts :
vi /etc/apk/repositories
Ajouter 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
Installation des dépendances :
apk add aspnetcore8-runtime bash sudo tar unzip curl
Installation de Technitium :
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 fichier de "service" :
vi /etc/init.d/technitium-dns
Pour information le script de service est un peu sale (oui je kill...) car cela poser des soucis pour l'arrêt du processus...
#!/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} # Enregistre le PID dans le fichier de PID
eend $?
}
stop() {
ebegin "Stopping ${name}"
if [ -f "${pidfile}" ]; then
PID=$(cat ${pidfile})
# Envoyer un signal TERM pour arrêter le processus
kill -9 $PID
sleep 2 # Attendre un peu pour s'assurer que le processus se termine
# Vérifier si le processus existe encore
if ps -o pid | grep $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
}
On mets les droits qui vont bien, on rajoute le service au démarrage de la machine :
sudo chmod +x /etc/init.d/technitium-dns
sudo rc-update add technitium-dns
sudo rc-service technitium-dns start
Connexion à l'interface admin :
http://IP_SERVER:5380/