• Warum dogado?
Wähle ein Artikel
Nextcloud per Docker auf VPS / vServer installieren
Nextcloud per Docker auf VPS / vServer installieren

0. Überblick

1. Nextcloud per Docker Installieren

1.1 Einleitung

Nextcloud (https://nextcloud.com/) ist eine open source Software welche es ermöglicht eine private Cloud zu betreiben. Der Vorteil von Nextcloud ist, dass es genauso einfach zu bedienen ist wie beispielsweise Dropbox, aber alle Daten auf dem eigenen Server gespeichert werden. So weiß man jederzeit wer Zugriff auf die eigenen Dateien hat und wo diese gespeichert sind.

Nextcloud wird auch in einer kostenpflichtigen Enterprise Version angeboten, welche zusätzlichen Support bietet.

Nextcloud kann über einen internen Store beliebig erweitert werden. So ist es zum Beispiel möglich OnlyOffice zu integrieren, Kalender oder Kontakte zu verwalten oder Videokonferenzen zu betreiben.

In dieser Anleitung werde ich euch zeigen, wie ihr Nextcloud in der kostenlosen Version per Docker schnell bereitstellen könnt.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. Nextcloud werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um Nextcloud neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik. Die Anleitung dazu finden Sie hier: https://www.dogado.de/vps/vserver-anwendungsfaelle/traefik-reverseproxy-auf-vserver-installieren

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von Portainer abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/nextcloud/

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von Portainer beginnen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/nextcloud/docker-compose.yml

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren Nextcloud Container.

version: '3.3'
services:
  nextcloud-db:
    image: mariadb
    container_name: nextcloud-db
    command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF
    restart: unless-stopped
    volumes:
      - /etc/localtime:/etc/localtime:ro
      - /etc/timezone:/etc/timezone:ro
      - /opt/containers/nextcloud/database:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=test #SQL root Passwort eingeben
      - MYSQL_PASSWORD=test #SQL Benutzer Passwort eingeben
      - MYSQL_DATABASE=nextcloud #Datenbank Name
      - MYSQL_USER=nextcloud #SQL Nutzername
      - MYSQL_INITDB_SKIP_TZINFO=1
    networks:
      - default
  nextcloud-redis:
    image: redis:alpine
    container_name: nextcloud-redis
    hostname: nextcloud-redis
    networks:
        - default
    restart: unless-stopped
    command: redis-server --requirepass test # Redis Passwort eingeben
  nextcloud-app:
    image: nextcloud
    container_name: nextcloud-app
    restart: unless-stopped
    depends_on:
      - nextcloud-db
      - nextcloud-redis
    environment:
        REDIS_HOST: nextcloud-redis
        REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben
    volumes:
      - /opt/containers/nextcloud/app:/var/www/html
      - /opt/containers/nextcloud/daten:/var/www/html/data
    labels:
      - "traefik.enable=true"
      - "traefik.http.routers.nextcloud-app.entrypoints=http"
      - "traefik.http.routers.nextcloud-app.rule=Host(`nextcloud.euredomain.de`)"
      - "traefik.http.middlewares.nextcloud-app-https-redirect.redirectscheme.scheme=https"
      - "traefik.http.routers.nextcloud-app.middlewares=nextcloud-app-https-redirect"
      - "traefik.http.routers.nextcloud-app-secure.entrypoints=https"
      - "traefik.http.routers.nextcloud-app-secure.rule=Host(`nextcloud.euredomain.de`)"
      - "traefik.http.routers.nextcloud-app-secure.tls=true"
      - "traefik.http.routers.nextcloud-app-secure.tls.certresolver=http"
      - "traefik.http.routers.nextcloud-app-secure.service=nextcloud-app"
      - "traefik.http.services.nextcloud-app.loadbalancer.server.port=80"
      - "traefik.docker.network=proxy"
      - "traefik.http.routers.nextcloud-app-secure.middlewares=nextcloud-dav,secHeaders@file"
      - "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav"
      - "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/"
    networks:
      - proxy
      - default
networks:
  proxy:
    external: true

Nun müssen wir noch einiges anpassen.

1.3.4 Hostname anpassen

Nun müsst ihr noch den Hostnamen anpassen, über welchen später Nextcloud erreichbar sein soll.

Diese beiden Zeilen müsst ihr anpassen.

- "traefik.http.routers.portainer.rule=Host(`nextcloud.euredomain.de `)"

- "traefik.http.routers.portainer-secure.rule=Host(`nextcloud.euredomain.de`)"

In meinem Fall also:

- "traefik.http.routers.portainer.rule=Host(`nextcloud.testbereich.net`)"

- "traefik.http.routers.portainer-secure.rule=Host(`nextcloud.testbereich.net`)"

Wenn ihr Nextcloud direkt auf eurer „Hauptdomain“ betreiben wollt, dann ändert ihr es folgendermaßen ab:

"traefik.http.routers.wordpress-app.rule=Host(`www.euredomain.de`,`euredomain.de`)"

"traefik.http.routers.wordpress-app-secure.rule=Host(`www.euredomain.de`,`euredomain.de`)"

1.3.5 Passwörter anpassen

Nachdem ihr den Hostnamen angepasst habt, solltet / müsst ihr noch die Passwörter anpassen. Vergebt ihr ein langes, sicheres Kennwort.

Folgende Zeilen müsst ihr ändern:

\- MYSQL\_ROOT\_PASSWORD=test #SQL root Passwort eingeben

\- MYSQL\_PASSWORD=test #SQL Benutzer Passwort eingeben

command: redis-server --requirepass test # Redis Passwort eingeben

REDIS\_HOST\_PASSWORD: test # Redis Passwort von oben wieder eingeben

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

\- MYSQL\_ROOT\_PASSWORD=fjgz4Anfh!r4 #SQL root Passwort eingeben

\- MYSQL\_PASSWORD=uhk678!nfha3X #SQL Benutzer Passwort eingeben

command: redis-server --requirepass ugh5212Gf # Redis Passwort eingeben

REDIS\_HOST\_PASSWORD: ugh5212Gf # Redis Passwort von oben wieder eingeben

Nun sind wir fertig.

2. Nextcloud starten

Gebt nun folgendes ein, um euren Nextcloud Container zu starten:

docker-compose -f /opt/containers/nextcloud/docker-compose.yml up -d

Geht nun mit eurem Webbrowser auf eure Webseite (z.B. nextcloud.euredomain.de). Dort sollte nach einigen Sekunden folgendes zu sehen sein:

Nun legt ihr einen Namen / Passwort für euren Administrator-Account fest.

Anschließend klickt ihr auf „Speicher & Datenbank“.

Nun solltet ihr mehr Einstellungen sehen. Klickt dann auf „MySQL/MariaDB“.

Hier gebt ihr nun eure Daten ein. Alle diese Einstellungen stehen in der Datei von eben. Schaut dort einfach nach, wenn ihr eueren Benutzer / Passwort nicht mehr wisst.

Bei mir wäre das:

  • Datenbank-Benutzer: nextcloud
  • Datenbank-Passwort: uhk678!nfha3X
  • Datenbank-Name: nextcloud
  • Letzte Zeile: nextcloud-db

Nun könnt ihr noch wählen, ob die „empfohlenen Apps“ installiert werden sollen. Ich entferne hier den Haken, da ihr später einfach mit einem Klick die benötigten Apps selbst installieren könnt.

Nun klickt ihr „Installation abschließen“. Nun wird Nextcloud installiert. Nach der Installation solltet ihr folgendes sehen.

Nun seid ihr fertig mit der Installation und könnt Nextcloud nutzen.

3. Optimierung

Klickt nun oben rechts auf den „Kreis“ und wählt „Einstellungen“ aus.

Hier klickt ihr nun auf „Übersicht“.

Jetzt bekommt ihr einige Tipps, was ihr noch „verbessern“ könnt.

3.1 Reverse Proxy anpassen

Wir werden jetzt den Reverse Proxy noch anpassen, damit diese Warnung verschwindet.

Dazu gebt ihr auf eurer Konsole folgendes ein:

docker inspect traefik

Ganz am Schluss der Ausgabe sollte es so aussehen:

Bei mir ist die „IPAdress“ 172.18.0.2 und die „IPPrefixLen“ 16.

Diese beiden Werte merken wir uns nun und passen unsere Nextcloud config.php an.

Dazu öffnet ihr folgende Datei:

nano /opt/containers/nextcloud/app/config/config.php

Fügt nun folgende Zeile hinzu. Passt diese bitte an, falls die Werte von meinem Werten abweichen sollten.

  'trusted_proxies' =>
   array (
     0 => '172.18.0.2/16',
   ),

Nun könnt ihr die Datei beenden und seid hier fertig.

Wenn ihr nun die Prüfung wiederholt sollte die Zeile zum Reverse Proxy verschwunden sein.

3.2 Nextcloud auf HTTPS umstellen

Um Fehler zu vermeiden, konfigurieren wir Nextcloud so um, dass es nur auf die HTTPS Adresse hört.

Dazu öffnet ihr folgende Datei:

nano /opt/containers/nextcloud/app/config/config.php

Hier passt ihr nun folgende Zeilen an.

vorher:

'overwrite.cli.url' => 'http://nextcloud.euredomain.de',

nachher:

'overwrite.cli.url' => 'https://nextcloud.euredomain.de',

Zusätzlich fügt ihr noch folgende Zeilen hinzu:

'overwriteprotocol' => 'https',

'overwritehost' => 'nextcloud.euredomain.de',

Dies sieht dann bei mir so aus.

Nun könnt ihr die Datei speichern und beenden.

Zur Sicherheit, dass alle Änderungen übernommen wurden, starten wir nun mit diesen beiden Befehlen Nextcloud neu.

docker-compose -f /opt/containers/nextcloud/docker-compose.yml down

docker-compose -f /opt/containers/nextcloud/docker-compose.yml up -d

3.3 Telefonregion festlegen

Dazu öffnet ihr wieder folgende Datei:

nano /opt/containers/nextcloud/app/config/config.php

Fügt nun am Ende folgendes hinzu:

'default_phone_region' => 'DE',

Nun könnt ihr die Datei speichern und beenden.

Zur Sicherheit, dass alle Änderungen übernommen wurden, starten wir nun mit diesen beiden Befehlen Nextcloud neu.

docker-compose -f /opt/containers/nextcloud/docker-compose.yml down
docker-compose -f /opt/containers/nextcloud/docker-compose.yml up -d

4. Nextcloud Sicherheits Scanner

Wir können nun noch überprüfen, ob unsere Nextcloud Installation „sicher“ ist. Dazu geht ihr auf folgende Webseite: https://scan.nextcloud.com

Gebt hier nun eure URL ein. Bei mir ist dies „nextcloud.testbereich.net“.

Nach kurzer Zeit erhaltet ihr dann euer Ergebnis. Bei mir sieht es so aus:

5. Nextcloud Apps installieren

Hier zeige ich euch, wie ihr schnell weitere Apps / Erweiterungen in Nextcloud installieren könnt. Dazu klickt ihr wieder oben rechts auf den „Kreis“ und wählt „Apps“ aus.

Nun seht ihr die derzeit aktiven Apps.

Unter „App-Pakete“ findet ihr alle Apps zum entsprechenden Thema.

Nun könnt ihr euch aber auch verschiedene Bereiche auswählen. Hier seht ihr dann immer ein Bild und einen kurzen Text zu der Erweiterung. Die Installation gelingt mit einem Klick auf „Herunterladen und aktivieren“.

Nächster Artikel
Nextcloud mit Elasticsearch installieren
Weitere passende Themen