[Howto] Nextcloud mittels Docker-Container

  • Hallo Luzifer,


    Das klingt ja schon mal ganz gut :)


    Allerdings gibt es bei Anpassungen über den von dir geschilderten Weg einige Probleme mit Updates. Sobald du auf das aktuellste "webdevops/php-apache"-Image nutzt, sind deine durchgeführten Änderungen verloren und eine weiteres mal durchzuführen. Ich habe gerade noch einmal geschaut, wie ich dieses "Problem" löse.


    Ich habe das so gelöst, indem ich mir ein eigenes Docker-Image auf Basis von "webdevops/php-apache" erzeuge und aus diesem dann meinen Webserver bilde. Beim Erzeugen meines eigenen Images kann ich dann beliebige Änderungen am Basis-Image durchführen. Ich ersetze hierbei einige mitgelieferte Konfigurationsdateien mit meinen eigenen. Damit lässt sich ein Update wunderbar durchführen und meine Änderungen gehen nicht verloren.


    Ciao
    ariaci

  • Vielen Dank ariaci !!! :):thumbup:


    Eine spitzen Anleitung! Hat mir sehr geholfen!

    Ich bin echt schwer begeistert von der Docker-Lösung. Sie ist deutlich performanter als die .qpkg Lösung: https://qnapclub.eu/de/qpkg/348
    (Ob das an dem notwendigen Qapache liegt? ... keine Ahnung)


    Ich habe allerdings doch noch einen Wunsch:
    Könntest du in der gleichen Art auch erklären, wie man an dieses System noch nen Collabora- oder ONLYOFFICE-Docker mit dranhängt?
    Das fehlt mir noch zu meinem Nextcloud-Glück ^^8)


    Und eine Frage habe ich auch noch:
    Ich wollte in dem "php-apache"-Container nachträglich weitere shared-Folder angeben. Leider erscheint i.d. Settings an der entsprechenden Stelle jetzt kein Add-Button mehr - egal ob der Container läuft oder deaktiviert ist. (siehe Anlage)
    Woran liegt das? Kann man nur bei der Erstinstallation shared-Folder angeben?

  • Also, der Befehl


    Code
    chown -R 1000:1000 /share/Public/nextcloud

    führte bei mir leider nicht zum gewünschten Ergebnis.

    Die Fehlermeldung bleibt leider die gleiche.

  • Die Installation hat bei mir einwandfrei geklappt. Ist es möglich, auch ein LetsEncrypt Zertifikat zu integrieren? Wäre mir schon wichtig

  • ich habe das Problem mit dem .htaccess-Zugriff gelöst, indem ich alle Verzeichnisse in den Pfad: Container/container-station-data/application gelegt habe. Damit war die Fehlermeldung auch ohne Änderungen der Rechtestrukturen weg. Vielleicht hilft das noch jemanden.

  • Vielen Dank für die Anleitung.


    Weiß zufällig jemand, wie ich dieser Anleitung mit einer ARM Architektur folgen kann?

    • Als Container laufen bei mir apcheamitru/arm32v7-mariadb und sk278/phpmyadmin-armhf
    • phpMyAdmin lässt sich normal konfigurieren

    Wenn ich php:7.2.9-apache nutze treten folgende Probleme auf:

    • Port 80: You don't have permission to access / on this server. | Apache/2.4.25 (Debian) Server at 192.168.178.10 Port 10080
    • Port 443: 192.168.178.10 hat die Verbindung abgelehnt.
    • Öffnen des Containers: AH00170: caught SIGWINCH, shutting down gracefully

    Dies brachte auch kein anderes Ergebnis:

    chown -R 1000:1000 /share/NextCloud/
    chown -R 1000:1000 /share/NextCloud/nextcloud



    Der Container glovebox/php-apache-arm macht genau das Gleiche. Wobei ich langsam glaube, dass die Befehle für UID bzw. GID anders heißen könnten. Oder der Ordner /app steht nicht zum Mounten zur Verfügung. Jedenfalls wäre ich über eine Antwort erfreut, tut mir leid, wenn meine Frage dumm ist :)

  • pasted-from-clipboard.png

    Ich habe heute die Installation ohne Probleme durchgeführt mit der aktuellsten Version 14, die bis nach der installation ohne Probleme durchgeführt werden konnte. Jedoch nach einrichten der Nextcloud über die Weboberfläche, kam diese Meldung die im Anhang zu sehen ist. Hier die komplette Ausgabe:

    Code
    Einige Dateien haben die Integritätsprüfung nicht bestanden. Weiterführende Informationen befinden sich in unserer Dokumentation. (Liste der ungültigen Dateien … / Erneut analysieren…)

    Nunja, dann habe ich mal den kompletten Ordner in die Container Station gezogen, dies brachte aber kein Erfolg. Dann habe ich händisch die Dateien wie .htaccess oder.gitignore in die jeweiligen Ordner gezogen, wo diese angeblich fehlen sollen.

    Fakt ist, das über die Filestation diese nicht sichtbar sind oder über WinSCP. Erst per SSH ls -a sehe ich diese. Chown habe ich auch durchgeführt, aber ohne Erfolg. Es sind lediglich paar Orangene Meldungen erloschen durch das Chown. Ich vermute das die Rechte nicht passen oder die Sichtbarkeit der Dateien.
    Vielleicht hat ja jmd eine Idee? Ich bin am tüffteln und versuche den Fehler zu verstehen.

  • Paschys

    Es reicht schon wenn du Dateien im Nextcloud installationsordner liegen hast die nicht zur Nextcloud installation gehören um diese Meldung auszulösen. Hast du dir die Liste der ungültigen Dateien mal angeschaut? Ich habe zum Beispiel meine SSL-Zertifikate in dem Nextcloud Ordner liegen, diese werden von der Integritätsprüfung als fehlerhaft erkannt, obwohl das natürlich totaler quatsch ist, aber woher soll die Nextcloud-Integritätsprüfung das auch wissen!? Viel wichtiger sind die OPCache Einstellungen für eine gute Performance würde ich sagen!

  • Hey norros,


    Gestern habe ich mir nochmals die Zeit genommen und alles neu installiert. So bin ich zwar auf ein neuen Fehler gestoßen, die hier manche haben, konnte aber weitgehend alles soweit beheben, so dass die Nextcloud läuft.

    Kommen wir erstmals zu meinem ersten Fehler den ich hatte. Davon habe ich auch schon gelesen, wenn bestimmte Dateien im Root der Nextcloud sind, das die Nextcloud-Integritätsprüfung anschlägt.

    Im Tutorial wird beschrieben, dass man die "Nextcloud.zip/Archiv" direkt über die Download Station runterlädt, sowie über die File Station entpackt.

    Hierbei ist aufgefallen, dass sämtliche versteckten (".Datei/.gitignore/.php.ini usw") Dateien nicht entpackt werden. Händisches kopieren direkt über die FIlestation hat auch keine Abhilfe geschaffen.

    Der schnellste weg war über WinSCP über den binären Übertragungsmodi und über "Strg+crtl+h" Hidden Files einzublenden. So konnte ich alle fehlenden Dateien kopieren.

    Sicherheitshalber habe ich den "chown -R 1000:1000" Befehl ausgeführt, aber nach genauen betrachten hat dieser keinen großen Einfluss.

    Bei manchen hilft wohl auch ein einfaches Update über das Webfrontend.


    Nach diesem A-H Erlebnis, musste ich feststellen die Berechtigungen für den Apache bzw. der Dateien haben nicht gestimmt. Dabei kam die Fehlermeldung über den Browser, dass man keine ausreichende Berechtigung besitze - "403".

    Zurück zur File Station und mir die Rechte Vergabe nochmals genauer angeschaut. Dabei habe ich was ausprobiert und den Ordner der Nextcloud öffentlich gemacht.

    pasted-from-clipboard.png


    Und zack lief alles ohne Probleme.

    Klar muss ich mir die Rechte Vergabe nochmals genauer anschauen und anpassen sobald die Cloud übers Internet erreichbar sein wird.

    Da ich aber schon ein VPN Netzwerk am laufen habe und ich erstmals darüber Zugriff erlange, ist dies nicht die oberste Prio - momentan.


    Zusatz Info: Die erste Installation lag teils im Public Ordner und teils direct in der Container Station. Habe etwas rum experimentiert. Im Public Ordner wird alles auf Anhieb laufen, sowie in der Container Station. Wenn man ein separaten Ordner anlegt oder wie in meinem Fall eine andere Festplatte, kann es zu kleinen Komplikationen kommen, die aber schnell beseitigt sind.


    Zurzeit möchte ich Docker/Container Station besser verstehen - mir fehlt aber die Zeit sämtliche Dokus zu lesen.

    Ich möchte die "php.ini" anpassen und habe mir die webdevops/apache angeschaut. Dabei musste aber feststellen, dass paar Einstellung Punkte fehlen, um diese bei den Umgebungsvariablen zu hinterlegen.

    So bin ich gerade dabei zu verstehen was ariaci in Post #21 umgesetzt hat. Wäre klasse, wenn ich hier paar Ratschläge bekommen könnte.


    Nach dem Anpassen, möchte ich SSL(Let's Crypt?), sowie SMTP einrichten und dann kann es los gehen mit der Nutzung.

    Einmal editiert, zuletzt von Paschys () aus folgendem Grund: Zusatz Info

  • Hallo

    Im Menü Übersicht Sicherheits- & Einrichtungswarnungen bekomme ich Meldung:


    Code
    Einige App-Ordner haben einen anderen Besitzer als der Benutzer des Webservers. Dies kann der Fall sein, wenn Apps manuell installiert wurden. Prüfen Sie die Berechtigungen der folgenden App-Ordner:
    
    /app/apps/accessibility
    /app/apps/activity
    /app/apps/admin_audit  
    sind noch weiter Daten alle im Ordner app/

    Alles nach Anleitung gemacht hat super funktioniert der Nextcloud Ordner ist Außerhalb des Containers.

    " App Calender und Kontakte habe ich nach der instalation installiert.


    Welchen Besitzer haben die app/ Ordner und welchen Benutzer hat der Webserver

    Wo und wie kann ich das ändern?



    Einmal editiert, zuletzt von Jogis ()

  • Installiert habe ich Nextcloud nach der Anleitung (Nextcloud mittels Docker-Container) von ariaci 👍 mit MariaDB


    Für alle die Nextcloud 14.0.3 mit Carddav und caldav und iPhone iOS 12 nutzen wollen ohne Zertifikat im lokalem Netzwerk.


    Nach dem Nextcloud docker installiert worden ist geht die Sichere Anmeldung nicht.

    (Zugriff über eine nicht vertrauenswürdige Domain) Seite wird angezeigt .


    Das sollte man in der Config.php im Nextcloud Verzeichnis bearbeiten und http durch https ersetzen , den ssl Port 10443 eintragen der bei der Einrichtung ausgewählt worden ist .

    Im iPhone passenden Server, Benutzername , Passwort und bei Beschreibung den link eintragen der in Nextcloud bei Kontakte und Kalender zu Verfügung steht Beispiel:

    https://XXX.XXX.XXX.XX:10443/remote.php/dav/principals/users/Name/


    Anmelden mit https den Fehler 2mal ignorieren mi OK


    Auf weitere Einstellungen gehen ssl Port aktivieren , den Port 10443 eintragen und auf Sichern gehen.

    Wichtig ! Zertifikat Warnung auf Details Vertrauen klicken und fertig.

  • Hallo zusammen,


    vielen Dank für die tolle Anleitung!! Die Installation hat auch super geklappt.


    Allerdings empfiehlt mit Nextcloud noch ein paar Einstellungen, wo ich keine Ahnung habe wie ich die vornehmen kann:

    Zitat
    • Der "Strict-Transport-Security" HTTP-Header ist nicht auf mindestens "15552000" Sekunden eingestellt. Für mehr Sicherheit wird das Aktivieren von HSTS empfohlen, wie es in den Sicherheitshinweisen erläutert ist.
    • Es wurde kein PHP-Memory-Cache konfiguriert. Zur Erhöhung der Leistungsfähigkeit kann ein Memory-Cache konfiguriert werden. Weitere Informationen finden Sie in der Dokumentation.
    • Der PHP-OPcache ist nicht richtig konfiguriert. Für eine bessere Leistung empfiehlt es sich folgende Einstellungen in der php.ini vorzunehmen:
      Code
      opcache.enable=1
      opcache.enable_cli=1
      opcache.interned_strings_buffer=8
      opcache.max_accelerated_files=10000
      opcache.memory_consumption=128
      opcache.save_comments=1
      opcache.revalidate_freq=1


    Wie kann ich den HTTP-Header auf die gewünschten Sekundne einstellen?

    Wie kann ich den PHP-Memory-Cache konfigurieren?

    Wo finde ich die php.ini?


    Vielen Dank für eure Hilfe!

  • Danke für die Tolle Anleitung, hat auch 3 Mal wunderbar funktioniert!


    Beim vierten Mal bekomme ich jetzt ständig diese Fehlermeldung egal was ich tue:

    Code
    [Wed Nov 28 15:40:31.064336 2018] [proxy_fcgi:error] [pid 71:tid 139658621044480] [client 10.0.3.1:57664] AH01071: Got error 'Primary script unknown\n'
    docker.vm:80 10.0.3.1 -


    Ich finde dazu aber leider nichts was mir weiter hilft...


    Und Mak10


    Die PHP.ini findest du hier /opt/docker/etc/php/php.ini

  • Bei mir läuft Nextcloud bis jetzt stabil und bin zufrieden, es gibts aber neue Nextcloud Version, so richtig scharf bin ich aber nicht auf das Update , einmal habe ich gemacht danach ist damals noch OwnCloud nicht mehr funktionsfähig gewesen. Nun im ferne Zukunft wird es vielleicht nicht schlecht wenn man es machen würde.

    Wie mache ich am besten?

    Sollte es mit einem Skript funktionieren ? Wie sieht so ein Script aus?

    Einmal editiert, zuletzt von Jogis ()

  • Hallo,


    Danke für die super Anleitung. Habe sie befolgt, es hakt bei mir aber bei der Verbindung zur Datenbank. hoffe, es kann mir jemand weiterhelfen.


    Die Erstellung und Einrichtung des mariadb- sowie des Apache-containers haben super funktioniert. Nun bin ich gerade beim Setup-Dialog von nextcloud. Unter "Datenbank einrichten" habe ich "MySQL/MariaDB" mit den im screenshots angegebenen Settings eingestellt.


    Nach Klick auf "Installation abschliessen" dauert er es eine ganze Weile und dann erscheint die Fehlermeldung:


    Code
    Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Connection timed out


    und manchmal auch:


    Code
    Error while trying to create admin user: Failed to connect to the database: An exception occured in driver: SQLSTATE[HY000] [2002] Connection refused


    Was kann ich tun? Es scheint so, als ob die Verbindung der beiden Container über das Link-Feature vielleicht nicht richtig funktioniert. Ich bekomme auch den Hinweis, dass diese Docker-Funktion 'deprecated' ist und bald nicht mehr zur Verfügung steht.

    Einmal editiert, zuletzt von indigo ()

  • Hi, ich habe mir die Nextcloud15 auf eine TS-453 Pro installiert (Apache, MariaDB und Nextcloud)

    https://qnapclub.eu/de/qpkg/348


    Eine dumme Frage: Wohin speichert mir Nextcloud die Daten? Kann ich mittels File Station sehen, wohin die Daten landen? Oder sind die in den "Tiefen meines NAS Systems?"

  • hallo ariaci

    und vielen Dank! für deine zwei Anleitungen (MariaDB mit phpmyadmin und nextcloud).


    Ich wäre so froh & dankbar, wenn du das Ganze noch mit einer weiteren Anleitung nginx & letsencrypt vervollständigen würdest - hast du sowas in Planung?


    Gruss

    santo

    hi ariaci


    wieso hast du unter Punkt "3) Docker-Container für NextCloud erstellen" (post #4) nicht dazu entschieden gleich ein fertiges docker image von nextcloud von der containerstation zu laden?


    Gruss

    Santo

  • Mega gut, vielen lieben Dank für das Tutorial. Hat mit kleinen Schwierigkeiten gut funktioniert.


    Nun möchte ich gern die Nextcloud über das Internet erreichbar machen. Du hast von einem ReverseProxy gesprochen.


    Hast Du / oder jemand anders der Community hierzu auch ein Tutorial für mich parat?


    Vielen lieben Dank!

  • @BaWsLjus


    hast du mittlerweile eine Lösung? Stehe mit meinem TS-231P vor dem gleichen Problem? Ich brauch doch theoretisch ein Docker für alpine bzw. armv7?