Support-Hinweise zu Truenas - Nextcloud - StratoSubDomain - https - DynDNS

Hallo zusammen!

Ich habe bereits einige Youtube-Videos geschaut und Forenbeiträge sowie blogs gelesen.

Bei mir mischt sich das alles im Kopf, was wie wo zusammenhängt und ich habe keinen roten Faden und befinde mich in einer steilen/harten Lernkurve und setze das zum ersten Mal um.

Was will ich?

Ich habe auf einem Dell Wyse 5070 Truenas mit 2x 4TB HDD im Mirror-Pool und 1x 1TB SSD als schnellen Speicher für Apps und Datenbanken installiert.

Danach habe ich eine Nextcloud per App in Truenas installiert und läuft lokal auch.

Nun möchte ich https:// Zugang lokal haben und auch über meine Subdomain von Strato die Nextcloud-Instanz aufrufen können, wiederum über https://

Ich hänge an einem Vodafone-Kabel-Anschluss mit einer eigenen FritzBox 6690 und habe dort bereits Wireguard für das iPhone aktiviert (wenn ich mal unterwegs ins Heimnetz möchte) und den Fritznet-Dienst am laufen und zusätzlich über Duckdns einen DynDNS eingerichtet (ob er zuverlässig funktioniert, weiß ich nicht). Zudem ist eine Portfreigabe auf das Truenas-Gerät mit dem Nextcloud-Port eingerichtet. - Da weiß ich aber auch nicht, ob das funktioniert.

Mein Problem ist jetzt zu verstehen und was ich genau machen muss, damit wenn ich meine Subdomain cloud.eigenedomainbeistrato.de aufrufe ich automatisch mit https:// zur Nextcloud weitergeleitet werde, um mich dort dann im Browser anzumelden.

In Truenas gibt es eine Sektion für Zertifikate, aber da blicke ich gar nicht durch. Ich habe dann verzweifelt gegooglet und einen Accound + Einrichtung bei ZeroSSL gemacht, aber nicht weitergekommen, weil ich nicht weiß wie ich das bei Strato eintragen muss und wie bei Truenas oder Nextcloud.

Also Ideen/Vorstellungen und Halbwissen ist vorhanden, aber an der Umsetzung hakt es stark. Dafür brauche ich eure Hilfestellungen.

Was sollte ich jetzt als erstes tun und wie genau? Braucht ihr noch weitere Informationen von mir - bitte einfach anfordern.

Ich sage schon mal vorab Danke!

Ich setze mich am Wochenende noch mal dran. Wäre aber dennoch für ein paar Tipps dankbar, wie ich als nächstes vorgehen sollte. Besonders das, wie ich das mit dem Zertifikat am besten lösen kann, würde mir sehr helfen. :slight_smile:

Kurz und knapp gesagt, du brauchst auf dein TrueNas ein Revers-Proxy (z.B. Nginx, Traefik oder Caddy), der das redirection von http auf https macht, sowie die Weiterleitung http://cloud.eigenedomainbeistrato.de/ auf den lokalen Dienst (z.B. Nextcloud). Damit bekommst du dann auch gleich das Thema SSL-Zertifikat gelöst.

Bevor du das Thema Revers-Proxy anschaust, guck dir am besten noch Docker vorher an. Dann kannst du den Revers-Proxy in einem Container laufen lassen, sowie noch weitere Dienste.

1 Like

Nachtrag, um ein Verständnis für das Thema Docker zu bekommen, kann das Training von Dennis helfen: Docker Grundlagen Training - Portainer, NGINX, Vaultwarden, Pi-Hole

In der Reihe wird auch das Thema Reverse Proxy anhand von Nginx erklärt. Hinweise: Das Training ist schon älter und musst du dann auf TrueNas adaptieren. Find es aber ein guten Einstieg.

Danke dir! Ich schaue mir das mal an und steige hoffentlich durch :slight_smile: sonst würde ich in diesen thread meine Fragen stellen?!

Aber mich so locker. Gibt es nginx nicht als App in Truensas? Docker ist eine extra Umgebung in truenas?

