nextcloud

Änderungsstand: 2023-10-23

2023-10-23: Ab nun eine andere Datenbank in Verwendung.

2023-06-24: Guide auf NC27 aktualisiert.

Eigenes Fazit (Stand: 06/2023): Funktioniert mittlerweile recht gut. Probleme, wie sie 2021 noch auftraten, sind bisher nicht präsent. Ich teste diese Variante derzeit auf 4 verschiedenen Plattformen in Verbindung mit /linuxserver/mariadb.

——

Docker MariaDB:

  • Apps
    • mariadb im Suchfeld eingeben
      • mariadb (mgutt’s Repository) wählen
        • Install klicken
          • Name: MariaDB-Official
          • Quelle: mariadb
          • Netzwerktyp: br0 oder br1
          • Statische IP-Adresse: Eine freie IP-Adresse im Heimnetzwerk
          • Port: 3306
          • Generate Random Password: Yes
          • DATABASE Name: nextcloud
          • Database User: nextcloud
          • Database Password: SICHERES PASSWORT
          • Data: Pfad ggf.. anpassen
          • Config: Pfad ggf.. anpassen
          • ANWENDEN

Wenn fertig heruntergeladen,

  • „Fertig“ klicken
  • „Docker“
  • Autostart „ON“
  • IP-Adresse ablesen, falls keine feste IP-Adresse vergeben wurde

Docker ist nach ca. 1 Minute eingerichtet.

Das root-Passwort:

  • Protokoll am gestarteten Docker öffnen
  • Passwort ablesen/kopieren: GENERATED ROOT PASSWORD: xxxxxxxxxxxxxxxx
  • Info: Ich erstelle anschließend mittels phpMyadmin einen weiteren Root-User mit eigenem Root-Kennwort

Docker Nextcloud:

  • „Apps“
    • Im Suchfeld nextcloud eingeben
      • Nextcloud (linuxserver) auf Download-Symbol klicken
        • Gewünschte Einstellungen tätigen
        • Quelle: lscr.io/linuxserver/nextcloud
        • Netzwerktyp: br0 oder br1
        • Statische IP-Adresse: Eine freie IP-Adresse im Heimnetzwerk
        • Host Port 1: 443
        • Path: /data: /mnt/user/nextclouddata/ (ein von mir erstellter Freigabeordner)
        • „Mehr Einstellungen“
        • Appdata: /mnt/user/appdata/nextcloud
        • „Apply“

Wenn fertig heruntergeladen,

  • „Done“ klicken
  • „Docker“
  • Autostart „ON“
  • IP-Adresse ablesen, falls keine feste IP-Adresse vergeben wurde

Docker Redis:

  • „Apps“
    • Im Suchfeld redis eingeben
      • Redis (Redis – jj9987’s) auf Download-Symbol klicken
        • Gewünschte Einstellungen tätigen
        • Quelle: redis
        • Netzwerktyp: br0 oder br1
        • Statische IP-Adresse: Eine freie IP-Adresse im Heimnetzwerk
        • Redis Port: 6379
        • „Apply“

Wenn fertig heruntergeladen,

  • „Done“ klicken
  • „Docker“
  • Autostart „ON“

Auf zur Einrichtung Nextcloud

Aufruf im Browser: http s://Nextcloud-IP-Adresse:443

(Warnhinweis kann im eigenen Netzwerk akzeptiert werden).

Administrator-Konto anlegen: Kompliziert soll es sein

„Speicher & Datenbank“:

Datenverzeichnis: /data

„Datenbank einrichten“: MySQL/MARIADB

Datenbankbenutzer: Benutzer, der soeben in phpmyadmin oder im fertigen Docker erstellt wurde

Datenbankpasswort: Das dazugehörige Passwort

Datenbankname: nextcloud bzw. der erstellte Name der Datenbank

Datenbank-Host: Datenbank-Server-IP:3306

Jetzt auf „Installation abschließen“ klicken. Da dauert dauert jetzt etwas. Nach ca. 1 Minute springt das Anmeldefenster um und es werden noch empfohlene Apps installiert, wenn es gewünscht wird.

