,

Nextcloud per Docker auf VPS installieren

Lesedauer 6 Minuten

Inhaltsverzeichnis

0. Überblick

1. Nextcloud per Docker Installieren

1.1 Einleitung

Nextcloud 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 dir zeigen, wie du Nextcloud in der kostenlosen Version per Docker schnell bereitstellen kannst.

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. Du kannst 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 findest du hier: https://www.easyname.at/blog/vps/anwendungen/traefik-reverseproxy-auf-vps-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/{database,app,daten} 

Du kannst hier auch ein anderes Verzeichnis verwenden. Musst 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 öffnest du folgende Datei:

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

Nun kopierst du 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: 

        TRUSTED_PROXIES: 172.18.0.2/16 

        OVERWRITEPROTOCOL: https 

        OVERWRITECLIURL: https://nextcloud.euredomain.de 

        OVERWRITEHOST: nextcloud.euredomain.de 

        REDIS_HOST: nextcloud-redis 

        REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben 

    volumes: 

      - ./app:/var/www/html 

      - ./daten:/var/www/html/data 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.nextcloud.entrypoints=http" 

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

      - "traefik.http.middlewares.nextcloud-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.nextcloud.middlewares=nextcloud-https-redirect" 

      - "traefik.http.routers.nextcloud-secure.entrypoints=https" 

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

      - "traefik.http.routers.nextcloud-secure.tls=true" 

      - "traefik.http.routers.nextcloud-secure.tls.certresolver=http" 

      - "traefik.http.routers.nextcloud-secure.service=nextcloud" 

      - "traefik.http.services.nextcloud.loadbalancer.server.port=80" 

      - "traefik.docker.network=proxy" 

      - "traefik.http.routers.nextcloud.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.3 Hostname anpassen

Nun musst du noch den Hostnamen anpassen, über welchen später Nextcloud erreichbar sein soll.

Diese beiden Zeilen musst du anpassen.

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

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

In meinem Fall also:

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

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

Wenn du Nextcloud direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du es folgendermaßen ab:

    – „traefik.http.routers. nextcloud-secure.rule=Host(`nextcloud.euredomain.de`)“ 

In meinem Fall also: 

    – „traefik.http.routers. nextcloud.rule=Host(`nextcloud.testbereich.net`)“ 

    – „traefik.http.routers. nextcloud-secure.rule=Host(`nextcloud.testbereich.net`)“ 

Wenn du Nextcloud direkt auf deiner „Hauptdomain“ betreiben willst, dann änderst du es folgendermaßen ab: 

1.3.4 Passwörter anpassen

Nachdem du den Hostnamen angepasst hast, sollst/ musst du noch die Passwörter anpassen. Vergib ein langes, sicheres Kennwort.

Folgende Zeilen musst du ä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 

1.3.5 Trusted Proxy festlegen

Nun müssen wir noch eine Einstellung ändern, damit Traefik als Reverse Proxy korrekt funktioniert.  

Dazu gibst du auf deiner 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. 

Passe nun entsprechend diese Zeile bei dir in der Docker Compose Datei an: 

TRUSTED_PROXIES: 172.18.0.2/16 

1.3.6 HTTPS Einstellungen

Um Fehler zu vermeiden, konfigurieren wir Nextcloud so um, dass es nur auf die HTTPS Adresse hört. Dazu passt du in der Docker Compose Datei folgende beiden Zeilen an: 

        OVERWRITECLIURL: https://nextcloud.euredomain.de 

        OVERWRITEHOST: nextcloud.euredomain.de 

Bei mir also: 

        OVERWRITECLIURL: https://nextcloud.testbereich.net 

        OVERWRITEHOST: nextcloud.testbereich.net 

Nun sind wir fertig.  

2. Nextcloud starten

Gib nun folgendes ein, um deinen Nextcloud Container zu starten:

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

Gehe nun mit deinem Webbrowser auf deine Webseite (z.B. nextcloud.euredomain.at). Dort sollte nach einigen Sekunden folgendes zu sehen sein:

Nextcloud starten - Loginseite

Nun legst du einen Namen / Passwort für deinen Administrator-Account fest.

Administratordaten festlegen für Nextcloud

Anschließend klickst du auf „Speicher & Datenbank“.

Speicher & Datenbank

Nun solltest du mehr Einstellungen sehen. Klick dann auf „MySQL/MariaDB“.

Datenbankeinstellung(MySQL/MariaDB) für Nextcloud

Hier gibst du nun deine Daten ein. Alle diese Einstellungen stehen in der Datei von eben. Schau dort einfach nach, wenn du deinen Benutzer / Passwort nicht mehr weißt.

Bei mir wäre das:

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

Nun kannst du noch wählen, ob die „empfohlenen Apps“ installiert werden sollen. Ich klicke hier auf „Abbrechen“. Die Apps kann man alle später selbst noch installieren. 

Nun solltest du folgendes sehen:

Nun bist du fertig mit der Installation und kannst Nextcloud nutzen.

3. Optimierung

Klicke nun oben rechts auf den „Kreis“ und wähle „Einstellungen“ aus.

Hier klickst du nun auf „Übersicht“.

Jetzt bekommst du einige Tipps, was du noch „verbessern“ kannst.

3.1 Telefonregion festlegen

Dazu öffnest du wieder folgende Datei: 

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

Füge nun am Ende folgendes hinzu: 

‚default_phone_region‘ => ‚DE‘, 

Nun kannst du 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 gibst du auf folgende Webseite: https://scan.nextcloud.com

Gib hier nun deine URL ein. Bei mir ist dies „nextcloud.testbereich.net“.

Nach kurzer Zeit erhältst du dann dein Ergebnis. Bei mir sieht es so aus:

5. Nextcloud Apps installieren

Hier zeige ich dir, wie du schnell weitere Apps / Erweiterungen in Nextcloud installieren kannst. Dazu klickst du wieder oben rechts auf den „Kreis“ und wählst „Apps“ aus.

Nun siehst du die derzeit aktiven Apps.

Unter „App-Pakete“ findest du alle Apps zum entsprechenden Thema.

Nun kannst du dir aber auch verschiedene Bereiche auswählen. Hier siehst du dann immer ein Bild und einen kurzen Text zu der Erweiterung. Die Installation gelingt mit einem Klick auf „Herunterladen und aktivieren“.

easyname ist ein erfolgreicher und bekannter österreichischer Anbieter von Cloud-Services, Domains sowie Webhosting bis hin zur Server-Infrastruktur und gehört seit 2020 zur dogado group.
Das Unternehmen ist seit 2006 in Österreich erfolgreich am Markt und inzwischen auch in vielen anderen Ländern weltweit tätig. Sowohl das Team als auch die gehosteten Daten befinden sich in Österreich.

easyname liegt die Datensicherheit besonders am Herzen und stellt daher zu jedem Hosting-Paket auch kostenlose SSL-Zertifikate zur Verfügung. Mit intuitiven Tools zur Erstellung von Websites und Webshops und mit Easy Install Apps wie WordPress, Joomla oder PrestaShop können alle easyname-Kunden schnell in die Online-Welt einsteigen.