Ich selbst nutz kein TrueNAS, daher kann ich selbst keine Detail-Fragen zu TrueNAS beantworten. Denke aber bestimmt andere aus der Community. Habe trotzdem grad mal in die Manual für den App-Market bei TrueNAS geschaut und bin auf folgenden interessanten Satz gestoßen: “TrueNAS apps use Docker containers and Docker Compose for deployment.”

Sieh dazu: Getting Started with Apps | TrueNAS Apps Market

Anhand dessen Aussage, kann ein Grundwissen/-Verständnis zu Docker nicht schaden. Wiederum brauchst du Docker selbst nicht installieren, da schon in TrueNAS enthalten.

Kurz zur Grundsatzfrag. Docker stellt eine Hülle in der dann die App, bzw. Container laufen. Der Vorteil ist, die Apps werden nicht direkt im Hostsystem installiert, sondern laufen in ihrer eigenen Umgebung (Container).

Ansonsten hast du Recht, den Nginx Proxy Manager gibt es auch im TrueNAS Apps Store :wink:

1 Like

Ich konnte jetzt bei meinem Internetanbieter auf Dual-Stack wechseln. Kann ich das jetzt mit normaler Port-Weiterleitung realisieren oder brauche ich diesen Proxy Manager NGINX trotzdem noch?

Was passiert den aktuell, wenn du deine IPv4 und IPv6 inkl. des Nextcloud-Port im Browser eingibst? Landest du damit schon auf deiner Nextcloud? Wenn ja, dann führe den Test über deine.duck.dns:nextcloudport durch. Wenn das auch klappt, brauchst du eigentlich nur deine http://cloud.eigenedomainbeistrato.de/ auf deine deine.duck.dns weiterleiten.

Annahme an der Stelle, dass du die DynDNS nur wegen den IP-Change vom Provider nutz.

Wenn du schon am Anfang scheiterst, dann stimmt was mit den Freigaben entwerder auf TrueNAS oder auf der Fritzbox nicht.

Wenn du bei normaler Portweiterleitung von http (80) auf https (443) sprichst, das wird wahrscheinlich nicht klappen. Da https eine TLS Verschlüsselung voraussetzt und das erst Mal nicht an den Ports sondern dem Protokoll hängt. Das wäre ein Thema wofür du den Revers Proxy brauchst. Ein anderes Thema wird wahrscheinlich das Thema SSL-Zertifikat selbst werden.

Um es mal anders zu sagen. Ich betreibe ein Pi mit Traefik (Reverse-Proxy) und einigen anderen Apps im Docker (-Container). Die Wilcard *.meine.dyndns.de wird dann mit 80 und 443 auf meinen Traefik geleitet. Der Traefik macht dann ein Redirection von http auf https, um die Verbindung nach außen abzusichern. Dann verteilt der Traefik nach intern z.B. Aufrufe wie container1.meine.dyndns.de auf 172.17.0.2:8080, container2.meine.dyndns.de auf 172.17.0.3:8443 und mein.dyndns.de auf 172.17.0.4:80, usw. Nach Außen ist alles über LetsEntcrypt-Zertifikate abgesichert. Das Handling (wie Erneuerung) des Zertifikat macht der Traefik. Das 172.17.0.0 Netz ist dabei das Docker Netzwerk, die Hülle von der ich schon geschrieben hatte. Parallel sichere ich mit dem Traefik auch ab, das nur Zugriffe mit passenden Domain an die Container weitergeleitet werden. Alle anderen Aufrufe werden abgewiesen. Sprich ein normaler IP Aufruf, geht bei mir ins leere.

Und das sind nur paar Funktionen des Revers-Proxy. Hoffe das gibt dir ein kleinen Einblick in die Welt des Reverse-Proxy :wink:

Jetzt liegt es natürlich an dir und deinen Plänen für die TrueNAS :wink:

1 Like

Danke das hat mir wieder sehr geholfen. Schaue ich mir ggf morgen weiter an.

ein Problem habe ich mit meiner stratodomain. Die ist für einen emaildienst eingerichtet. Habe aber eine subdomain angelegt. Zb cloud.meinestratodomain.de die könnte ich für nginx ja umbenennen in zb homelab.meinestratodomain.de und nginx macht dann wie bei dir dienst1.homelab.meine….