Die gesamte Ersteinrichtung dauerte dann gefühlte 3-4 Minuten.

Fertig!

Unter Umständen kann es sein, dass der Nextcloud-Docker jetzt noch einmal neu gestartet werden muss.

Ein Tip!

Das Login im Nextcloud ist das Administrator-Login, welches während der Ersteinrichtung im Browser angelegt wurde.

Sicherheits- & Einrichtungswarnungen in Nextcloud:

Einige Sachen werden hier behoben.

Nginx Proxy Manager, für den Zugriff von Aussen:

Vorarbeit:

Die Portfreigaben im Router umlegen:

  • Port 80 –> 1880 (oder 80)
  • Port 443 –> 18443 (oder 443)

Alle externen Anfragen auf 80 und 443 werden automatisch zu den angegebenen Ports weitergeleitet und landen immer auf dem NginX-Reverse-Proxy, der dann alles Weitere verwaltet.

DynDNS-Dienst einrichten:

Ich empfehle meist DuckDNS. Hierbei reicht eine angelegte Domain. Ich persönlich verwende dyndns(s) und habe diesen Dienst direkt mit meinem Unifi-Controller in meiner USG eingetragen. Somit entfällt ein weiteres Einrichten in meinen VM’s oder Dockern, auf die ich später extern zugreifen möchte. Auch die Fritz!Box gibt die Möglichkeit, einen DynDNS-Dienst direkt zu verwenden. Das ist wichtig, da sonst nach einem IP-Reset, der in Deutschland, bei den meisten Providern, aller 24 Stunden erfolgt, weiterhin Zugriff auf die Domain erfolgen kann.

„NginX Proxy Manager“ in Unraid einrichten:

Ein kleiner Tipp: Man kann den Nginx Proxy Manager auch auf einem separatem Gerät, wie z.B. einem RaspberryPi oder in einer VM als Dockeranwendung legen. Ich verwende in 3 verschiedenen Haushalten einmal einen RaspberryPi 4 mit 4GB Ram, Raspi OS Lite und Docker-Compose, einmal eine VM mit Debian-Server und Docker-Compose und einmal die Variante, wie in diesem Guide vorgestellt. Alle Varianten arbeiten zuverlässig.

Jetzt die Möglichkeit, NPM als Dockeranwendung, direkt in Unraid:

Unter „Apps“ nginx eingeben und den jc21/nginx-proxy-manager auswählen. Diesen dann zum Installieren verwenden.

Ich nehme hierbei nur eine Veränderung vor.

  • Netzwerktyp: Custom: br0 oder br1

Wenn fertig, „Anwenden“ („Apply“) klicken. Dann:

  • Start im Browser: Server-IP:7818
    • Es begrüßt die Startoberfläche
  • Email: admin@example.com
  • Password: changeme

Das war’s auch schon. „NginX Proxy Manager“ ist einsatzbereit.

Jetzt richte ich in NPM Nextcloud ein.

„NginX Proxy Manager“ Weboberfläche:

  • „Host“
    • „Proxy Host“
      • „Add Proxy Host“
        • Details:
          • Domain Names: nextcloud.troubadix.duckdns.org
            • (Eigene Domain verwenden)
          • Scheme: https
            • (447 ist ein HTTPS-Port)
          • Forward Hostname / IP: die Server-IP, worauf sich Nextcloud befindet
          • Forward Port: 447
          • (447 ist mein Nextcloud – Port)
          • Cache Assets: On
          • Websockets Support: On
          • Block Common Exploits: On
          • Access List: nichts ändern
        • SSL:
          • SSL Certificate: „Request a new SSL Certificate“
          • Force SSL: On
          • Http/2 Support: On
          • HSTS Enabled: ON
          • Email Address for Lets‘ Encrypt: Eine gültige Email-Adresse
          • I Agree to the LE Terms of Service: On
        • Advanced: Kann leer bleiben.

Save

