Nextcloud Containerstation

  • Hallo liebe community,


    ich habe versucht Nextcloud in die Containerstation zu überführen. Erhalte aber mit folgenden compose files:


    bzw.

    beim einrichten der Datenbank immer folgeden Fehlermeldung:


    Code
    Error while trying to create admin account: An exception occurred in the driver: SQLSTATE[HY000] [2002] No such file or directory


    Ich hoffe, dass mir hier geholfen werden kann...

  • Hallo,


    die Meldung besagt erst mal nur, dass die Nextcloud den Datenbankserver nicht findet. Und nach der Meldung sieht es so aus, als hättest Du versucht, die Datenbank über den Unix-Socket anzusprechen. Das geht erst mal nur auf localhost. In Deiner Docker-Config sind aber zwei getrennte Container drin. Also kannst Du die Datenbank nur über IP und Port ansprechen.

  • Vielen Dank für den Hinweis!

    Vielleicht kurz zur Erklärung: ich habe versucht das ganze nach folgender Anleitung umzusetzen:


    Nextcloud mit Docker und Docker-Compose installiert - nerdblog
    Nachdem ich zunehmend den Eindruck habe, dass der owncloud-Fork nextcloud 1. aktiver und 2. mehr auf Sicherheit bedacht ist als der Vorgänger owncloud, habe…
    nerdblog.steinkopf.net


    Leider führte das zu den Fehler. Auch in vielen anderen Anleitungen ist von der angesprochenen Ansprache der Datenbank über die konkrete IP leider nicht die Rede. Daher bin ich etwas verunsichert, wie ich mit dem Hinweis umgehen soll. Ich habe versucht die Datenbank mit der konkreten IP in der db.env zu definieren aber leider auch das ohne Erfolg.


    Mein Ziel ist eigentlich nur Nextcloud mit Hilfe der Docker-compose-Konfiguration in die Containerstation einzubinden. Das ganze sollte dann verschlüsselt (HTTPS) über einen Subfolder-Pfad

    (HTTPS://Server-Adresse/Nextcloud) verfügbar sein. Gibt es dafür eine gute Anleitung?


    Vielen Dank schonmal für die Hinweise und Unterstützung!

  • Warum nimmst Du nicht die offizielle Dockeranwendung nextcloud-aio?


    GitHub - nextcloud/all-in-one: 📦 The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance.
    📦 The official Nextcloud installation method. Provides easy deployment and maintenance with most features included in this one Nextcloud instance. -…
    github.com


    Dort ist sehr ausführlich beschrieben, wie man die Nextcloud mit den wichtigsten Erweiterungen über Docker in Betrieb nehmen kann.

  • Da hat Google offensichtlich nicht wir genug oben drauf hingewiesen und ich bin schlicht nicht drauf gekommen dass man zu gucken...


    Auch macht es das

    Mod: Nicht deklariertes Zitat ohne Quellenangabe ... korrigiert! :handbuch::arrow: Forenregeln beachten und Die Zitat Funktion des Forums richtig nutzen

    "It is also expected that this port uses a self-signed certificate due to security concerns which you need to accept in your browser"

    nicht so richtig attraktiv, wenn man Daten mit fremden Teilen möchte und denen erstmal erklären muss, dass das alles in Ordnung ist und die überall zustimmen müssen... Lässt sich der Teil irgendwie anpassen?

  • Du verwechselst hier etwas:


    Das selbsterstellte Zertifikat gilt nur für den ADMIN-Zugang zu Nextcloud-Aio. Diesen solltest Du NIEMALS nach außen freigeben.


    Die EIGENTLICHE Nextcloud (einer der separaten Container von Nextcloud-Aio) erhält ein ganz normales Letsencrypt-Zertifikat. Daher müssen auch die externen Ports 443 und 80 auf diesen Container weitergeleitet werden. Standardmäßig sind das die Docker-Ports 80 und 8443 (siehe publish-Zeilen in der Compose.yaml). Nur der Docker-Port 8080 hat das selbsterstellte Zertifikat.


    ACHTUNG: Du musst die Standardports 80 und 8080 anpassen, da diese i.d.R. schon vom NAS selbst benutzt werden!

  • Vielen Dank für den Hinweis. Port 80 scheint kein Problem zu sein. Aber Port 443 wird auch durch das NAS genutzt. In der Doku wird aber nur auf Reverse Proxy verwiesen und wenn ich den Link Folge finde ich dazu leider keine Infos...

    Das hat mir bei meiner aktuellen Installation immer schon in den Wahnsinn getrieben und in der docker-Umgebung habe ich nicht Mal eine Idee, wo ich die ganzen Einstellungen und Dateien finde...


    Kann mir hier vielleicht jemand unkompliziert helfen? :saint:

  • nimm bitte die offizielle Docker-Datei von nextcloud-aio (habe ich oben verlinkt).


    Dann änderst Du folgende Zeilen ab:


    Code
    --publish 80:80 \
    --publish 8080:8080 \
    --publish 8443:8443 \

    Jeweils der Port VOR dem Doppelpunkt muss ein freier Port Deines NAS sein.


    Beispielhaft würde gehen:


    Code
    --publish 9080:80 \
    --publish 9081:8080 \
    --publish 9443:8443 \

    Nun die Docker-Datei über die Containerstation einspielen.


    Jetzt in Deinem Router folgende Portweiterleitungen einrichten:


    Extern Port 80 -> IP-NAS:9080

    Extern Port 443 -> IP-NAS:9443


    Nun noch eine Dyndns-Adresse bei einem Anbieter Deiner Wahl (z.B. noip.com) registrieren und entweder im NAS (Virtueller Switch) oder im Router eintragen, so dass immer Deine aktuelle externe IP-Adresse auf die dyndns-Domain gemappt wird.


    Jetzt im Browser folgende Adresse aufrufen:


    https://IP-NAS:9081


    und mit der Einrichtung der Nextcloud anfangen.


    Fertig:-)

  • Das habe ich jetzt probiert,


    leider bekomme ich folgende Fehlermeldung:

    Code
    Nextcloud AIO v10.10.0
    Domaincheck container is not running
    This is not expected. Most likely this happened because port 443 is already in use on your server. You can check the mastercontainer logs and domaincheck container logs for further clues. You should be able to resolve this by adjusting the APACHE_PORT by following the reverse proxy documentation. Advice: have a detailed look at the changed docker run command for AIO.

    Wenn ich das richtig verstehe, müsste ich jetzt im webserver des NAS rumspielen, oder? Das ist mir allerdings zu heiß, denn ich habe mir ja nicht umsonst ein "fertiges NAS" gekauft. In meinem (aktuelle noch in Nutzung befindlichen) vorigen NAS habe ich alles selbst zusammengebastelt, da hatte ich damit kein Problem. Aber nachher ändere ich da irgendwelche Einstellungen und ich erreichte zum Schluss die Oberfläche vom NAS nicht mehr...


    Gibt es da nicht eine andere Möglichkeit?


    Die Standardport des NAS habe ich über die Einstellungen auch schon geändert - bekomme aber das gleiche Problem.


    OK, nachdem ich die Reverse-Proxy-Einstellungen in der Config aktiviert hatte, konnte ich zumindest bis zu dem Punkt kommen, da ich nach einer domain gefragt werde. Leider wird das Q-NAP-Zertifikat nicht aktzeptiert:

    Code
    "PHP message: The error message was: SSL certificate problem: self-signed certificate". 

    Was mache ich da?

    2 Mal editiert, zuletzt von Newbuntu () aus folgendem Grund: Ein Beitrag von Newbuntu mit diesem Beitrag zusammengefügt.

  • Hallo,


    Du musst natürlich den Port 443 des NAS "freiräumen". Standardmäßig (bei deaktiviertem Webserver) läuft auf diesem Port die interne Oberfläche des NAS.


    Also folgende Schritte durchführen:


    1. internen Webserver deaktivieren.

    2. In der Systemsteuerung die Ports für den Zugriff auf die Adminoberfläche des NAS auf die Ports 8080 (inverschlüsselt) und 8081 (verschlüsselt) setzen.


    Du verlierst dadurch niemals den Zugriff auf die Oberfläche des NAS.


    Ich habe selbst vor zwei Wochen bei mir die Umstellung von Nextcloud auf dem internen Webserver --> Nextcloud-AIO in der Containerstation durchgeführt, inklusive kompletter Datenübernahme (Datenbank und Daten). Ging problemlos.

  • Dann habe ich die Hoffnung, dass auch ich das noch gebacken kriege :D. Der Port wird nicht mehr vom QTS genutzt. Bei der Einrichtung will Nextcloud jetzt aber eine Domain. Prinzipiell werde ich das natürlich auch weiterleiten. Aber eigentlich müsste das doch auch irgendwie lokal gehen, oder? Ich habe nämlich das Problem, wenn die die Weiterleitung auf das NAS einrichte und versuche drauf zuzugreifen, meckedrt auch Firefox schon über das selbst signierte Zertifikat, was wohl von QNAP ausgestellt wurde und Nextcloud hat offensichtlich dasselbe Problem. Wenn ich nämlich die Adresse, die einmal auf das NAS Weiterleiten soll angebe, bekomme ich von Nextcloud die Fehlermeldung

    Code
    "PHP message: The error message was: SSL certificate problem: self-signed certificate."


    Vielen Dank für die Unterstützung!

  • Da sollte von Aussen garnix vom QNAP selber erreichbar sein (sonst schwebt das NAS in Gefahr), das Zertifikat muss auf dem Container ausgestellt werden (ne gratis Version wäre LetsEncrypt)

  • Hallo,


    ich möchte mal etwas Licht ins Dunkel bringen.


    Die Domain (ich selbst nutze eine dyndns-Domain bei noip.com) muss außerhalb des Containers schon eingerichtet sein. Es gibt dazu zwei Wege:


    1. Über den virtuellen Switch des NAS --> DynDNS

    2. Im Router (Fritzbox) direkt als Dyndns-Adresse einrichten,


    Hintergrund ist, dass der Container über Letsencrypt versucht, ein SSL-Zertifikat zu erhalten. Dazu muss aber die verwendete (dyndns)-Domain auf Deine externe IP-Adresse registriert sein - und das macht entweder der Router oder der virtuelle Switch des NAS.

  • Ich habe eine Weiterleitung über eine IONOS-Website auf die MyFritz-Adresse. Muss ich dann bei der Abfrage beim Einrichten der Nextcloud die MyFritz-Adresse oder die vorgeschaltete Weiterleitung abgeben?

  • Das kommt darauf an, wie die Weiterleitung eingerichtet ist. Wenn es eine DNS-Weiterleitung (A-Record) ist, dann die vorgeschaltete Adresse. Ist es nur ein Redirect per HTTP Status 30x, dann muss die myfritz-Adresse rein. Dies würde dann aber auch bedeuten, dass die Adresse der Nextcloud die myfritz-Adresse ist....


    Besser wäre, eine kostenfreie dyndns-Adresse bei einem der vielen Anbieter - ich empfehle hier immer noip.com - einzurichten und diese entweder in der Fritz!Box (Idealfall) oder im virtuellen Switch des NAS (geht auch) zu hinterlegen. Dann ist die Nextcloud über die Dyndns-Adresse erreichbar.


    EIn Beispiel:

    Registriert wurde bei NOIP.com die Domain cloudabcd.noip.me. Diese Domain wurde im NAS oder der Fritz!Box als Dyndns-Anbieter eingetragen. In der Fritz!Box ist eine Portweiterleitung des Ports 443 auf den Port 443 des NAS hinterlegt.


    In der Nextcloud-AIO muss bei der Ersteinrichtung dann die Domain cloudabcd.noip.me eingetragen werden. Die Nextcloud-AIO ist dann aus dem Internet unter der Adresse https://cloudabcd.noip.me erreichbar. IONOS ist weder notwendig noch sinnvoll in dieser Konstellation.