Wichtig zu beachten sind die beiden Punkte Portweiterleitung und DynDNS in der Anleitung. Um den Proxy mit Docker laufen zu lassen, muss erst einmal Docker installiert werden. Dazu müssen einige Pakete installiert werden.
Es müssen zwei Pakete installiert werden:
sudo apt install docker
sudo apt install docker-compose
Achtung: Diese Befehle können auf anderen Distributionen anders lauten!
Die Installation besteht folgenden Schritten:
Der Einfachste weg ist folgender: Auf dem Server mit einer Konsole Anmelden und einfach in der Root des Homeverzeichnisses den Download machen. Es wird durch das entpacken ein Ordner angelegt in dem sich alles befindet. Wenn man direkt auf dem Server ist, dann kann mit dem folgenden Befehl alles benötigte heruntergeladen werden:
wget -O docker.tar.gz "https://springcontrol.ydns.eu/dateien/docker.tar.gz"
Hier der Download zum Docker-Proxy, wenn man den Download über den Browser machen möchte: Download In dem Download befinden sich diverse Scripte, die benötigt werden.
Mit
tar -xzvf docker.tar.gz
wird die Datei entpackt. Nun mit
cd docker
in den Ordner gehen.
Das ist nur für die Leute, die interessiert, was da alles entpackt wurde. Für die Installation ist es unerheblich, da bei der Installation auf die wichtigen Dateien noch eingegangen wird.
Die Ordner backend, certbot, nginx, proxy_api, proxy_dacia beinhalten Daten für die Docker-Container.
Der Ordner shared_data enthält die Datenbank.
Die beiden Dateien .env und dns_updater.conf sind Konfigurationsdateien. Auf diese wird unten weiter eingegangen.
Die Befehle:
Die Installation:
Sonstige Scripte:
Hinweis:
Um zu testen, ob die entsprechende Gruppe angelegt wurde und die Zuordnung stimmt, kann das Script
./check-docker-group.sh
ausgeführt werden. Es legt die Gruppe **docker] an, falls das noch nicht schon automatisch geschehen ist, und fügt den aktuellen User in die Gruppe ein, falls das auch noch nicht geschehen ist. Auch das wird vom Installationsscript abgefangen, sollte es vergessen werden.
Es müssen einige Umgebungsvariablen gesetzt werden. Dazu mit
nano .env
die Datei entsprechend anpassen.
JWT_SECRET=IhrSehrSichererGeheimerSchluessel
DOMAINS=meineDomain.dyn
EMAIL=meine@mailadressse.hier
HTTPSPORT=443
Die entsprechenden Daten eingeben und mit den Tasten Strg + X speichern. Es wird gefragt, ob Du wirklich speichern möchtest. Dies bestätigen, und fertig. Wenn man auf Nummer sicher gehen will, dann kann man sich die Datei mit cat .env noch einmal anzeigen lassen.
Die zweite Datei, die wichtig ist, betrifft die Namensauflösung. Ich habe eine Konfigurationsdatei erstellt mit Beispielen für duckdns, ydns und ipv64. Wenn Ihr euch bei einem dieser Anbieter eine Domain geholt habt, dann einfach die entsprechenden Daten da eintragen. Solltet ihr einen anderen Anbieter haben und Probleme mit dem Eintragen haben, einfach melden. Diese Datei ist ein Angebot, das kann bei der Installation auch übergangen werden, wenn ihr das lieber selbst machen möchtet.
Mit
nano dns_updater.conf
wird die Datei aufgerufen:
# Format:
# DOMAIN:UPDATE_URL:UPDATE_TYPE:USERNAME:PASSWORD
#
# UPDATE_TYPE:
# ipv64 -> verwendet curl -G mit der URL
# ydns -> verwendet curl -u user:pass mit der Basis-URL
# Deine ipv64 Domain
# domain curl -s -G "URL"
# meinedomain.xx64.de curl -s -G "https://https://ipv64.net/nic/update?key=irgendeinkey"
# Deine YDNS Domain
# Domain curl -s -u "Mailadresse:Passwort" "URL"
# meinedomain.ydns.eu curl -s -u "mail@xx.yy:Passwort" "https://ydns.io/api/v1/update/?host=meinedomain.ydns.eu&ipv6=auto"
# duckdns Domain
#domain curl -s -G "URL"
# meinedomain.duckdns.org -s -G "https://www.duckdns.org/update?domains=meinedomain&token=irgendeintoken"
Es muss also nur meinedomain durch den richtigen Domain-Namen ersetzt werden, und bei duckdns und ipv64 der "irgendeinkey" oder "irgendeintoken" durch den angezeigten Key oder Token ersetzt werden. Und bei ydns müssen Passwort und Loginname eingegeben werden. Natürlich darf vorne kein # sein. Das Zeichen bedeutet Kommentar. Alles was dahinter steht, wird somit nicht berücksichtigt. Die entsprechenden Daten eingeben und mit den Tasten Strg + X speichern. Wenn die Domain dort eingetragen wurde, dann kann die Aktualisierung starten mit
./dns_updater.sh
Dieses Script prüft die aktuelle IP-Adresse mit der IP-Adresse, die mit der Domain verknüpft ist, und erneuert die Zuordnung, falls es nötig sein sollte. Da wirklich nur dann erneuert wird, wenn es auch nötig ist, spielt die Einschränkung bei ipv64 keine Rolle. Dort dürfen maximal 64 Anfragen je Tag gemacht werden. Im Gegensatz dazu testet das Script
./dnstest.sh Domainname
nur, ob zumindest eine Zuordnung, also die von IPv4 oder IPv6, stimmt. Wenn der Domainname weggelassen wird, dann wird der Domainname genommen, der in der .env-Datei steht. Das Ergebnis wird angezeigt. Dieses Script wird auch bei der Installation aufgerufen, um zu testen, ob die Namensauflösung ok ist.
Nun beginnt die Installation. Dazu wird ein Script aufgerufen, welches die Zertifikate installiert und dann alles konfiguriert und einrichtet.
./install.sh
Die Installation macht alles, was benötigt wird, und fragt jeden Schritt ab. Mehr als Zustimmen oder Ablehnen muss nicht gemacht werden. Normalerweise sollte überall y gedrückt werden. Die Standardeinstellung ist N. Da bin ich am Überlegen, ob ich das noch ändern werde.
Folgendes passiert nun:
Das ist alles.
Es gibt eine Hilfe, in der einige Befehle stehen, falls es mal Probleme geben sollte. Dazu einfach
./hilfe.sh
eingeben.
Es gibt auch noch
./update-proxy.sh
Dieses Script kann immer angewendet werden, wenn ein Update gemacht werden soll. Es beendet den Proxy, tauscht die Dateien aus und startet ihn wieder. Ihr müsst keinen Download machen. Das macht alles das Script.
Solltet ihr versehentlich das Script für den ersten Download genommen haben, dann einfach, sobald alles durchgelaufen ist, einmal die ./hilfe.sh starten und dann den Befehl mit docker compose down --volumes oder docker-compose down --volumes ausführen. Welcher von beiden das ist, das sagt die ./hilfe.sh Funktion.