Nach ca. 10-20 Sekunden wurde das Zertifikat erstellt und der Dienst Nextcloud ist unter der angewendeten Domain, gesichert, von Außen erreichbar. Allerdings würde jetzt Nextcloud den Zugriff mit folgendem Fehler verweigern:

„Zugriff über eine nicht vertrauenswürdige Domain“

Dafür muss ich noch die Konfigurationsdatei ändern.

Nextcloud-Konfigurationsdatei anpassen

(eigenes Konfigurationsverzeichnis verwenden)

sudo nano /mnt/cache/appdata/nextcloud-final-web/www/nextcloud/config/config.php

Folgendes am Ende, aber vor dem letzten ); einfügen:

'default_phone_region' => 'DE', 
'overwriteprotocol' => 'https',
'trusted_proxies' => 
 array (
   0 => '192.168.1.110:80',
 ),

Die Ip-Adresse unter Trusted Proxies ist die IP-Adresse des „Nginx Proxy Manager“ inkl. Portangabe.

Die Zeile:

'overwrite.cli.url' => 'https://192.168.1.200:447,

ändern in (eigene Domain verwenden):

'overwrite.cli.url' => 'https://nextcloud.troubadix.duckdns.org',

Dann die „Trusted Domains“ erweitern (Domain hinzufügen):

array (
0 => '192.168.1.50:447',
1 => 'nextcloud.troubadix.duckdns.org',
),

Strg-x, y, Enter

Nun vor ‚dbtype‘ => ‚mysql‘, folgendes eintragen (eigene IP-Adresse und eigenen Port verwenden):

'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' =>
array (
  'host' => '192.168.1.200',
  'password' => '',
  'port' => 6378,
),

Strg-x, y, Enter

Am Ende dieser Config steht ein );

Dementsprechend, nach meinem Guide hingehend ist am Ende dann folgendes zu sehen:

 ...ARRAY-Eintrag von oben (trusted Proxies)...   
  ),
);

Bei Trusted Proxies wird die IP-Adresse:Port des Nginx Proxy Managers angegeben. Die IP-Adresse unter Trusted Domains ist die IP des Servers, auf dem NC installiert ist. Da ich NPM auf einem extra Gerät am Laufen habe, sind bei mir 2 verschiedene IP-Adressen angegeben.

Docker Nextcloud neu starten.

Nextcloud kann nun über die Domain geöffnet werden. In meinem Fall ist das:

nextcloud.troubadix.duckdns.org

Es wird automatisch zu http s verbunden und Nextcloud ist erreichbar.

Wurde alles soweit übernommen, sind noch folgende Sicherheitshinweise ersichtlich:

  • Sie haben Ihre E-Mail-Serverkonfiguration noch nicht festgelegt oder überprüft.

E-Mail einrichten:

  • „Administratoreinstellungen“
    • „Persönliche Informationen“
      • E-Mail: E-Mail-Adresse eintragen
    • „Grundeinstellungen“
      • „E-Mail-Server“ einrichten

Bsp. Web.de:

.

Speichern – E-Mail senden.

Nun ist alles i.O.

.

SSL Labs bringt ein A+ zur Ausgabe.

.

Collabora :

Zuerst eine kleine Änderung der default.conf (nur Makulatur):

nano /mnt/cache/appdata/nextcloud-final-web/nginx/site-confs/default.conf

Folgende Zeile suchen:

    server_name _;

Ändern in (eigene Domain verwenden):

    server_name nextcloud.troubadix.duckdns.org;

Strg-x, y, Enter

Nun Collabora-Docker installieren. Hier ist der komplette Guide dazu. Man beachte, dass ich unter Umständen manchmal collabora und manchmal collaboratest verwende. Das muss für diesen Guide auf collaboratest angepasst werden, damit es funktioniert. Hat man im Collabora-Guide alles abgearbeitet, sollte Collabora auch schon funktionstüchtig sein.

.

Tipp: Keinesfalls den Ordner „Templates“ im Dateiverzeichnis löschen, falls dieser angelegt wurde!

Erstelle eine Website wie diese mit WordPress.com
Jetzt starten