Komplettanleitung – Nextcloud + DuckDNS + Letsencrypt

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
EMAIL 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.

Erstelle deine Website mit WordPress.com
Jetzt starten