#!/bin/sh set -e dotnetDir="/opt/dotnet" dnsDir="/etc/dns" dnsTar="/etc/dns/DnsServerPortable.tar.gz" dnsUrl="https://download.technitium.com/dns/DnsServerPortable.tar.gz" mkdir -p $dnsDir installLog="$dnsDir/install.log" echo "" >$installLog echo "" echo "===============================" echo "Technitium DNS Server Update" echo "===============================" if dotnet --list-runtimes 2>/dev/null | grep -q "Microsoft.NETCore.App 6.0."; then dotnetFound="yes" else dotnetFound="no" fi if [ -d $dotnetDir ]; then dotnetUpdate="yes" echo "Updating .NET 6 Runtime..." fi curl -sSL https://dot.net/v1/dotnet-install.sh | bash /dev/stdin -c 6.0 --runtime dotnet --no-path --install-dir $dotnetDir --verbose >>$installLog 2>&1 if [ ! -f "/usr/bin/dotnet" ]; then ln -s $dotnetDir/dotnet /usr/bin >>$installLog 2>&1 fi if dotnet --list-runtimes 2>/dev/null | grep -q "Microsoft.NETCore.App 6.0."; then if [ "$dotnetUpdate" = "yes" ]; then echo ".NET 6 Runtime was updated successfully!" fi else echo "Failed to update .NET 6 Runtime. Please try again." exit 1 fi if curl -o $dnsTar --fail $dnsUrl >>$installLog 2>&1; then if [ -d $dnsDir ]; then echo "Updating Technitium DNS Server..." fi tar -zxf $dnsTar -C $dnsDir >>$installLog 2>&1 if [ "$(ps --no-headers -o comm 1 | tr -d '\n')" = "systemd" ]; then if [ -f "/etc/systemd/system/dns.service" ]; then echo "Restarting systemd service..." systemctl restart dns.service >>$installLog 2>&1 fi echo "" echo "Technitium DNS Server was updated successfully!" else echo "" echo "Failed to update Technitium DNS Server: systemd was not detected." exit 1 fi else echo "" echo "Failed to download Technitium DNS Server from: $dnsUrl" exit 1 fi