Nextcloud in ContainerStation kein https...

  • Hallo pastor,


    ich weiß, dass ich den ssl-Port für nginx auf eine andere Portnummer mappen und diese auf extern weiterleiten kann. Ich habe nur den Verdacht, dass 443 in den Templates der Docker-Gen von JWilder (Bestandteil von docker/nginx-proxy) hart verdrahtet ist und deshalb in meiner generierten nginx-Konfiguration auf Basis von 2443:443 die ssl-Verarbeitung nicht enthalten ist. Es fehlt dort bei mir "listen *443 ssl" bzw. "ssl on" und die Angaben für die Zertifikate usw.

    Da muss ich jetzt mal weiter forschen und wahrscheinlich ein eigenes Template einsetzen. Das wird aber eine Weile dauern, weil ich noch andere Dinge zu tun habe. Wenn ich eine Lösung finden sollte, melde ich mich zurück.


    Gruß xgadscu

  • Also ich habe das auch noch nicht selbst am Laufen, aber ariaci hat ja ein Umfangreiches Tutorial erstellt um NextCloud in einem eigenen Apache Server Container von Grund auf, unabhängig von allem anderen, zu erstellen:


    1. MariaDB Container und PHPMyAdmin Container erstellen

    2. Apache2 Container erstellen und darin NextCloud installieren


    Vermutlich wäre das der brauchbarste Ansatz, denn das Tutorial funktioniert und dieses Setup sieht eigentlich am flexibelsten von allem anderen aus. Man kann super ein Backup machen und ist unabhängig.


    Ich denke ariaci hat vermutlich immer noch so eine Config am Laufen und dazu die passende Apache config gepostet.


    Aber auch ich, mit bisher auch keiner Ahnung von Containern und ReverseProxy würde mich freuen, wenn ariaci vielleicht nochmal etwas genaueres zu dieser Apache config sagt und bestätigt, dass es mit oben genannten Tutorials und dieser Apache Config funktioniert.

  • Moin,


    mein Setup geht etwas weiter, als von UpSpin beschrieben ... die Richtung ist jedoch dieselbe.


    Ich habe einen eigenes Docker-Image, basierend auf webdevops/php-apache und verlinke die Zertifikate direkt mit dem dazu passenden Container. Im eigenen Docker-Image wurden einige Konfigurationen angepasst, so dass ich mehrere virtuelle Hosts (sogenannte vHosts) über einzelne Konfigurationen erstellen kann. Auch werden beim Erzeugen des Images automatisch die in webdevops/php-apache fehlenden Module proxy, proxy_http, proxy_ajp, rewrite, deflate, headers, proxy_connect und proxy_html dem eigenen Apache2-Image hinzugefügt.


    NextCloud läuft nun direkt im Docker-Container, welcher unter Verwendung meines eigenen Images erstellt wurde. Da die Zertifikate nun im Container verlinkt werden, benötige ich für NextCloud keinen ReverseProxy. Diesen benötige ich aber für andere Dienste, wie Urbackup, welches aufgrund des verwendeten BTRFS in einer eigenen VM laufen muss und nativ ohne Anpassungen nur HTTP zur Verfügung stellt. Daher stammt auch die vorher gepostete Konfiguration.


    Theoretisch sollte die gepostete Konfiguration, sobald die Zertifikate in "/opt/docker/etc/httpd/vhost.ssl.conf" richtig konfiguriert sind auch direkt passen. Eine Notwendigkeit besteht allerdings nicht, sobald die Zertifikate im php-apache-Container liegen und NextCloud im selben Container läuft. Dann kann dieser die Zertifikate direkt und ohne ReverseProxy verwenden. Hier hängt es etwas davon ab, wie meine Infrastruktur funktionieren soll/tatsächlich funktioniert.


    Da allerdings über die Gui von Qnap keine einzelnen Dateien verlinkt werden können, sondern nur Verzeichnisse, ist mein Ansatz etwas komplizierter zu bewerkstelligen. Dadurch wird mindestens ein eigenes docker-compose.yml zur Erstellung des Containers benötigt. Für solche Dinge verwende ich durchweg Scripte und die Konsole der Qnap.


    Ich hoffe, ich konnte die Verwirrung etwas entwirren. :saint:


    Ciao

    ariaci


    Apropos:

    Ich halte es nicht für unbedingt gut, einen simplen ReverseProxy allein in einer VM zu betreiben. Der Overhead einer VM ist im Vergleich zu einem Docker-Container immens hoch. In meinem Fall benötigt der eigene php-apache-Container gerademal 484 MB Platz auf der Platte. RAM und CPU werden mit 0% nicht einmal messbar. Dies liegt daran, dass Docker im Kernel des Hosts in einem sogenannten eigenen Namespace läuft. Dadurch wird für syscalls deutlich weniger Performance benötigt, als bei einer VM, die quasi erst einmal alles für den Host "übersetzen" muss. Auch sind Updates in einer VM deutlich komplexer zu bewerkstelligen und Fehlerfälle schwieriger zu beheben, da das gesamte OS mit betroffen ist/sein könnte. Backups einer VM sind auch schwieriger zu handhaben. Unter Docker verlinke ich lediglich die passenden Ordner des Hosts und schon kann der Host Backups anfertigen. Eine VM sollte durchgängig unabhängig vom Host laufen.

    Einmal editiert, zuletzt von ariaci ()

  • Hallo zusammen,


    bei mir läuft es jetzt auch. Es lag tatsächlich daran, dass ich die Ports 80 und 443 nicht auf andere Portnummern mappen durfte.

    Ich habe jetzt folgende Lösung:

    • 5 Docker-Container auf einem QNAP hinter einer Fritzbox als Router
      • Nginx-Reverse-Proxy
      • Lets-Encrypt-Companion
      • Web-Server
      • nextcloud
      • Maria-DB
    • verschlüsselter Aufruf über eine Subdomain, Portangabe nicht erforderlich
    • SSL-Verschlüsselung auf Basis von kostenlosen LetsEncrypt-Zertifikaten, die automatisch verlängert werden.
    • einfache Installation über ein docker-compose-File und ein paar Konfigurationsfiles
    • einfache Aktualisierung der Docker-Container über 2 Befehle
    • Daten und Konfigurationen bleiben auf Docker-Volumes erhalten
    • Die Docker-Container können auch über die QNAP Container-Station gemanaged werden. Leider sind nicht alle Einstellungen aus dem docker-compose-File sichtbar.

    Wenn noch Interesse besteht, kann ich auch gerne eine Anleitung dazu schreiben.


    Gruß xgadscu

  • Natürlich, daran habe ich grosses Interesse, bin schon ewig auf der Suche nach einer Anleitung, wie ich innerhalb von Container Station nextcloud auf mariadb via nginx als proxyserver installieren & laufen lassen kann.

  • Hallo ich habe auch eine frage dazu kann ich denn meine xxxx.myqnapcloud.com Subdomain für die nextcloud nutzen oder muss ich eine neue Subdomain erstellen?


    Die xxxx.myqnapcloud.com wird auch schon für die Weboberfläche der Nas benutzt. Und müsste ja dann ggf. eine andere Portendung bekommen zb: 40443



    Lg zinnik