Hi zusammen,
Nochmal ich
Auch für das Einstellen der Rewrites vom AdGuard habe ich ein Script geschrieben, das die Rewrites erstellt und bei jeder Ausführung die aktuelle Liste einspielt.
Dazu wird das offizielle GitHub Repository verwendet, das auch standardmäßig von LanCache genutzt wird: uklans/cache-domains
Zusammengefasst klonen wir das GitHub Repo auf unseren LXC Container, erstellen das Script und führen es aus. Das Script holt sich die aktuelle Liste, trägt die Cache Domains zusammen und fügt sie in die AdGuardHome config YAML Datei ein.
Hier nun die Schritt für Schritt Anleitung, was man machen muss:
Zuerst müssen wir yt im Container installieren, damit das Script mit yaml Strukturen arbeiten kann. Dazu nehmen wir nicht den Weg über apt-get, sondern installieren es direkt von GitHub.
Als erstes müssen wir yq herunterladen:
wget -qO /usr/local/bin/yq https://github.com/mikefarah/yq/releases/latest/download/yq_linux_amd64
Als nächstes müssen wir die eben heruntergeladene Datei ausführbar machen:
chmod a+x /usr/local/bin/yq
Nun wechseln wir in das Verzeichnis des root Users. Dorthin werden wir das cache-domains GitHub Repo klonen. Man kann auch einen beliebigen anderen Ort dafür wählen, jedoch sind die Befehle im weiteren Verlauf an diesen Ort angepasst:
1. Verzeichnis wechseln:
cd /root/
2. GitHub Repo klonen
git clone https://github.com/uklans/cache-domains.git
ACHTUNG: Dabei kann es vorkommen, dass man gefragt wird, ob man dem Fingerabdruck von GitHub vertraut und diesen speichern will. Das muss man mit "yes" bestätigen. Danach den "git clone ..." Befehl erneut ausführen.
Jetzt wechseln wir in das neu geklonte Verzeichnis
cd /root/cache-domains
Jetzt muss man sich die folgende Datei herunterladen:
create-rewrites.sh
Nun erstellen wir eine Datei mit dem Namen create-rewrites.sh
nano /root/cache-domains/create-rewrites.sh
Jetzt öffnen man die heruntergeladene create-rewrites.sh, kopiert den kompletten Inhalt in die Zwischenablage, fügt dann den Inhalt der Zwischenablage im Terminal in Nano ein und drückt wieder "STRG + S" (zum speichern) und "STRG + X" (zum schließen)
Jetzt müssen wir auch dieses Script noch ausführbar machen
chmod +x /root/cache-domains/create-rewrites.sh
Jetzt ist das setup schon fertig und das Script kann verwendet werden:
cd /root/cache-domains/ && ./create-rewrites.sh <lancache_ip> /docker/adguard_home/c
onfig/AdGuardHome.yaml
WICHTIG: auch hier <lancache_ip> durch die IP des LXC Containers ersetzen.
Jetzt kann man auch dafür einen Cronjob anlegen, der automatisch regelmäßig die rewrite Liste mit den aktuellen cache domains aktualisiert:
Crontab öffnen:
crontab -e
Das Folgende ganz zum Schluss einfügen. WICHTIG: Auch hier wieder <lancache_ip> durch die IP eures LXC Containers ersetzen:
0 4 */10 * * cd /root/cache-domains/ && ./create-rewrites.sh <ip_address> /docker/adguard_home/config/AdGuardHome.yaml > /var/log/create-rewrites.log
Nun ist alles fertig eingerichtet und die Rewrites des AdGuardHome aktualisiert sich automatisch.
Anzumerken ist hierbei, dass Rewrites, die über das AdGuard Web-Interface hinzugefügt wurden, dadurch jedes mal überschrieben werden. Wer das nicht will sollte den Cronjob nicht anlegen und das Script nicht ausführen.
Tip von mir:
Ich ersetze <ip_address> durch folgendes:
$(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1)
Dadurch wird automatisch die im lokalen Netzwerk sichtbare IP des Netzwerkadapters "eth0" verwendet, ohne, dass ich sie hier fix hinschreiben muss (eth0 sollte für dieses Setup immer der richtige Netzwerkadapter sein). Mein Cronjob sieht dann folgendermaßen aus:
0 4 */10 * * cd /root/cache-domains/ && ./create-rewrites.sh $(/sbin/ip -o -4 addr list eth0 | awk '{print $4}' | cut -d/ -f1) /docker/adguard_home/config/AdGuardHome.yaml > /var/log/create-rewrites.log
Das ist aber nicht notwendig. Es funktioniert genauso gut, wenn man die IP einfach hinschreibt.
Ich hoffe ich kann ein paar Menschen damit Helfen