Erstellt: 2025-11-25
Als Basis verwende ich einen vollständigen Klon meines vorinstallierte Alpine-VMs. Folgende Ressourcen werden benötigt:
Disk Size: 3 GB | CPU-Cores: 1 | Ram: 512 MB
System auf aktuellem Stand bringen:
sudo apk update && sudo apk upgrade
Firewall installieren und einrichten:
sudo apk add ufw
Alle Ports schließen:
sudo ufw default deny incoming && sudo ufw default allow outgoing
Folgende Ports öffnen:
sudo ufw allow 80/tcp
sudo ufw allow 53
sudo ufw allow 3000/tcp
sudo ufw allow 22/tcp
Firewall aktivieren:
sudo ufw enable
Status ansehen:
sudo ufw status verbose
IPV6 deaktivieren:
sudo nano /etc/ufw/ufw.conf
Suche nach:
IPV6=yes
ändern zu:
IPV6=no
Strg+x, y, Enter
Ist die Zeile nicht vorhanden, dann am Ende IPV6=no hinzufügen.
sudo ufw disable
sudo ufw enable
Prüfen:
sudo ufw status verbose
Statische IP-Adresse vergeben:
Adapterbezeichnung herausfinden:
ip a
Meine Bezeichung ist eth0.
sudo nano /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet static
address 192.168.10.230
netmask 255.255.255.0
gateway 192.168.10.1
dns-nameservers 1.1.1.1 8.8.8.8
Strg+x, y, Enter
sudo rc-service networking restart
Mit der neuen IP-Adresse im Terminal einloggen.
AdGuard Installation:
sudo apk update && sudo apk upgrade
sudo apk add wget tar
AdGuard Home herunterladen
cd /opt && \
sudo wget \
https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_arm64.tar.gz && \
sudo tar -xvf \
AdGuardHome_linux_arm64.tar.gz && \
cd AdGuardHome
Setup starten
sudo ./AdGuardHome -s install
Web‑Interface unter http://<VM-IP>:3000.
Wurde Adguard eingerichtet, ist es nun unter folgender Adresse erreichbar:
http://<VM-IP>
Nun die Firewall anpassen – Port 3000 wird nicht mehr benötigt:
sudo ufw delete allow 3000/tcp
sudo ufw status
OpenRC‑Service einrichten
sudo nano /etc/init.d/adguardhome
#!/sbin/openrc-run
description="AdGuard Home DNS Filter"
command="/opt/AdGuardHome/AdGuardHome"
command_args="-s run"
command_background=true
pidfile="/run/$RC_SVCNAME.pid"
depend() {
need net
provide dns
after firewall
}
Strg+x, y, Enter
sudo chmod +x /etc/init.d/adguardhome
Service aktivieren
sudo rc-update add adguardhome default
sudo rc-service adguardhome start
Die Meldung:
"/usr/libexec/rc/sh/gendepends.sh: line 12: network-online.target: not found"
kann ignoriert werden. Das kommt daher, dass OpenRC versucht eine Abhängigkeit zu prüfen, die es nur bei systemd gibt. Alpine/OpenRC ignoriert das einfach, und der Dienst startet trotzdem erfolgreich.
Automatische Aktualisierung:
sudo nano /usr/local/bin/update-system-adguard.sh
#!/bin/sh
#
# Automatisches Update für Alpine Linux + AdGuard Home
# Läuft später per Cronjob (z. B. täglich um 01:00 Uhr)
LOGFILE="/var/log/system-adguard-update.log"
DATE=$(date '+%Y-%m-%d %H:%M:%S')
echo "=== Update gestartet: $DATE ===" >> $LOGFILE
# 1. Alpine Systemupdate
echo "[INFO] Starte apk update/upgrade..." >> $LOGFILE
/sbin/apk update >> $LOGFILE 2>&1
/sbin/apk upgrade -U >> $LOGFILE 2>&1
echo "[INFO] Systemupdate abgeschlossen." >> $LOGFILE
# 2. AdGuard Home Update
echo "[INFO] Lade neueste AdGuard Home Version..." >> $LOGFILE
TMPDIR=$(mktemp -d)
wget -q https://github.com/AdguardTeam/AdGuardHome/releases/latest/download/AdGuardHome_linux_amd64.tar.gz -O $TMPDIR/AdGuardHome.tar.gz
if [ -s $TMPDIR/AdGuardHome.tar.gz ]; then
echo "[INFO] Entpacke neue Version..." >> $LOGFILE
tar -xzf $TMPDIR/AdGuardHome.tar.gz -C $TMPDIR
cp -r $TMPDIR/AdGuardHome/* /opt/AdGuardHome/
echo "[INFO] Neustart von AdGuard Home..." >> $LOGFILE
rc-service adguardhome restart >> $LOGFILE 2>&1
echo "[INFO] AdGuard Home erfolgreich aktualisiert." >> $LOGFILE
else
echo "[WARN] Konnte AdGuard Home nicht herunterladen." >> $LOGFILE
fi
rm -rf $TMPDIR
DATE_END=$(date '+%Y-%m-%d %H:%M:%S')
echo "=== Update beendet: $DATE_END ===" >> $LOGFILE
echo "" >> $LOGFILE
Strg+x, y, Enter
sudo chmod +x /usr/local/bin/update-system-adguard.sh
sudo EDITOR=nano crontab -e
0 1 * * * /usr/local/bin/update-system-adguard.sh
Strg+x, y, Enter
Um das Script manuell aufzurufen:
sudo /usr/local/bin/update-system-adguard.sh
Log aufrufen:
sudo tail -n 20 /var/log/system-adguard-update.log