Nextcloud auf Raspberry Pi 5 mit Docker, NPM und Office Paket leicht gemacht

Von | Februar 13, 2024
nextcloud raspberry pi 5 docker

In diesem Blogbeitrag werde ich den einfachen Installationsprozess von Nextcloud auf Raspberry Pi 5 mithilfe von Docker durchgehen. Wir werden Schritt für Schritt Anleitungen geben, um die Cloud-Speicherlösung auf deinem Raspberry Pi 5 zu konfigurieren. Erfahre, wie du Docker effizient einsetzen kannst, um Nextcloud auf deinem Mini-Computer zu betreiben und so einen eigenen Cloud-Server zu erstellen. Dieser Beitrag ist ideal für alle, die nach einer kostengünstigen und zugänglichen Möglichkeit suchen, ihre Daten sicher in der Cloud zu speichern.

41jfEpS8AaL. SL75

Raspberry Pi 5 4Gb

Price: 74,41 €

44 used & new available from 68,91 €

Dieser Beitrag führt dich durch die Installation von Nextcloud auf Raspberry Pi 5 mit Docker. Wir integrieren Nginx Proxy Manager für sicheren Zugriff, ein Office Paket und binden eine externe SSD Speicher ein.

Der neue Raspberry Pi 5 verfügt nun über schnelleres RAM anstelle des bisher verwendeten DDR4 RAM. Dies ermöglicht eine höhere Taktrate bei geringerem Strombedarf, schon einmal ein Schritt weiter in die Richtung Stromverbrauch.

Raspberry Pi OS Installation

In diesem Guide zeige ich dir, wie du Raspberry Pi OS in wenigen einfachen Schritten mit dem Raspberry Pi Imager auf SD Karte installierst. Das Tool vereinfacht und beschleunigt den Installationsprozess erheblich.

Lade den Raspberry Pi Imager von der offiziellen Website herunter und installiere ihn auf deinem Computer, unabhängig von deinem Betriebssystem (Windows, macOS oder Linux). Lege die SD-Karte in deinen Computer ein und öffne den Raspberry Pi Imager. Wähle zuerst das gewünschte Betriebssystem, in diesem Fall Raspberry Pi OS Lite (64-bit) und Raspberry Pi Modell, aus der Liste. Wähle die SD-Karte aus, achte darauf, die richtige Laufwerk (Karte) zu wählen, um Datenverlust zu vermeiden.

Nextcloud auf Raspberry Pi 5 - Mit Imager OS schreiben
Bevor du Schreibprozess startest, kannst unter Einstellungen noch Sprache, Zeitzone auswählen, SSH Zugang aktivieren und Passwort für Benutzer pi festlegen. SSH Zugang ist für späteren Einrichtung wichtig weil wir keine Raspberry Pi Desktop Version installieren.

Klicke auf „Write“, um den Installationsprozess zu beginnen. Der Imager lädt automatisch die neueste Version von Raspberry Pi OS herunter und schreibt sie auf die SD-Karte. Dieser Vorgang kann einige Minuten dauern.

Eine kabelgebundene Ethernet-Verbindung ist in der Regel stabiler als eine drahtlose WLAN-Verbindung. Dies kann wichtig sein, wenn der Raspberry Pi 5 für bestimmte Aufgaben oder Projekte eine zuverlässige und konstante Netzwerkverbindung benötigt.

Setze die SD-Karte in den entsprechenden Slot des Raspberry Pi 5 ein, verbinde den Raspberry Pi mit dem LAN Kabel und Netzteil, Raspberry Pi sollte automatisch starten. Der Start dauert ein paar Minuten. Öffne ein Terminal auf einem anderen Computer im gleichen Netzwerk und verwende den Befehl ssh pi@IP-Adresse und ersetze IP Adresse durch die tatsächliche IP Adresse deines Raspberry Pi. Linux und Mac OS Anwender benutzen Terminal, Windows Benutzer z.B. Putty als SSH Client.

Nextcloud auf Raspberry Pi 5 installieren

Bevor du startest Nextcloud auf Raspberry Pi 5 zu installieren, musst du zuerst Raspberry Pi OS auf neuste Stand bringen mit Befehl:

sudo apt update && sudo apt upgrade -y

Nach dem Update und Upgrade durchgelaufen ist, kannst du deine SSD Festplatte oder USB Stick als externe Datenspeicher einrichten. Anschließen und dann Befehl lsblk eingeben, jetzt siehst du deine SD Karte und externe SSD Laufwerk.

Nextcloud auf Raspberry Pi 5 - lsblk

Wenn deine externe Speicher schon partitioniert ist kannst mit Befehl sudo mkfs -t ext4 /dev/sdx Partition formatieren oder wenn das nicht der Fall ist zuerst Partition Tabelle erstellen und formatieren, beachte das x in Befehl muss du gemäß Bezeichnung deine Festplatte oder Stick anpassen, z.B. sda1 oder sdb1, etc.

# Nextcloud auf Raspberry 5
sudo parted /dev/sdx "mklabel gpt"
sudo mkfs -t ext4 /dev/sdx

SSD Festplatte oder USB Stick dauerhaft einzubinden

Um eine SSD Festplatte dauerhaft auf deinem Raspberry Pi 5 einzubinden, kannst du die folgenden Schritte befolgen.

  • Finde die UUID (Universally Unique Identifier) der erstellten Partition heraus mit:
# Nextcloud auf Raspberry Pi 5 - SSD mounten per fstab
sudo blkid
Nextcloud auf Raspberry Pi 5 - Die UUID

Jetzt bearbeiten wir Datei fstab mit sudo nano /etc/fstab und fügen wir ganz am Ende ein:

UUID=UUID-von-deine-SSD /mnt/nextcloud ext4  defaults,nofail 0 1

Mit (Strg + O) Speichern und mit (Strg + X) nano Editor verlassen. Erstelle einen Ordner als Mountpunkt für die SSD Festplatte.

sudo mkdir /mnt/nextcloud
sudo systemctl daemon-reload

Aktualisiere die Mountpunkte mit sudo mount -a und mit df -Th Informationen anzeigen über die verfügbaren Speichergeräte.

Deine Nextcloud auf Raspberry Pi 5 SSD sollte jetzt dauerhaft in /mnt/nextcloud eingebunden sein und beim Start des Raspberry Pi 5 automatisch verbunden werden. Bitte beachte, dass Fehler beim Bearbeiten der fstab Datei zu schwerwiegenden Problemen führen können. Daher sei vorsichtig wenn du diese Datei bearbeitest.

Installation von Docker und Docker Compose

Docker ist eine Plattform zur Containerisierung von Anwendungen, die es ermöglicht, Software in leichtgewichtigen, portierbaren Containern zu verpacken und auszuführen. Docker Compose ist ein Tool, das die Definition und Verwaltung von Docker-Anwendungen mit mehreren Containern ermöglicht. Es ermöglicht Anwender, Konfigurationen in einer einzigen Datei zu spezifizieren (docker-compose.yml genannt), die dann verwendet wird, um mehrere Container gleichzeitig zu erstellen und zu starten.

# Nextcloud auf Raspberry Pi 5 - Docker & Docker Compose
sudo apt install docker.io docker-compose -y

Docker und Docker Compose sind installiert und weiter geht mit:

# Nextcloud auf Raspberry Pi 5 - Verzeichnis erstellen
sudo mkdir /home/pi/nextcloud
sudo mkdir /home/pi/nextcloud/app
sudo mkdir /home/pi/nextcloud/html
sudo mkdir /home/pi/nextcloud/config
sudo mkdir /home/pi/nextcloud/mariadb
sudo mkdir /mnt/nextcloud/data
Das Datenverzeichnis (data) für Nextcloud wird normalerweise während der Installation festgelegt. Standardmäßig befindet sich das Datenverzeichnis in einem Unterverzeichnis innerhalb des Nextcloud-Installationsverzeichnisses.

Jetzt machen wir noch die Rechte auf SSD (data Ordner) passend für User www-data mit sudo chown -R www-data:www-data /mnt/nextcloud/data. Das Datenverzeichnis kann auch außerhalb des Nextcloud-Installationsverzeichnisses liegen und an einem von dir festgelegten Ort platziert sein.

