OMV3 Spiegelserver Fehler

    • Offizieller Beitrag

    Ich habe das docker-compose file oben korrigiert. Bei mir funktioniert es jetzt.


    Dazu in der Kommandozeile in das home Verzeichnis wechseln und dort ein Verzeichnis für unseren Nutzer docker1 anlegen (ist aber eigentlich egal in welchem Verzeichnis wir das machen)
    cd /home
    mkdir docker1
    cd docker1
    Dann eine neue Datei erzeugen (der Name muß so sein)
    nano docker-compose.yml Der Texteditor nano geht gleich auf.
    Den Inhalt der docker-compose Datei von oben in den Texteditor kopieren und die entsprechenden Anpassungen machen.
    Datei mit Ctrl+x und y speichern und schließen.


    Dann im gleichen Verzeichnis, in dem die docker-compose.yml liegt: docker-compose up -d
    Die Images werden heruntergeladen und die Docker erzeugt. Das Ganze kann etwas dauern.


    Wenn fertig mit docker logs -f letsencrypt nachsehen, ob es Fehlermeldungen gibt, oder ob letsencrypt die Zertifikate erzeugen konnte


    Ich erreiche Nextcloud im lokalen Netzwerk mit


    https:\\ip.von.der.nas:445


    Im Moment gibt es noch eine Warnung wegen unsicherer Verbindung, das müßte aber durch eine Anpassung des reverse proxy korrigierbar sein

    • Offizieller Beitrag

    reverse proxy:


    cd /srv/dev-disk-by-label-disk1/appdata/letsencrypt/nginx/proxy-confs Pfad zu appdata entsprechend anpassen
    cp nextcloud.subfolder.conf.sample nextcloud.subfolder.conf kopiert die vorbereitete Konfigurationsdatei und entfernt dabei das .sample


    Jetzt müssen wir noch die Anweisungen am Anfang der nextcloud.subfolder.conf befolgen.


    Dazu
    nano /srv/dev-disk-by-label-disk1/appdata/nextcloud/config/www/nextcloud/config/config.php Pfad zu appdata wieder anpassen.


    und ganz am Ende, aber vor ");" folgendes ergänzen:

    Code
    'trusted_proxies' => 
      array (
        0 => 'letsencrypt',
      ),
      'overwritewebroot' => '/nextcloud',
      'overwrite.cli.url' => 'https://your.url/nextcloud',
      'trusted_domains' => 
      array (
        0 => 'your.url:443',
      ),

    your.url jeweils durch deinen Domain-Namen ersetzen



    Danach letsencrypt container neu starten und mit docker logs -f letsencrypt nachsehen, ob es Fehlermeldungen gibt.


    Nextcloud container neu starten.


    Nextcloud sollte dann unter


    https://your.url/nextcloud


    erreichbar sein.

    • Offizieller Beitrag

    Beim ersten Aufruf von Nextcloud muß dann noch die Datenbank konfiguriert werden.


    Dazu "Storage & Database" anklicken.
    Dann auf MySQL/MariaDB


    user --> root
    password --> das Passwort, dass in der docker-compose Datei mit MYSQL_ROOT_PASSWORD festgelegt wurde
    database --> nextcloud
    host --> nextclouddb


    Dann "finish setup" klicken. Ich mußte bei mir das ganze 3mal machen, bis es geklappt hat. Bin aber auch auf einer extrem langsamen Hardware unterwegs ;)

    • Offizieller Beitrag

    Hier noch ein docker-compose file um Watchtower zu installieren. Watchtower überwacht die Container und lädt neue Images falls verfügbar.
    Nextlcoud mußte ich allerdings innerhalb von Nextcloud aktualisieren.


    Code
    version: "2"
    services:
      watchtower:
        image: containrrr/watchtower
        volumes:
          - /var/run/docker.sock:/var/run/docker.sock
        environment:
          - WATCHTOWER_CLEANUP=true
          - WATCHTOWER_POLL_INTERVAL=3600
        restart: unless-stopped
  • Hallo
    Sorry, ich war am Wochenende etwas beschäftigt!
    Danke für diese ausführliche Beschreibung.
    Die eigentlichen Daten sind ja später auf einer extra Festplatte, die ausschließlich für nextcloud gedacht ist.
    Sollte ich den Pfad in der docker-compose.yml auf diese Datenplatte oder besser auf die Systemplatte anpassen?

    • Offizieller Beitrag

    Würde ich trotzdem als externen Datenträger einbinden.


    Eigentlich ist die Idee von Nextcloud, mit einer leeren Datenbasis zu beignnen, und dann Inhalte zu füllen.
    Wenn du keine Festplattenkapazität hast, um die Daten später in Nextcloud zu kopieren, ist das vermutlich ein Weg.

  • OK. Ich wollte mir eigentlich nur den Kopiervorgang sparen.
    Dann werde ich die Platte löschen und als neuen Datenträger einbinden.
    Was ich jetzt noch nicht gesehen habe, in welchem Verzeichnis werden die Daten (Bilder u.s.w) später abgelegt?
    Alles in ...../appdata/..... sind ja wohl Installations- bzw. Conf Files...Oder?

  • mmmhhh ich glaube da habe ich dann was verpasst.
    Ich habe noch kein Verzeichnis als /data eingebunden.


    Noch was ist mir aufgefallen, aber auch nichts darüber auf der von dir verlinkten Seite gefunden:
    Die Portfreigaben in der docker-compose.yml überschneiden sich. Die Ports 443 und 80 sind doppelt vergeben.
    Egal ob ex- oder intern. Ich kann die für die IP doch nicht doppelt vergeben...
    Oder hab ich so früh am Morgen noch einen Denkfehler?

    • Offizieller Beitrag

    mmmhhh ich glaube da habe ich dann was verpasst.
    Ich habe noch kein Verzeichnis als /data eingebunden.

    Im docker-compose file gibt es diese Zeile
    - /srv/dev-disk-by-label-disk1/appdata/nextcloud/data:/data


    Auf der rechten Seite des Doppelpunktes steht "/data". Das ist das Verzeichnis, das Docker-Nextcloud intern braucht um unter anderem die Daten zu speichern.
    Auf der linken Seite des Doppelpunktes steht der Pfad auf deinem Server zu diesem Verzeichnis, also extern (von Docker aus gesehen)

    Noch was ist mir aufgefallen, aber auch nichts darüber auf der von dir verlinkten Seite gefunden:
    Die Portfreigaben in der docker-compose.yml überschneiden sich. Die Ports 443 und 80 sind doppelt vergeben.
    Egal ob ex- oder intern. Ich kann die für die IP doch nicht doppelt vergeben...

    Doch, jeder Container kann für sich intern diese Ports benutzen. Die Container sind weitestgehend isoliert und können nur über definierte Schnittstellen mit der Außenwelt kommunizieren. Extern kann dann jeder Port nur einmal zugewiesen werden.


    ports:
    - 444:443
    - 81:80



    Das bedeutet, dass die internen Ports 80 und 443 auf die externen Ports 81 und 444 gemappt werden.
    Das gleiche Schema wie bei den Verzeichnissen. Rechts steht der interne Wert und links der externe.
    extern:intern

  • Hallo
    Sorry, ich bin nun doch etwas verwirrt:
    In Post #17 schreibst du:


    Zitat:
    Im Router muß dann noch eine Port-Weiterleitung eingerichtet werden.
    port extern 443 auf intern 444
    port extern 80 auf intern 81
    für die IP Adresse von deinem NAS.


    In dem Post hier drüber ist es aber umgekehrt.

    Zitat
    Das bedeutet, dass die internen Ports 80 und 443 auf die externen Ports 81 und 444 gemappt werden."


    Ich vermute jetzt mal folgendes, so wie ich es aus der docker-compose.yml rauslese:


    Für mariadb werden die internen Ports 443 und 80 extern auf 445 und 82 gemappt.
    Für letsencrypt werden (auch) die internen Ports 443 und 80 auf 444 und 81 gemappt.


    Somit muss ich dann wohl 4 Portfreigaben in der FritzBox eintragen.


    Ist das so richtig oder bin ich jetzt total auf dem Holzweg?


    Ich habe nun aber nur mal 443 und 80 auf 7443 und 7080 gemappt (Die 7 weil der Server im Netz die IP X.X.X.7 hat
    Meine Frage auch deshalb, weil nach dem Befehl
    docker logs -f letsencrypt
    der Bildschirm so wie auf dem Bild stehen bleibt und nichts mehr passiert.


    Da die Weboberfläche von OMV ja auch schon den Port 80 nutzt, dachte ich mir, ist es einfacher den Port dort zu ändern.
    Gesagt, getan, von 80 auf 85 geändert (wohl gemerkt für die Weboberfläche) und nun komme ich im lokalen Netz nicht mehr über Eingabe der IP Adresse auf die Weboberfläche, wohl aber über mydomain:7085
    Wieder zurück auf die 80 geändert und ich komme auch lokal wieder drauf.

    • Offizieller Beitrag

    Ok, die Verwirrung kommt daher, dass intern/extern nicht eindeutig ist.
    Von Docker aus gesehen ist intern/extern anders, als vom Router aus
    gesehen.



    Wir haben



    Docker -- NAS -- LAN -- Router -- Internet (WAN)
    443....... <-->... 444.... <-->...... 443
    80 .........<-->... 81..... <-->....... 80




    Dadurch ist der Port 80 im LAN nicht belegt und du kannst OMV auf Port 80 lassen.
    Aus dem Internet kommen Anfragen auf Port 80. Die Anfragen werden im
    Router auf Port 81 umgeleitet und im LAN verteilt. In der NAS werden
    dann die Anfragen auf Port 81 empfangen und auf Port 80 an Docker
    weitergegeben.



    Ich würde vorschlagen, dass du die Ports so wählst, wie im Beispiel.
    Wenn dann mal alles läuft, kannst du die Ports immer noch ändern. Wenn
    du einen guten Grund dafür hast

  • Prinzipiell würde ich gerne die Standardports nehmen. Aber meine FB ist von außen auch über 443 erreichbar und ich kann den Port nicht ändern, da ich sonst keinen Zugriff von der Arbeit aus habe... ;)


    Meine Fragen:
    Muss ich dafür in der docker-compose.yml einfach nur den Port 443 auf z.B. 442 ändern.
    Und ich vermute mal danach muss ich
    docker-compose up -d
    nochmal ausführen...?!?

    • Offizieller Beitrag

    Aber meine FB ist von außen auch über 443 erreichbar und ich kann den Port nicht ändern, da ich sonst keinen Zugriff von der Arbeit aus habe

    Du mußt dann den neuen Port (z.B. 442) beim Aufruf der Seite mit angeben. Müßte so sein, habe ich aber noch nicht ausprobiert.

    Muss ich dafür in der docker-compose.yml einfach nur den Port 443 auf z.B. 442 ändern.

    Ja

    Und ich vermute mal danach muss ich
    docker-compose up -d
    nochmal ausführen...?!?

    Ja. Docker-compose übernimmt dann die bestehenden Container und erstellt nur die neu, bei denen sich etwas geändert hat.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!