Ich glaube durch dualstack habe ich auch feste ipadressen v4/6 bekommen (kein dyndns nötig)

Duckdns hab ich bereits gelöscht

Bei ipv64.net hab ich was getestet. Geht aber die eigene Domain nicht. Bei cloudflare auch nicht weil die hauptdomain für startmail konfiguriert ist und cloudflare die dadurch nicht übernehmen kann, oder so

Ok ich merke weitere Recherche ist notwendig

Habe noch eine zweite jungfräuliche Domain bei Strato. Falls das mit der anderen wegen startmail nicht geht

Dein Grundgedanke ist jetzt auf jeden Fall richtig. Bei IPv64 hast du ja auch eigentlich nur eine subdomain, als Beispiel “deinedomain.ipv64.de”.

Wenn du deine eigene Domain (only DNS) über IPv64 leiten willst, brauchst du die kostenpflichtige Home/Supporter Variante.

Alternative, wenn du auf den Service wie CDN nicht verzichten willst, kannst du auch von deiner homelab.deinestratodomain.de auf deinedomain.ipv64.de weiterleiten und von da in dein homelab. Das kann aber grade im Thema Zertifikate etwas knifflig werden. Im ersten Schritt würde ich wahrscheinlich auch schauen, dass ich erst Mal die direkte Verbindung von Strato in dein Homelab hinbekomme. Wenn man das dann will, kann man dann immernoch schauen, ob man IPv64 z.B. wegen dem Schutz dazwischen baut.

Ansonsten Info am Rande, schau dir mal das Thema MX-Record bezüglich Mailserver an, ist nochmal ein Unterschied zu den A und AAAA Records, über die wir aktuell reden :wink:

1 Like

So, mache seit ein paar Stunden mit Portforwarding in der Fritzbox auf mein Truenas bzw. mittlerweile auf den dort installierten und hörenden auf Port 80/443 nginx-server rum. Wenn ich meine dyndns-domain von ipv64 in den browser eingebe, komme ich direkt in die anmeldemaske von nginx-Proxy-Manager. Aber eigentlich sollte ich auf die Nextcloud kommen und ich kein kein Lets encrypt-zertifikat ausstellen.

Irgendwo hakt es also noch. Kannst du mir helfen das einzugrenzen?

Erstmal Super, das schon mal deine DynDNS über 80 und 443 auf deinem NGINX-Proxy-Manager ankommt.

Jetzt musste du deinem NPM sagen, was er mit den Anfragen auf deiner DynDNS und ggf. Sub.DynDNS machen soll. Also Sprich die interne Weiterleitung auf deine Container-Name:Port oder Host-IP:Nextcloud-Port.

Ehe ich das jetzt Beschreibe, schau dir am besten das Video von Dennis an:

Alternative auch das Video:

Guten Morgen! Danke für deine Rückmeldung. Ob über 80 UND 443 weiß ich nicht. Woher weiß ich das? Hab beide Freigaben in der Fritzbox eingerichtet.

Die zwei Videos habe ich gestern auch mehrmals geschaut. Ist dort gut beschrieben und man kann es gut nachmachen. Allerdings arbeitet Dennis mit Docker-Maschinen sozusagen, sodass er eigene IPs hat.

Mein Verständnis ist so: die DynDNS von ipv64 wird aus der Fritzbox heraus auf der aktuellen öffentlichen IP (bei mir V4 und V6) gehalten. Wenn ich also diese Domäne xyz.ipv64.de ansurfe, komme ich zunächst über Port 80 und 443 auf die Fritzbox. Dort sind 2 Freigaben als Typ HTTP und HTTPS auf die Maschine wo Truenas und läuft (und nginx) eingerichtet. Nginx lauscht auf 80/443. Ergebnis gebe ich die xyz.ipv64.de Adresse in meinen Browser ein, öffnet sich das Anmeldefenster von nginx.

Im Proxymanager nginx habe ich einen Host hinzugefügt. Mit der Domäne xyz.ipv64.de und als Ziel die 192.168… wo Truenas bzw. Nextcloud läuft und den Port, den ich bei der Installation von Nextcloud vergeben habe.

