Wer möchte, kann sich das Video von Michael Mackedanz auf YouTube anschauen. Besser kann man das nicht erklären. Dafür alle 10 Daumen nach oben :-).
Michael Mackedanz hat alles über Docker realisiert. Ich werde in diesem Guide allerdings nur Nextcloud, DuckDNS und Letzencrypt „Dockern“. Die MySQL-Datenbank als Ersatz des MariaDB-Dockers und MyWebSQL als Ersatz des phpMyAdmin-Dockers werde ich mit den OMV 4 – eigenen Mitteln realisieren.
In diesem Guide gehen wir davon aus, dass Openmediavault 4 inkl. den OMV-Extras frisch installiert wurde, alle Aktualisierungen getätigt sind und wir alles neu erstellen. Wer da schon weiter ist, weiß, was man ignorieren kann.
Alles bis hier hin findet ihr hier.
Zuerst in den >Erweiterungen< oben links auf „Prüfen“ und dann „openmediavault-omvextrasorg“ installieren. Dann in >OMV-Extras< die „OMV-Extras“ und OMV.Extras.org Testing“ aktivieren.
Aus den >Erweiterungen< installieren wir
- shellinabox
- openmediavault-mysql
- openmediavault-nginx
- openmediavault-docker-gui
Dann in den >Erweiterungen< „Docker-CE“ aktivieren.
Bei >Benutzer< einen Benutzer erstellen.
Wenn fertig, bei >Freigegebene Ordner< einen Ordner Namens AppData mit Zugriffsrechten „ALLE“ erstellen. Anschließend einen Ordner Namens NextcloudData mit Zugriffsrechten „ALLE“ erstellen.
Diese beiden Ordner auch per Samba-Freigabe freigeben. „Gäste sind zugelassen“ und „Berechtigungen erben“ aktivieren.
Jetzt bei Benutzer den eben erstellten Benutzer auswählen und diese 2 Ordner auf Lese-Schreibzugriff setzen.
Jetzt shellinabox, Nginx, MySQL und Docker jeweils aktivieren.
Nun erstellen wir im Ordner AppData einen Unterordner Namens NextcloudConfig und einen Ordner Namens LetsencryptConfig.
Jetzt richten wir die Datenbank für Nextcloud ein. Am einfachsten legt ihr Datenbank und Benutzer jeweils mit dem Namen nextcloud an. Ich könnt aber auch andere Namen wählen.
Wie das geht, seht ihr hier.
Jetzt folgende Docker installieren:
- linuxserver/nextcloud
- linuxserver/duckdns
- linuxserer/letsencrypt
Zuerst einen DuckDNS-Account auf Duck DNS erstellen. Am schnellsten geht das, indem man sich mit dem Google-Account anmeldet und dann eine „sub domain“ erstellt.
Docker „linuxserver/duckdns“ Image starten.
Container Name: duckdns
Restart Policy: always
Netzwerkmodus: Bridge
Umgebungsvariablen:
Name: | Value: |
PUID | 1000 |
PGID | 100 |
TZ | Europe/Berlin |
SUBDOMAINS | Die bei DuckDNS erstellte Sub Domain (ohne Zusatz) |
TOKEN | das angezeigte Token in euren DuckDNS Account |
Save
Jetzt installieren wir den Nextcloud-Docker.
Container Name: nextcloud
Restart Policy: always
Netzwerkmodus: Bridge
Host Port: 447 Exposed Port: 443
Umgebungsvariablen:
Name: | Value:
PUID | 1000
PGID | 100
TZ | Europe/Berlin
Volumes and Bind mounts:
/Sharedfolders/Appdata/NextcloudConfig /config
/sharedfolders/NextcloudData /data
Speichern.
Start im Browser: https://IP-Adresse Eures Servers:447
Administratorkonto anlegen
Benutzername: admin
Passwort: Ein Passwort Eurer Wahl
Datenverzeichnis
/data
Speicher & Datenbank
MySQL/MariaDB auswählen
Datenbankbenutzer: Den Benutzernamen, den ihr vorhin bei MyWebSQL angelegt habt (nicht root!)
Passwort: Das dazugehörige Passwort
Datenbank-Name: nextcloud
Localhost: ip-adresse-des-servers:3306
Starten
Achtung! Bei nicht so schnellen Servern kommt hier oft die Fehlermeldung „504 Gataway Time-out“
Bitte lasst einfach die Fehlermeldung paar Minuten stehen! Die Festplatte schreibt im Hintergrund munter weiter und legt die Daten trotzdem an. An der Festplattenkontrollleuchte erkennt ihr, wann das System fertig ist. Für alle, die keine Anzeige haben, macht Euch `nen Kaffe oder so. Nach einigen Minuten könnt ihr das Browserfenster aktualisieren und der Login-Bildschirm von Nextcloud erscheint.
Portfreigabe des Routers erstellen.
Im oben erwähnten Video bei 43:52 seht ihr, wie ihr die Portfreigabe einer FritzBox einstellt.
Wer sich auskennt: Anwendung HTTPS-Server, Protokoll TCP, Port am Gerät 447 bis Port 447 und Port extern ebenfalls auf 447. IPV4 Markierung reicht aus.
Jetzt noch 2 Freigaben im Router setzen. Im Video bei 58:26 erklärt. Achtung! Im Video wird bei http-Port die 90 genommen. Ich wähle die 91, da ich mein OMV 4 im Vorfeld auf Port 90 setzte und diese dann nicht funktionieren würde!
Wer sich auskennt: Anwendung HTTP-Server, Protokoll TCP, Port am Gerät 91 bis Port 91 und Port extern auf 80. IPV4 Markierung reicht aus. Dann Anwendung HTTPS-Server, Protokoll TCP, Port am Gerät 450 bis Port 450 und Port extern auf 443. IPV4 Markierung reicht aus.
Jetzt in AppData/NextcloudConfig/www/nextcloud/config die config.php bearbeiten. Dazu empfehle ich das Programm Notepad++
Die Änderungen, die ihr hier setzen müsst, lassen sich schriftlich schlecht erklären. Bitte im Video bei 47:21 schauen. Die Sub Domain michael-test im Video müsst ihr mit Eurer erstellten Sub Domain aus DuckDNS ersetzen!
Letsencrypt installieren:
Zuerst in Shellinabox mit Root anmelden und folgendes eingeben:
docker network create my-net
Jetzt bei >Docker< Docker „linuxserver/letsencrypt“ Image starten.
Container Name: letsencrypt
Restart Policy: always
Netzwerkmodus: Bridge
Host Port | Exposed Port |
450 | 443/tcp |
91 | 80/tcp |
Umgebungsvariablen:
Name: | Value: |
PUID | 1000 |
PGID | 100 |
TZ | Europe/Berlin |
Eine gültige Emailadresse | |
URL | duckdns.org |
SUBDOMAINS | Die bei DuckDNS angelegte Sub Domain ohne Zusatz |
VALIDATION | http |
ONLY_SUBDOMAINS | true |
Volumes and Bin mounts | |
/sharedfolders/AppData/LetsencryptConfig | /config |
Extra arguments
–cap-add=NET_ADMIN –network my-net
Save
in >Shellinabox<:
docker logs -f letsencrypt
Dieser Vorgang dauert etwas. Wenn dann Congratulations! und etwas weiter unten dann Server ist Ready erscheint, wurde das Zertifikat erstellt.
Jetzt die Datei AppData/ LetsencryptConfig/nginx/proxy-confs/nextclousubdomain.conf.sample mit Notepad++ öffnen und ändern. Im Video bei 1:02:14 erklärt.
Dann die Datei AppData/Nextcloudconfig/www/nextcloud/config/config.php öffnen und bearbeiten. Im Video bei 1:05:32 erklärt.
Fertig.
Jetzt
https://eure-subdomain.duckdns.org
eingeben und ihr könnt auf Nextcloud mit einer gesicherten Verbindung übers Internet zugreifen.
Nachtrag:
Persönlich nutze ich ich diese Variante (noch) nicht. Wenn ich auf meine Nextclouddaten Zugriff benötige, verwende ich derzeit eine sichere VPN-Verbindung. Mir fehlt momentan die Zeit, das umzusetzen.