YML Datei erstellen und Nextcloud installieren

Wenn du eine docker-compose.yml Datei für Nextcloud im Verzeichnis /home/pi/nextcloud auf deinem Raspberry Pi 5 erstellen möchtest, kannst du einen Texteditor deiner Wahl verwenden. Hier ist ein einfaches Beispiel mit nano, einem einfachen Texteditor:

# Nextcloud auf Raspberry Pi 5 - Docker-Compose.yml
cd /home/pi/nextcloud
sudo nano docker-compose.yml
# danach einfügen
version: '2'
services:
  mariadb:
    image: mariadb
    restart: always
    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW --innodb-file-per-table=1 --skip-innodb-read-only-compressed
    ports:
      - 8022:3306
    volumes:
      - /root/nextcloud/mariadb:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=Passwort
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=root
  nextcloud:
    image: nextcloud
    restart: always
    ports:
      - 8080:80
    links:
      - mariadb:mysql
    volumes:
      - /home/pi/nextcloud/html:/var/www/html 
      - /home/pi/nextcloud/apps:/var/www/html/custom_apps 
      - /home/pi/nextcloud/config:/var/www/html/config 
      - /mnt/nextcloud/data:/var/www/html/data 
    environment:
      - MYSQL_PASSWORD=Passwort
      - MYSQL_DATABASE=nextcloud
      - MYSQL_USER=root
      - MYSQL_HOST=mariadb
Nextcloud auf Raspberry Pi 5 mit Docker

Anpassung von yml Datei ist fertig, Nextcloud und Datenbank Installation kannst dann mit sudo docker-compose up -d starten.

Nextcloud auf Raspberry Pi 5, Weboberfläche wählen und Installation abschließen.

Nach ein paar Minuten sind mit Docker MariaDB und Nextcloud installiert, jetzt mit http://Raspi-IP:8080 Nextcloud-Weboberfläche wählen und Nextcloud-Installation abschließen.

Nginx Proxy Manager Docker Installation

Nginx Proxy Manager (NPM) ist eine webbasierte Oberfläche für die Verwaltung von Nginx als Reverse-Proxy-Server. Es ermöglicht Benutzern, einfach und effizient verschiedene Aspekte eines Nginx-Reverse-Proxys zu konfigurieren, einschließlich Routen, SSL/TLS-Zertifikaten, Lastausgleich, Sicherheitseinstellungen und mehr.

Nextcloud auf Raspberry Pi 5 - Nginx Proxy Manager

Einige der Funktionen von Nginx Proxy Manager umfassen:

  1. Benutzerfreundliche Oberfläche: NPM bietet eine intuitive webbasierte Oberfläche, über die Benutzer Proxy-Routen erstellen, konfigurieren und verwalten können, ohne direkt in die Konfigurationsdateien von Nginx eingreifen zu müssen.
  2. SSL/TLS-Zertifikatverwaltung: Es ermöglicht die einfache Einrichtung und Verwaltung von SSL/TLS-Zertifikaten (Letsencrypt) für die verschlüsselte Kommunikation zwischen dem Reverse-Proxy und den Clients.
  3. Lastausgleich: NPM unterstützt die Konfiguration von Lastausgleichsmechanismen, mit denen eingehende Anfragen auf verschiedene Backend-Server verteilt werden können, um die Last zu verteilen und die Leistung zu optimieren.
  4. Sicherheitseinstellungen: Es bietet Funktionen wie IP-Whitelisting, Rate-Limiting und Web Application Firewall (WAF)-Funktionen, um die Sicherheit des Reverse-Proxys und der dahinterliegenden Dienste zu erhöhen.
  5. Protokollierung und Überwachung: NPM bietet Protokollierungs- und Überwachungsfunktionen, mit denen Administratoren die Leistung und Verfügbarkeit des Reverse-Proxys überwachen und bei Bedarf Probleme diagnostizieren können.

Eines der wichtigsten Argumente für NPM Einsatz ist der Sicherheitsaspekt. Der Proxy agiert als einzig sichtbare Instanz nach außen. Alle dahinterliegenden Dienste bleiben für Angreifer unsichtbar. Mit Reverse-Proxy ist es schließlich auch möglich, auf der gleichen Maschine mehrere Anwendungen oder Webseiten laufen.