Meine Erwartung: ich gebe im Browser xyz.ipv64.de ein, lande auf der Fritzbox (merke ich aber nicht), die schickt mich auf den Homeserver vo nginx auf 80/443 hört und weiß dass die ANfrage von xyz.ipv64.de und 80/443 kommt und leitet das an “seine” IP aber mit dem Port von Nextcloud weiter. - Es erscheint aber weiterhin die Login-Seite von nginx.

Und wenn ich ein Zertifikat holen möchte, schlägt das mit “internal error” fehl. - Hier noch zum Verständnis: nginx und die Domäne sind die Verschlüsselungsendpunkte für das Zertifikat? Muss ich da auf ipv64 noch was einrichten oder in der Fritzbox?

Da hänge ich momentan und vielleicht kannst du Licht ins Dunkel bringen :slight_smile:

EDIT:

Jetzt frag mich nicht warum, aber habe die Portfreigaben auf der Fritzbox neu gemacht und ich konnte jetzt ein Lets Encrypt Zertifikat in nginx für xyz.ipv64.de anfordern und er hat es gemacht. Gehe ich jetzt im Browser auf https://xyz.ipv64.de öffnet sich nextcloud korrekt, bzw. zeigt mir noch ein “Zugriff über eine nicht vertrauenswürdige Domain

Bitte kontaktieren Sie Ihre Administration. Wenn Sie Administrator sind, bearbeiten Sie die „trusted_domains“-Einstellung in config/config.php. Siehe Beispiel in config/config.sample.php.” - Da muss ich jetzt weiter recherchieren. Aber ich bin schon mal etwas weiter. Fühle mich nur nicht so sicher mit der Konfiguration. Naja

EDIT 2:

Konnte jetzt mit Anleitungen und google per nano die config.php in der container-shell von nextcloud bei trusted_domains anpassen. Dort habe ich xyz.ipv64.de eingetragen und jetzt kommt die normale anmelde-seite von nextcloud

soweit so gut erstmal. selbst über LTE von iPhone kommt die Anmelde-Seite wenn ich die Domain aufrufe

Jetzt muss ich mich um das Thema Backups und Sicherungen in TrueNAS kümmern.

1 Like

Erst Mal herzlichen Glückwunsch, für die erfolgreiche Umsetzung. War eine Steile Lernkurve :wink:

Einen kleinen Nachtrag noch, bzw. lass uns kurz ein Stück zurück gehen. Wir haben gelernt, das TrueNas die Apps per Docker deployed. Auch wenn ich mich da wiederhole, kann dir ein Verständnis bei Docker nicht schaden. Je nach dem, wie der Docker bei TrueNas arbeitet, kann es sein das er intern auch ein Netz (Bridge) für die Apps aufbaut. Die Original Docker Bridge hat das Netz 172.17.0.0.

Auch hilft dir ein Verständnis für Docker, im Rahmen vom Backup der Applikationen. An der Stelle muss man verstehen, dass wir von Container sprechen, die Flüchtig sind. Im Idealfall wird ein Container über ein Docker-Compose.yml deployed (Konfiguartionsdatei). Weiter bedeutet Flüchtig, das wenn ein Conatiner runter gefahren wird, die Daten nicht gespeichert werden, außer Daten die in Volumes liegen.

Volumes sind Speicherplätze die von außen in den Container gemountet werden.

Warum hole ich so aus? Du brauchst beim Backupen nicht den Nextcloud und NPM Container sichern. Das kann beim Wiederherstellen sogar schief gehen.

Wichtiger an der Stelle ist das Sichern der Volumes und docker-compose.yml File. Mit den zwei Sachen, fahren die Container immer mit den gleichen Konfigurationen und Daten hoch.

Ich nutze bei mir für Backup: https://hub.docker.com/r/mazzolino/restic

Als Anleitung hab ich damals genutzt:

Es gibt auch andere Möglichkeiten :wink: Diesbezüglich gibt es auch Videos von Dennis.

Beim expliziten Backupen von TrueNAS bin ich leider raus.

1 Like