Container Station MariaDB (für Nextcloud)

  • Hallo zusammen,


    seit Tagen Suche ich schon im Internet auf deutschen sowie englischen Seiten nach mehr Informationen. Vielleicht könnt Ihr mir einen Tipp geben. Das Tutorial zur Verwendung der Container Station habe ich bereits gelesen. Sofern ich nichts überlesen habe, bietet dieser Artikel auch keine Antwort auf meine Frage. Vermutlich handelt es sich hierbei um ein generelles Problem auf meiner Seite (Wissenslücke).


    Mein Ziel ist es Nextcloud von einer VM in die Container Station umzuziehen. Verstanden habe ich, dass hierfür ein Container mit einer Datenbank aufgesetzt werden muss. Zum Einsatz sollte MariaDB kommen. Ich habe einfach den Container aus der QNAP Container Station gesucht und installiert. Es wurde bei der Installation nichts eingestellt. Nach dem Starten des Containers zeigt die Konsole folgende Nachricht.


    Code
    error: database is uninitialized and password option is not specified
    You need to specify one of MYSQL_ROOT_PASSWORD, MYSQL_ALLOW_EMPTY_PASSWORD and MYSQL_RANDOM_ROOT_PASSWORD


    Vermutlich ist das auch richtig so. Denn es wurden ja keine Einstellungen an der Datenbank durchgeführt. Muss ich über SSH die gesamten Einstellungen auf dem NAS durchführen, oder über das Webinterface?


    Ich bin maximal verwirrt. Der super Experte bin ich jetzt auch nicht. Klar, sonst hätte ich ja nicht um Hilfe gefragt. Wenn es eine gute Anleitung für einen ähnlichen Fall gibt bin ich gerne bereit mich einzuarbeiten. Es muss nichts bis zum Ende vorgekaut werden. Aber das Tutorial gibt aus meiner Sicht nur einen allgemeinen Überblick wieder.


    Vielen Dank im Voraus.

  • Habe etwas herum gespielt.
    Nach einer SSH Verbindung zum NAS konnte der angepasste Standardbefehlt zur Installation der MariaDB benutzt werden.

    Code
    docker run --name some-mariadb -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mariadb:tag

    Es funktionierte als nicht, das Image aus der Sucher der Container Station zu installieren.

  • Ich bin eher bei LXC/LXD bewandert als bei Docker. Aber ich spekuliere mal: hast Du mal versucht, die benötigten Daten in das Dockerfile selbst einzutragen?

    • Container erstellen
    • dort auf "Erweiterte Einstellungen"
    • "Umgebung"
    • "Hinzufügen" erstellt eine neue Zeile
    • dort links "MYSQL_ROOT_PASSWORD" eintragen und rechts das password
    • klappt auch mit anderen variablen....variable.JPG
  • Ich habe vorher noch nichts it Docker gemacht.. also bitte um Nachsicht wenn diese Frage blöd ist:


    Ich versuche gerade Etherpad zu installieren wofür man ebenfalls eine mysql DB braucht (https://hub.docker.com/r/tvelocity/etherpad-lite/).
    Ist es nicht mögliche die QTS-eigene MariaDB zu verwenden? Muss man also eine zweite mysqlDB in einem Container laufen lassen!??

  • Wenn ihr noch ein bisschen warten könnt...


    In meinem Testbericht, erkläre ich wie NextCloud mit Container Station und der QNAP eigenen SQL Datenbank funktioniert.
    Es funktioniert.

  • Das ist eine andere Geschichte, ob es Sinn macht...


    Es geht ja nur ums funktionieren :P



    Aber noch mal zum zusammenfassen für mich...
    Ihr installiert die Nextcloud in der Container Station und wollt die Maria DB der QNAP anbinden?

  • Ich bin ein noob was das angeht.. ich dachte nur, dass wenn man ohnehin eine DB laufen hat, muss man nicht eine zweite in einem container laufen lassen.. hat das keinen Einfluss auf die Performance o.ä.? Wenn das keinen Sinn macht, werde ich es auch nicht machen - war nur ein Gedanke..
    Ist es denn eigentlich "besser" Nextcloud in einem container laufen zu lassen anstatt "normal" über das qnapclub.eu repository (das mache ich nämlich)?

  • Das würde ich nicht unbedingt unterschreiben. Der Vorteil von Docker ist ja, das es eben auch "nativ", sprich im gleichen Kernel des Hosts, läuft. Ich habe mir dazu zwar keine Benchmarks angeschaut, aber ich denke mal, dass das auf moderner Hardware (und da zähle ich die hier verwendeten TS-251 Geräte dazu) nicht wirklich auffällt.
    Zu der Frage ob das Verwenden von Containern Sinn macht: jein. Wenn du z.B. schon die native SQL Datenbank für irgendwelche Zwecke benutzt, dann würde ich denken das es tatsächlich sinnvoll ist diese auch für Nextcloud zu verwenden um das bereits angesprochene "doppelt laufen" zu unterbinden. Wenn du diese jedoch noch nicht im Einsatz hast, würde ich zum Container raten. Warum? Weil die meisten Container, die auch im kommerziellen Umfeld verwendet werden, sehr gut gepflegt (vermutlich besser als die QNAP eigenen Apps) werden. Und um dort ein Update durchzuführen kannst du einfach den "alten" Container durch den "neuen" ersetzen, die Daten einspielen und fertig. Das setzt jedoch vorraus, dass du gewillt bist dich mit der Materie auseinanderzusetzen (wovon ich mal ausgehe).
    Weiterhin ist es in Sachen Sicherheit besser alle Sachen die auch von außen zugänglich sind im Container laufen zu lassen. Wenn in der Nextcloud ein Bug auftritt, der eine Remote-Code-Execution oder ähnliches erlaubt kann ein Angreifer mit der "nativen" Nextcloud direkt auf deinem NAS und den dort gespeicherten Daten Unfug betreiben. Im Container muss man sich zumindest die Mühe machen daraus auszubrechen, was zwar nicht unmöglich aber deutlich schwieriger ist.

    Ist es denn eigentlich "besser" Nextcloud in einem container laufen zu lassen anstatt "normal" über das qnapclub.eu repository (das mache ich nämlich)?

    Hier kommt es auch auf die Wartung an. Ich weiß nicht wie stark das qnapclub.eu Repo gepflegt und aktualisiert wird aber von Nextcloud gibt es, soweit ich weiß, einen direkt von den Entwicklern bereitgestellten Container der vermutlich immer auf dem aktuellsten Stand gehalten wird.

  • So, mariaDB läuft in Docker. Du musst in der Umgebung ein Root-Passwort mitgeben. Also dort auf hinzufügen, dann MYSQL_ROOT_PASSWORD und im Feld rechts daneben das Passwort. Ansonsten schlägt die Erstellung des Containers fehl. Es wird zwar einer angezeigt, aber das ist nur eine leere, nicht lauffähige Hülle.
    Was ich noch nicht raushabe ist, wie ich dort eine Datenbank erstellen kann.


    @Doc HT
    Doch die Container können untereinander kommunizieren. Für (bei mir) Nextcloud ist ja die Datenbank auch nur ein Dienst auf den zugegriffen wird.
    Der Witz ist, dass ich beliebig viele von diesen Datenbanken für verschiedene Anwendungen erstellen kann. Also nicht alle greifen auf eine Datenbank zu, sondern jede Anwendung kann ihre eigene haben. Das erleichtert schon die Sicherung.

  • Einmal, weil es geht. :) Dann möchte ich die Datenbank besser sichern und ggf. wieder nutzen können. Ich finde das o.g. Anwednungszenario schon interessant. So sind nicht alle Anwendungen von der einen Datenbank abhängig.
    Das gleiche gilt für Nextcloud. Der Docker-Container läuft out-of-the-box. Wenn ich an das Gefrickel denke Own- oder Nextcloud nativ auf das NAS zu bringen...

  • Da hänge ich mich hier doch gleich mit ran.


    Meine Erfahrungen mit Docker sind - sagen wir: stark ausbaufähig! :P


    Aber Nextcloud und MariaDB als jeweils eigenen Docker stelle ich mir spannend vor. Wie schon @tuxflo geschrieben hat, erwarte ich mir dadurch deutliche Flexibilität und bin "Up to Date". Zumindest bin ich nicht auf Entwickler angewiesen welches ein "Paket" für QTS anbieten. Zu oft habe ich von Sachen gelesen wo die (Weiter)Entwicklung einfach eingestellt worden ist. Als User steht man da erstmal dumm da. Das kann vermutlich auch bei Docker passieren, aber ich denke das ist nicht so sprunghaft.


    Nächste Woche kommt meine TS-253B mit 8 GB. Bis dahin erwarte ich hier eine gut dokumentierte und bebilderte Anleitung dafür. ** Hab euch lieb... :) **

  • lel Muss selber erstmal klarkommen. Aber Nextcloud kann man einfach so installieren und nutzen, auch mit der internen DB. Die Portweiterleitung unter "Netzwerk" beim Einrichten nciht vergessen. ;)

  • Aber Nextcloud kann man einfach so installieren

    Oh nein. Da muß ich vehement widersprechen. Unter Debian oder einem anderen Linux installiere ich Nextcloud schneller als unter QTS. Da gabs / gibts Probleme damit. Installation ist eine Sache, aber die andere ist die Beseitigung der Einrichtungswarnungen. Sie stören zwar nicht den unmittelbaren Betrieb, aber ich reagiere auf sowas leicht allergisch.


    Siehe auch Umfrage für eine Anleitung.


    oder kann QNAP es nicht besser - oder wollen sie nicht?


    Aufgrund der positiven Resonanz besteht da noch Handlungsbedarf. Solch Probleme gäbe es vermutlich nicht, wenn QNAP mal die Pakete aktualisieren würde. Auch @kasimodo hat schon kapituliert. -> Kasimodo bittet um Hilfe

  • Solch Probleme gäbe es vermutlich nicht, wenn QNAP mal die Pakete aktualisieren würde

    Naja das ist glaube ich leichter gesagt als getan: es gibt einfach unendlich viele Möglichkeiten wie die Nutzer ihr NAS verwenden. Als Firma (QNAP) da hinterherzubleiben ist nicht nur schwierig, weil man nicht weiß wer, was, , wie auf seinem NAS betreiben möchte, sondern auch unglaublich zeitfressend. Die einen wollen Nextcloud, die anderen Owncloud, wiederum andere schwören auf Resillio Sync oder gar Seafile. Anderen ist die "eigene Cloud" komplett egal und die Anwendung geht mehr in Richtung IoT, woher soll QNAP wissen auf was für Ideen die Nutzer kommen, wenn man ihnen einmal ein NAS ausgehändigt hat?
    Ich wäre eher dafür, dass QNAP sich auf die wesentlichen Bestandteile von QTS (inklusive der Systemeinstellungen und Apps wie die Container Station) konzentriert und den Rest den Nutzern (z.B. via Container Staition) überlässt. Das hat dann auch nicht nur den Vorteil, dass die entsprechenden Docker Container nicht ausschließlich QNAP spezifisch sind, sondern auf auf gewöhnlicher Hardware/andere NAS Hersteller/Raspi und Co laufen.


    Aber um bei der Sache zu bleiben: wo genau ist denn jetzt das Problem, das von den Nextcloud Entwicklern bereitgestellte Image in der Container Station zu installieren?

  • woher soll QNAP wissen auf was für Ideen die Nutzer kommen, wenn man ihnen einmal ein NAS ausgehändigt hat?

    Das hat auch nicht QNAP zu interessieren. Ich vergleiche halt gerne mit Synology, weil eine DS213 und DS415+ bei mir wohnen.
    Als Beispiel die Web Station (zum hosten von Webanwendungen etc.): Dort kann man für vHosts zwischen Apache2.2, Apache2.4, nginx und PHP5.6 und PHP7 festlegen. Und zwar nicht nur global sondern für jeden vHost extra sofern hierfür Bedarf besteht. Das geht aber nur, weil die Pakete eigenständig sind. Also nicht direkt in DSM (Disk Station Manager) integriert sind. Somit können auch relativ schnell neue Versionen und / oder Patches einfließen. Auch der Wechsel oder Parallelbetrieb zwischen MariaDB 5 und MariaDB 10 ist möglich. Mit diesem System habe ich also maximale Flexibilität. Und wenn die Basics (also der Unterbau) stimmt, ist es Jacke wie Hose ob Nextcloud, ownCloud oder andere Applikationen. Und nein - ich will jetzt nicht das gesamte Forum hier wild machen. Mein Bestreben ist lediglich zu zeigen, daß es auch anders gehen kann. Jedes System hat seine Berechtigungen. Es kommt halt wie so oft auf den individuellen Zweck an.




    Ich wäre eher dafür, dass QNAP sich auf die wesentlichen Bestandteile von QTS (inklusive der Systemeinstellungen und Apps wie die Container Station) konzentriert und den Rest den Nutzern (z.B. via Container Staition) überlässt.


    Da gebe ich Dir Recht. Aber das kann man auch, wenn man oben genannte Beispiele möglich macht. Das eine schließt das andere ja nicht zwingend aus.



    wo genau ist denn jetzt das Problem, das von den Nextcloud Entwicklern bereitgestellte Image in der Container Station zu installieren?

    Kann ich Dir frühestens am Freitag sagen, da meine TS-253B voraussichtlich am Do. eintreffen wird. Unter Docker werden ja vermutlich die Konfiguration wie z. B. „Strict-Transport-Security“-HTTP-Header und HSTS bereits aufgelöst sein.