nextcloud Docker

  • Hallo,


    dank eurer Hilfe habe ich mir inzwischen nextcloud per docker hub installiert und es funktioniert auch mehr oder weniger. Ich habe zwei Probleme, die vermutlich aus meiner Unkenntniss resultieren:


    Punkt 1: Als SQL-Datenbank habe ich den SQL-Server von Qnap verwendet, da ich keinen Mehrwert gesehen habe, extra eine neue Datenbank per Container zu erstellen. Nun läuft der SQL-Server und nextcloud (per Container Station) jeweils auf dem NAS lokal, d.h. nextcloud müsste auch ohne Aktivierung von TCP/IP-Netzwerk bei dem SQL-Server Zugriff erhalten können, oder? Zum Testen habe ich TCP/IP-Netzwerk aktiviert und die IP von meinem NAS und den enrsprechendne Port angeben, aber was muss ich bei der Einrichtung von nextcloud angeben, wenn ich TCP/IP-Netzwerk eben nicht aktiviere?


    Punkt 2: Wenn ich mich per https mit nextcloud verbinden möchte, erhalte ich

    Code
    SSL_ERROR_RX_RECORD_TOO_LONG

    bei Firefox. Wie kann ich das Problem beheben? Ich habe nicht vor nextcloud außerhalb meines lokalen Netzwerkes zu verwenden, fände es aber dennoch sinnvoll mich auch lokal per https zu verbinden (ich weiß ja nicht, wer so noch alles "mithört"). Nextcloud hatte ich vor längerer Zeit per ODroid eingerichtet, da kam zwar, dass dem Zertifikat nicht vertraut wird, dennoch konnte ich eine verschlüsselte Verbindung herstellen.


    Punkt 3: Ich habe vom Container "/var/www/html" auf einen lokalen Ordner auf meinem Nas verlinkt. Wenn ich den Container stoppe, Image und Container löschen und neuinstallieren würde, wären dann wieder alle Daten, Einstellungen, Addons-Daten usw. da? Die Doku habe ich zumindest so verstanden, wobei klar ist, dass ich die selben Einstellungen vornehmen müsste.


    Viele Grüße

    Frank

  • Hallo Frank,


    Also ich habe mir deinen Text angeschaut und überlege gerade, ob du dir der Sicherung der Datenbank auch bewusst bist? Den Mehrwert dabei nicht zu sehen und den SQL-Server von QNAP zu nutzen ist ok, aber die Sicherung der Datenbank war mir einfach zu kompliziert so. Da ich die SQL-Datenbank auf einen SQL-Server im Container integriert habe, sichere so eben wirklich alles, was ich brauche auf recht schnellem Weg. Aber es ist deine Entscheidung und vielleicht bist du da auch etwas mehr bewandert. Die Daten, Einstellungen und Addons können eben nur mithilfe auch der Datenbank wiederhergestellt werden. Die brauchst du natürlich auch. Bei mir läuft der Zugriff nicht auf lokaler Ebene sondern nur aus dem Web heraus. Somit kann ich dir bei der anderen Frage leider nicht helfen. Aber das mit der Datenbank interessiert mich schon wie du die sicherst.

  • Mal aus reiner Interesse: wieso hast Du Nextcloud im Docker laufen, wenn es doch ein fertiges Image von Nextcloud gibt um das in einer VM laufen zu lassen? Gibt es Vorteile die für Docker sprechen?

  • Also ich habe von Beginn an Nextcloud im Docker erstellt. mit der VM hatte ich keine Erfahrungen. Für mich funktioniert es so sehr gut zusammen mit nginx, letsencrypt, dazu eine postgresql server, da ich mit mysql teilweise Schwierigkeiten hatte.... damit nicht... dann redis ist auch mit integriert und clamav auch. für mich ein gutes Gesamtpaket. Das Einzige, was ich noch nicht zum Laufen bekommen habe ist coturn. ansonsten ist es für mich sehr gut machbar, ich weiß auch mit den Sicherungen umzugehen und musste sie auch schon einsetzen.

    Für Nextcloud gibt es aber eh viele Wege. Wichtig ist halt nur am Ende, das es sicher und stabil läuft, was bei mir der Fall ist :)

  • Hallo h3llf15h,


    eine VM benötigt viele Ressourcen, da ein kompletter Rechner simuliert wird.

    Ein Docker Image beinhaltet nur wenige Bibliotheken und Dateien, die für den Dienst erforderlich sind.


    Tschau

    Uwe

  • Hallo zusammen,


    vielen Dank für die Beiträge. Robin_B ich würde mir nie herausnehmen, zu behaupten bewandeter zu sein, als jemand anderer, den ich nicht kenne und ich bin auch gerade hier, um dazu zu lernen, Fehler oder Unbedachtheiten meinerseits will ich da nicht ausschließen. Bezüglich der Sicherung: alles was im Container liegt, betrachte ich als ungesichert. Der Datenordner würde auf dem NAS liegen und die SQL-Datenbank ebenfalls. Beides wäre allerdings weiterhin ungesichert (wenn mein NAS kaputt geht, ist es kaputt, ob Container oder nicht), weswegen ich immer mal Backups auf eine externe Festplatte einspiele (bzw. längerfristig vorhabe dies automatisiert mit meinem alten NAS zu machen), wobei du mich insofern erwischt hast, als dass ich es nicht ganz durchdacht habe. Klar könnte ich einfach ein SQL Dump jedes mal manuell per phpmyadmin exportieren, aber es wäre nicht automatisch dabei. Vielleicht kann man das ja automatisieren (habe dazu Anleitung MySQL Datenbank auf einem QNAP NAS sichern oder wiederherstellen gefunden). Wie sicherst du denn die Daten von deiner Container-Datenbank? Oder reicht da tatsächlich die Sicherung der entsprechenden nach außen geführten Ordner?


    Die Daten, Einstellungen und Addons können eben nur mithilfe auch der Datenbank wiederhergestellt werden

    Somit ist Punkt 3 geklärt, der genannte Ordner reicht nicht aus, es muss auch die Datenbank gesichert werden. Da habe ich die Doku doch falsch verstanden. Danke!


    H3llF15H die Begründung von Uwe ist auch meine. Docker benötigen weniger Ressourchen als eine komplette VM, bei der noch das gesamte Betriebssystem (soweit ich weiß) mit simuliert werden muss. Und auch da würde sich die Frage der Sicherung stellen. Klar kann man jedesmall das komplette Image sichern, was aber viel größer ist, als die eigentlich wichtigen Daten.


    Wenn noch jemand eine Idee zu Punkt 1 oder Punkt 2 hat, würde ich mich sehr freuen! Und wenn ihr meint, ich habe etwas nicht richtig durchdacht oder habe einen ungünstigen/anfälligen Weg eingeschlagen, schreibt mir bitte.

  • Also ich habe das alles in einem Stammverzeichnis angelegt, welches ich halt mithilfe des NAS-Backup, Schattenkopien und der Sicherung auf einer externen Festplatte abgesichert habe. Und das funktioniert dann halt automatisiert, denn für mich war auch anfangs die Frage, wie ich das am besten automatisiere. Letztlich muss man auch bei der Sicherung darauf achten, dass die Berechtigungen nach einer Wiederherstellung am besten auch wieder so sind, wie sie vorher waren, denn nextcloud ist da sehr eigen, wenn die Zugriffe nicht korrekt eingestellt sind. Das macht sich mit den Schattenkopien aber auch recht komfortabel und mittels HBS aus dem NAS.

    Die Schattenkopien haben für sich auch den Reiz, dass ich auf unkoplizierte Weise den Zustand vor einem Tag z.B. relativ schnell wieder hin kriege. Das war anfangs ab und an mal notwendig mit der Erstellung des Zertifikats, da ich da bei der Verlängerung dessen Probleme hatte und die tauchten dann halt auch erst 3 Monate später auf, als das Zertifikat abgelaufen war.


    Alles in allem bin ich froh, dass ich das jetzt halbwegs gut durchdacht laufen lassen kann.


    Im übrigen geht es nicht um das bewandert oder nicht. Hier lesen viele mit, die sich auch gerne daran versuchen und sich auf dieses Neuland nextcloud einlassen wollen. So lange die Nextcloud läuft, ist auch alles gut, aber nur mal eine falsche App dort aktiviert und man muss wissen, wie man das wieder hin kriegt. Dort geht es denn um Verschlüsselungen OCC und der Gleichen. Dort ist man dann schlicht auf eine gute Sicherung angewiesen, die einwandfrei läuft.

    Einmal editiert, zuletzt von Robin_B ()

  • Robin_B Danke für die Rückmeldung. Mit Schattenkopie meinst du das Anlegen von Snapshots, oder?

    Letztlich muss man auch bei der Sicherung darauf achten, dass die Berechtigungen nach einer Wiederherstellung am besten auch wieder so sind, wie sie vorher waren, denn nextcloud ist da sehr eigen, wenn die Zugriffe nicht korrekt eingestellt sind.

    Oha, wieder etwas, an das ich nicht gedacht habe. Aber den Ordner, den ich von meinem NAS dem Container zur Verfügung stelle, gehört ja den anlegenden Nutzer (z.B. admin). Also worauf ich Einfluss habe, sind doch nur die NAS-seitigen Zugriffsrechte, was da im Container vor sich geht, kann ich nicht beeinflussen. Ich hoffe ich habe keinen kompletten Denkfehler und nerve dich da jetzt nicht zu sehr.

    Also ich habe das alles in einem Stammverzeichnis angelegt, welches ich halt mithilfe des NAS-Backup, Schattenkopien und der Sicherung auf einer externen Festplatte abgesichert habe.

    Kannst du das mit dem Stammverzeichnis etwas genauer erklären? Wenn ich das so lese, stelle ich mir vor, dass du im NAS einen Ordner angelegt hast und dort (ggf. per weiteren Unterordnern) den einzelnen Containern sozusagen Ordner zugewiesen hast, wo sie ihre Daten ablegen sollen (damit die eben nicht im Container verbleiben). Mich interessiert dabei insbesonder der Container, wo deine Datenbank läuft. Reicht es da wirklich aus, zu sagen, speichere die Datenbank in den Ordner xyz und beim Neuaufsetzen des Containers, gibt man den Ordner an und alles ist wieder da? Du siehst, so wirklich bewandert bin ich hier wohl nicht ^^


    An alle vielleicht noch Mitlesenden:

    Ich wäre weiterhin an Input zu den ungeklärten Punkten 1 und 2 interessiert. :saint:

  • Ich habe in dem Verzeichnis Container ein Verzeichnis angelegt... etwa... Nextcloud... oder wie auch immer und dann in dem Ordner für die Datenbank, für das Datenverzeichnis, Config Verzeichnis usw. eigene Unterordner. Diese werden dann im Docker als Volumes verlinkt und können so genutzt werden. Gerade das Daten-Verzeichnis und das Config-Verzeichnis dürfen dabei eben nicht Admin Rechte haben, sondern Rechte bekommen, wo Nextcloud den entsprechenden Zugriff nutzen kann. Bei mir nennt sich dieser Nutzer www-data welcher von Nextcloud erstellt wurde, also nicht von mir angelegt. Spätestens nach der Installation meckert sonst die Nextcloud, dass die Zugriffe nicht korrekt gesetzt wurden und somit jeder Zugriff haben könnte evtl. Du kannst dann diese Berechtigungen mit OCC erstellen. Du musst somit also in den laufenden Container hinein und von dort aus die Berechtigungen setzen.


    Wenn man Aus einem Backup per Copy and Paste die Daten später wiederherstellt, kennt das NAS jedoch nicht diesen Nutzer und somit werden die Berechtigungen an den admin zurückgegeben. du müsstest diese dann wieder neu vergeben. Bei den Schattenkopien und Backups werden jedoch die Berechtigungen 1:1 übernommen, sodass diese wie vorher wieder da sind und du somit keine Probleme hast.


    Gerade mit der Datenbank kannst du dann später diese durch die Wiederherstellung reparieren, was einfach ist.