Anleitung: nextcloud mit nginx reverse proxy und LetsEncrypt auf Docker

  • Hallo zusammen,


    habe nun erfolgreich meine standalone Apache Nextcloud auf diese QNAP Docker version migriert

    Danke an @xgadscu

    Eine Frage hab ich allerdings noch zu dem Update der Nextcloud.

    Das dies ja nicht mehr direkt an der Nextcloud durchgeführt wird, sondern über die Container, kann mir jemand kurz erklären, wie dies geht.

    Also ich lösche den Container nextcloud_web_1 und dann wird ein build durchgeführt und ein aktuelle Container mit den Daten aus dem Volume wird dann erzeugt und angelegt? Vorher einfach den stack auf down setzen? oder/und maintenance mode von der Nextcloud auf on?

    Danke


    Ach ja, über Portainer sehe ich einige unused volumes und Images. Kann/soll man die löschen?

    z.b. Image jwilder/nginx-proxy:alpine oder nginx:latest sind unused wenn die nextcloud läuft. Braucht man die nicht? oder nur einmalig beim initial build?

  • Moinsen :)


    evtl. kann mir jemand helfen.

    Ich hab ein Problem mit der maximalen Dateigröße.

    Den kompletten Thread hab ich jetzt mehrfach runter und rauf gelesen, aber leider finde ich keine Lösung.

    Die Datei uploadsize.conf wird einfach nicht in /share/CACHEDEV1_DATA/Docker-Volumes/nextcloud/nginx-conf.d kopiert und auch das einfügen von Hand hat keine Besserung gebracht. ich finde bei mir auf dem NAS auch keine php.ini-development wo ich eine max. Dateigröße eingeben kann.


    Nextcloud habe ich jetzt 4 mal neuinstalliert ohne eine Besserung.

    Evtl. kann mir jemand helfen und dafür wäre ich sehr dankbar :)

  • Wie sieht denn die Struktur aus, wenn du die nextcloud installierst. Es ist schwer, dabei zu helfen, wenn man nicht erkennen kann, wie deine Verzeichnisse und Berechtigungen aussehen. Es wäre gut, wenn du mal ein screenshot zeigen könntest. auch von deiner docker-compose.... natürlich mit den persönlichen daten unkenntlich gemacht.

  • Danke für die Antwort.


    Die Dateien für die Installation habe ich aus dem #5 Beitrag genommen - sprich mit Collabora.


    Dateien für die Installation liegen in /share/CACHEDEV1_DATA/Docker-Configs/nextcloud/


    Die docker-compose wurde mit den nötigen Daten gefüllt, wie auch die Angaben für Collabora.

    Hier meine docker-compose:

    Hier die dockerfile aus /share/CACHEDEV1_DATA/Docker-Configs/nextcloud/proxy und in diesem Ordner sind folgende Dateien: dockerfile, meinesubdomain (inkl. angepassten Inhalt) und uploadsize.conf

    Code
    FROM jwilder/nginx-proxy:alpine
    
    COPY uploadsize.conf /etc/nginx/conf.d/uploadsize.conf
    COPY meinesubdomain /etc/nginx/vhost.d/meinesubdomain

    In der uploadsize.conf steht nur client_max_body_size 512M;


    Installiert wurde alles wie im #1 Beitrag angegeben und hat auch funktioniert.


    Installationsverzeichnis: /share/CACHEDEV1_DATA/Docker-Volumes/nextcloud mit folgendem Inhalt:

    html - mariadb - nginx-certs - nginx-conf.d - nginx-html - nginx-vhost.d


    In dem Ordner nginx-conf.d & nginx-vhost.d waren weder die uploadsize.conf noch die meinesubdomain zu finden.

  • Hast du mal versucht, die Ordnerstruktur ohne dem nginx-... zu erstellen? ich habe extra einen ordner nginx erstellt und darin dann certs, conf.d usw. ich bin mir nicht sicher, aber es könnte sein, dass ich anfangs auch solche probleme hatte.


    Weiterhin musst du bei letscrypt aufpassen... ich teste da gerade einen tipp aus einem anderen Beitrag hier aus. Problem bei mir war aktuell, dass das Zertifikat nicht erneuert wird. Ich habe gelesen, dass die volumes anders eingebunden werden müssen, weil es da wohl irgendein problem bei qnap gibt

    Einmal editiert, zuletzt von eol25 ()

  • Hast du mal versucht, die Ordnerstruktur ohne dem nginx-... zu erstellen? ich habe extra einen ordner nginx erstellt und darin dann certs, conf.d usw. ich bin mir nicht sicher, aber es könnte sein, dass ich anfangs auch solche probleme hatte.

    Wie meinst du das?

    Müssen dafür die docker-compose etc angepasst werden oder einfach von Hand?

  • Du musst die Volumes natürlich entsprechend anpassen auch in der docker-compose. also die Pfade müssen verfügbar usw.

  • Hallo und vielen Dank für Anleitung.


    Ich habe mich auch da rangewagt.


    Ich habe folgendes Problem:


    Habe die Ports in den Qnap Systemeinstellungen wie folgt geändert Systemport = 7070

    und HTTPS = 455


    Die Ports 80 + 443 sind in der Fritzbox an Qnap freigegeben.

    Dyndns cname ist auch eingerichtet.


    Nun bekomme ich eine Fehlermeldung bei

    docker-compose up -d

    Kann mir vielleicht jemand sagen, was ich da machen muss.


    Vielen Dank

    Gruß Osterei




    Bin schon ein kleines Stück weiter.

    Alles Container laufen jetzt.

    Ich komme per http auf den Server.

    Per https nicht.

    hier eine Fehlermeldung von lets...


    Code
    requests.exceptions.ConnectionError: HTTPSConnectionPool(host='acme-v02.api.letsencrypt.org', port=443): Max retries exceeded with url: /directory (Caused by NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x7f10a8ecadc0>: Failed to establish a ne
    w connection: [Errno -3] Try again'))   

    Einmal editiert, zuletzt von Osterei ()

  • Alle Jahre wieder "Hallo" :)


    ich muss zugeben, die folgenden Zeilen passen nur bedingt in diesen Thread, aber immerhin liegen meine Nextcloud Daten weiterhin auf meinem QNAP NAS, obwohl die Nextcloud selber nicht mehr auf dem NAS läuft.


    In Beitrag #66 schreibt xgadscu wie er von der Lösung auf QNAP Abstand genommen hat.

    Auch ich bin letztes Jahr in ein Problem reingerannt, das ich nicht lösen wollte: Nextcloud hat ein Sicherheitsupdate benötigt, aber ich konnte die Container auf dem NAS nicht einfach aktualisieren. Ich vermute, dass ich versucht habe ein Major Update einzuspielen. Jedenfalls fand ich das doof und habe die Lust an dieser Lösung verloren.


    Jetzt habe ich es so gelöst:

    Odroid H2

    >Debian

    >>Docker

    >>>Nextcloud


    Die Daten liegen per NFS-Freigabe auf dem NAS, sieht im docker-compose.yml dann so aus:

    Alle Container die das Volume nextcloud nutzen bekommen zusätzlich nextcloud-data eingetragen.


    Die Anwendung und die Datenbank können leider nicht auf NFS-Freigaben verortet werden. ?(

    Deshalb läuft jede Nacht ein kleines Backup-Script, das mir den Inhalt des Anwendungs-Containers und einen SQL-Dump auf das NAS wegsichert.


    Auf Collabora verzichte ich, weil seit Anfang 2020 OnlyOffice in Nextcloud integriert ist.

    Damit das funktioniert darf man nicht die Alpine Images verwenden: einfach in der docker-compose und allen anderen Dateien das :alpine oder das -alpine rausnehmen.

    Desweiteren muss man nach der Ersteinrichtung (bei welcher ich nicht die empfohlenen Anwendungen mitinstalliere) einmal in das Volume von der Nextcloud Anwendung rein und die config.php anpassen:

    Code
    'overwrite.cli.url' => 'https',
    'overwriteprotocol' => 'https',

    Danach OnlyOffice und den Community Document Server installieren.


    Verbleibende Themen: Performance. Wenn sehr viele Anfragen kurz hintereinander erfolgen, dann streikt der Reverse-Proxy durchaus mal. Evtl. kann man in der Konfiguration noch ein wenig herumpfuschen. Aber da ich davon keine Ahnung habe muss ich mal abwarten, wann ich Zeit und Lust finde mich in das Thema einzuarbeiten. Es war für einen Nicht-Informatiker wie mich schon spannend genug die Nextcloud auf diese Weise stabil zum Laufen zu bekommen.

    Nächstes Projekt: Pull-Backup auf ein zweites NAS an einem anderen Standort. :)


    Vielen Dank euch Allen. Beste Grüße, Schorsch

  • Ich habe mich nicht für die Docker-Lösung entschieden, sondern für Qapache(74) und Nextcloud als QPKG.

    Läuft, aber Nextcloud beschwert sich über mehrere Probleme in der Konfiguration, die ich gerne beheben möchte, finde aber die zugehörigen Dateien nicht.

    Wer kann mir helfen?


    M.

  • Also ich nutze selbst auch die Docker-Version. Eine Idee von mir wäre jedoch folgende. In der Nextcloud gibt es eine app namens "occ web" damit soll man occ befehle innerhalb des browsers aufrufen können. Jedoch weiß ich nicht, ob die Berechtigungen dabei reichen? Du kannst ja dort einmal schauen und eine Rückmeldung geben, ob das klappt.

  • Hallo und erstmal vielen Dank für diese tolle Anleitung. Nur deswegen plane ich die Anschaffung einer QNAP Nas.


    Ich möchte auf der NAS genau die Anleitung ausführen und meinen eigenen Nextcloud-Server betreiben. Zusätzlich würde ich gerne per vpn.example.com eine (verschlüsselte) VPN-Verbindung zur NAS aufbauen. Ist das möglich? Was muss ich da tun?


    Oder vielleicht die Frage: Wie komme ich aus dem reverse proxy auf systemdienste wie qvpn?


    cloud.meineadresse.de -> Nextcloud

    vpn.meineadresse.de -> qvpn (oder anderer lokaler service)


    Nginx müsste also je nach domain den traffic weiterleiten, aber halt auch auf die lokale ip.

    2 Mal editiert, zuletzt von Winterkorn ()

  • Hallo und auch von mir ein dickes Dankeschön für ein wirklich funktionierendes Tutorial!

    Ich bin Docker Neuling, bisher tat es immer eine VM aber jetzt möchte ich eine Bitwarden Instanz hosten und das gibts nur als Docker.

    Ich versuche gerade Nextcloud und Docker auf dem NAS zu hosten, Nextcloud ist dank diesem Tutorial kein Problem. Bitwarden läuf auch schon (lokal port 7777) nur wie bekomme ich das mit dem Reverse-Proxy verbunden?

    Bitwarden hätte ich gerne als Suffix also https://name.subdomain.com/bitwarden

    Was muss ich tun um BW auf .../bitwarden zu lenken?

  • Übrigens.... falls hier mal irgendjemand coturn mit dieser Anleitung zum Laufen gebracht hat. Ich wäre riesig dankbar für eine Hilfe, denn bei mir will es auf biegen und brechen nicht laufen.