Ports im Router freigeben: So wird es gemacht

Grundsätzlich funktioniert die Freigabe von Ports immer ähnlich. Du musst die Ports 80 und 443 über eine Fritz!Box freigeben, gehst folgendermaßen vor:

  1. Öffne einen Webbrowser und gehe zur Benutzeroberfläche deiner Fritzbox. Die Standardadresse ist normalerweise http://fritz.box oder http://192.168.178.1. Melde dich mit deinen Anmeldedaten an.
  2. Suche nach den Einstellungen für Portfreigaben oder Portweiterleitung. Diese befinden sich normalerweise unter „Internet“ oder „Freigaben“ in den Einstellungen deiner Fritzbox.
  3. Füge einen neuen Eintrag hinzu, um die Ports 80 und 443 freizugeben. Wähle dazu den Dienst „HTTP“ für Port 80 und „HTTPS“ für Port 443 aus. Trage dann die interne IP-Adresse des Zielservers ein (dort wo schon läuft Nextcloud auf Raspberry Pi 5), auf dem deine Dienste gehostet werden.
  4. Speichere die Einstellungen und übernehme sie. Deine Fritzbox sollte nun die Ports 80 und 443 an den entsprechenden Server weiterleiten.
Nextcloud auf Raspberry Pi 5 - Fritzbox Portfreigabe
Feste IP Adresse für Raspberry Pi zuweisen: Eine statische IP-Adresse gewährleistet, dass dein Raspberry Pi 5 immer die gleiche IP-Adresse hat und nicht jedes Mal eine neue zugewiesen bekommt, wenn es sich im Netzwerk anmeldet. Dadurch bleibt die Portweiterleitung auf deine Dienste stabil, da sie auf die festgelegte IP-Adresse verweisen.

Nginx Proxy Manager Docker Installation

Die Installation von NPM (Nginx Proxy Manager) ist sehr einfach und wird schnell durchgesetzt. Zuerst erstellst du ein Verzeichnis mit sudo mkdir /home/pi/npm, danach wird in cd /home/pi/npm Ordner betreten und mit nano Editor docker-compose.yml erstellt:

# Nextcloud auf Raspberry Pi 5 - NPM Compose
version: '3.8'
services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      - '80:80'
      - '81:81'
      - '443:443'
    volumes:
      - /home/pi/npm/data:/data
      - /home/pi/npm/letsencrypt:/etc/letsencrypt

Mit schon vertrauten Befehl sudo docker-compose up -d Container NPM erstellen, braucht etwas Zeit und danach mit docker ps kontrollieren ob NPM läuft. Benutzeroberfläche erreichst du mit http://Raspi-IP:81 inklusive Port 81, Benutzername: admin@example.com und Passwort: changeme, nachher die Benutzer und Passwort sofort ändern. Konfiguration von Weiterleitungen ist sehr einfach und kannst alles hier bzw. hier nachlesen.

Nextcloud auf Raspberry Pi 5 – Collabora Office Installation

Collabora Office ist eine Suite von Office-Anwendungen, die auf dem Open-Source-Office-Projekt LibreOffice basiert. Es bietet eine umfassende Palette von Office-Tools für Textverarbeitung, Tabellenkalkulation, Präsentationen und mehr. Collabora Office kann sowohl als eigenständige Desktop-Anwendung als auch in Cloud-Umgebungen wie Nextcloud verwendet werden. In der Cloud-Umgebung ermöglicht es die gemeinsame Bearbeitung von Dokumenten in Echtzeit, was die Zusammenarbeit zwischen Teammitgliedern erleichtert.

Um Nextcloud mit Collabora Office zu integrieren, kannst du Docker verwenden, beide Anwendungen werden in separaten Containern ausgeführt. Das Spiel ist gleich wie beim NPM, zuerst erstellst du mit sudo mkdir /home/pi/collabora Verzeichnis und danach mit cd /home/pi/collabora Verzeichnis betreten.

Hier kannst wieder docker-compose.yml mit sudo nano docker-compose.yml erstellen:

## Nextcloud auf Raspberry Pi 5 - Collabora Office
version: '3'
services:
  collabora:
    image: collabora/code
    restart: always
    ports:
      - "9980:9980"
    environment:
      - domain=cloud.example.com
      - username=admin
      - password=example

Die fett markierten Positionen musst du noch anpassen, DynDNS Adressen für deine Nextcloud und Collabora Office kannst z.B. bei DuckDNS kostenlos beantragen. Jetzt starte Befehl sudo docker-compose up -d und Collabora Office Container wird installiert. Danach prüfe noch mit docker ps ob Container läuft, bzw. kannst auch mit Browser die Adresse https://Raspi-IP:9980 abrufen, als Antwort bekommst du eine weiße Seite mit OK Bestätigung.

Collabora Office kannst auch mit nur ein Befehl installieren:

## Nextcloud auf Raspberry Pi 5 - Collabora Office 
docker run -t -d -p 9980:9980 -e "domain=cloud\\.domain\\.com" --name=COLLABORAOFFICE --restart always --cap-add MKNOD collabora/code

Die fett markierte Teile musst du auf deine DynDNS Adresse anpassen, die Schrägstriche müssen bleiben (z.B. nextcloud\\.meine-seite\\.de)

Zusammenspiel von NPM, Nextcloud und Collabora Office

Am Ende musst du die drei Komponenten zusammenarbeiten lassen:

  • Du muss jetzt gemäß Nginx Proxy Manager Anleitung: Proxy für Nextcloud erstellen, Domainname eintragen, interne IP-Adresse inklusive Port, dann SSL Zertifikat und was sehr wichtig ist, unter „Advanced“ eintragen:
# Nextcloud auf Raspberry Pi 5 - NPM Advanced
location /.well-known/carddav {
    return 301 $scheme://$host/remote.php/dav;
}

location /.well-known/caldav {
    return 301 $scheme://$host/remote.php/dav;
}

location /.well-known/webfinger {
    return 301 $scheme://$host/index.php/.well-known/webfinger;
}

location /.well-known/nodeinfo {
    return 301 $scheme://$host/index.php/.well-known/nodeinfo;
}
  • Für Collabora Office musst du das gleiche Spiel machen, natürlich mit Daten für Collabora Container und unter „Advanced“ noch eintragen:
# Nextcloud auf Raspberry Pi 5 - Collabora Office
# static files
location ^~ /loleaflet {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}
# WOPI discovery URL
location ^~ /hosting/discovery {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}
# main websocket
location ~ ^/lool/(.*)/ws$ {
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
  proxy_read_timeout 36000s;
}
# download, presentation and image upload
location ~ ^/lool {
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
}
# Admin Console websocket
location ^~ /lool/adminws {
  proxy_set_header Upgrade $http_upgrade;
  proxy_set_header Connection "upgrade";
  proxy_http_version 1.1;
  proxy_pass $forward_scheme://$server:$port;
  proxy_set_header Host $http_host;
  proxy_read_timeout 36000s;
}
Nextcloud auf Raspberry Pi 5 - Adresse Collabora Office Server

Unter Nextcloud sind auch ein paar Einstellungen zu machen. Zuerst unter Apps „Nextcloud Office“ suchen und installieren, danach unter Verwaltungseinstellungen >> Verwaltung auf Office klicken und Collabora Office Server-Adresse eintragen.

Danach bisschen nach unten scrollen und unter „Allow list for WOPI requests“ die eigene Heimnetzwerk Adresse eintragen: z.B. 192.168.x.0/24. Soweit ist alles fertig und du kannst dein Raspberry Pi 5 als Cloud bzw. Office Server benutzen.

Insgesamt bietet das Zusammenspiel von NPM, Collabora Office und Nextcloud eine robuste Lösung für die Zusammenarbeit und Dokumentenverwaltung in der Cloud. Es ermöglicht Teams, effizient zusammenzuarbeiten, Dokumente sicher zu speichern und zu teilen, sowie produktive Office-Anwendungen zu nutzen, alles innerhalb einer integrierten und skalierbaren Umgebung.

(Visited 573 times, 5 visits today)

Schreiben Sie einen Kommentar

Ihre E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert