So installierst du Nextcloud AIO unter Ubuntu 22.04
Nextcloud AIO steht für Nextcloud All in One. Es ist ein Docker-basierter Installer, der die Bereitstellung von Nextcloud zu einem Kinderspiel macht. Sie wird mit den folgenden Funktionen und Anwendungen ausgeliefert:
- Nextcloud
- Nextcloud Office – es basiert auf der Collabora Online Development Edition (CODE), die wiederum auf LibreOffice basiert. Mit ihr kannst du Dokumente in Echtzeit mit mehreren Editoren bearbeiten. Es unterstützt alle gängigen Office-Dateiformate.
- Nextcloud Talk – das ist ein Audio-/Video- und Chat-Kommunikationsdienst. Er unterstützt verschlüsselte Anrufe, Gruppenanrufe, Bildschirmfreigabe, WebRTC für plattformübergreifende Unterstützung und das Hosten von Webinaren.
- Imaginary – für anspruchsvolle Bildbearbeitung und -konvertierung.
- ClamAV – für den Schutz vor Viren und Malware.
- Borgbackup – bietet eine eingebaute Sicherungs- und Wiederherstellungsfunktion.
- ElasticSearch – für die Unterstützung der Volltextsuche in Dokumenten und Dateien.
Voraussetzungen
- Ein Server mit Ubuntu 22.04 mit mindestens 1 GB RAM und 1 vCPU. Wenn du ClamAV verwenden möchtest, benötigst du zusätzlich 1 GB RAM. Für ElasticSearch (Volltextsuche) und Nextcloud Talk brauchst du ebenfalls 1 GB RAM. Wenn alle Addons aktiviert sind, brauchst du mindestens 4 GB RAM und 2vCPU.
- Einen vollständig qualifizierten Domainnamen (FQDN), der auf deinen Server verweist. Für unsere Zwecke verwenden wir
nextcloud.example.com
als Domänennamen. - Ein Nicht-Root-Benutzer mit sudo-Rechten.
- Die Unkomplizierte Firewall (UFW) ist aktiviert und läuft.
- Stelle sicher, dass alles auf dem neuesten Stand ist.
$ sudo apt update && sudo apt upgrade
- Installiere grundlegende Hilfspakete. Einige von ihnen sind vielleicht schon installiert.
$ sudo apt install wget curl nano unzip -y
Schritt 1 – Firewall konfigurieren
Bevor du die Pakete installierst, musst du die Firewall so konfigurieren, dass sie HTTP- und HTTPS-Verbindungen zulässt.
Überprüfe den Status der Firewall.
$ sudo ufw status
Du solltest etwas wie das Folgende sehen.
Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6)
Erlaube HTTP- und HTTPs-Ports für die aktuelle Nextcloud-Instanz.
$ sudo ufw allow http $ sudo ufw allow https
Öffne Port 3478 für Nextcloud Talk. Du kannst ihn auslassen, wenn du ihn nicht benutzen wirst.
$ sudo ufw allow 3478
Öffne die Ports 8080 und 8443 für die Bereitstellung von HTTP- und HTTPS-Unterstützung für die AIO-Schnittstelle.
$ sudo ufw allow 8080/tcp $ sudo ufw allow 8443/tcp
Überprüfe den Status noch einmal zur Bestätigung.
$ sudo ufw status Status: active To Action From -- ------ ---- OpenSSH ALLOW Anywhere 80/tcp ALLOW Anywhere 443 ALLOW Anywhere 8080/tcp ALLOW Anywhere 8443/tcp ALLOW Anywhere 3478 ALLOW Anywhere OpenSSH (v6) ALLOW Anywhere (v6) 80/tcp (v6) ALLOW Anywhere (v6) 443 (v6) ALLOW Anywhere (v6) 8080/tcp (v6) ALLOW Anywhere (v6) 8443/tcp (v6) ALLOW Anywhere (v6) 3478 (v6) ALLOW Anywhere (v6)
Schritt 2 – Hostname und Zeitzone konfigurieren
Bevor wir fortfahren, müssen wir den richtigen Hostnamen für das System festlegen.
Öffne die Hostnamen-Datei zur Bearbeitung.
$ sudo nano /etc/hostname
Ändere den Wert in deinen vollqualifizierten Domänennamen.
nextcloud.example.com
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Öffne die Host-Datei zur Bearbeitung.
$ sudo nano /etc/hosts
Füge die folgende Zeile nach der Zeile 127.0.0.1 localhost
ein. Ersetze alle vorhandenen Zeilen mit der IP 127.0.1.1 ubuntu-master
, falls vorhanden, durch die folgende.
<YourServerIP> nextcloud.example.com nextcloud
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Überprüfe die aktuelle Zeitzone des Servers.
$ timedatectl Local time: Sun 2022-10-09 13:21:01 UTC Universal time: Sun 2022-10-09 13:21:01 UTC RTC time: Sun 2022-10-09 13:21:01 Time zone: Etc/UTC (UTC, +0000) System clock synchronized: no NTP service: n/a RTC in local TZ: no
Du kannst die Liste der verfügbaren Zeitzonen mit dem folgenden Befehl anzeigen.
$ timedatectl list-timezones ... Africa/Abidjan Africa/Accra Africa/Addis_Ababa Africa/Algiers Africa/Asmara Africa/Asmera Africa/Bamako Africa/Bangui ...
Wenn sie nicht deinen Wünschen entspricht, ändere sie mit dem folgenden Befehl.
$ sudo timedatectl set-timezone America/Chicago
Starte den Server neu.
$ sudo reboot
Du kannst dich jetzt wie folgt am Server anmelden.
$ ssh username@nextcloud.example.com
Schritt 3 – Docker installieren
Füge den offiziellen GPG-Schlüssel von Docker hinzu.
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker.gpg
Führe den folgenden Befehl aus, um das Docker-Repository hinzuzufügen.
$ echo \ "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Aktualisiere das System, um das Docker-Repository aufzunehmen.
$ sudo apt update
Installiere Docker und das Docker Compose Plugin.
$ sudo apt-get install docker-ce docker-ce-cli containerd.io docker-compose-plugin
In diesem Lehrgang wird das Docker Compose v2 Plugin anstelle des älteren Legacy Binary verwendet. Daher hat sich der Befehl zum Ausführen des Plugins von docker-compose
auf docker compose
geändert, was sich hier widerspiegelt.
Docker läuft mit erhöhten Rechten, daher musst du sudo
häufig verwenden, um Befehle auszuführen. Die bessere Option ist, dein Linux-Benutzerkonto zur Benutzergruppe docker
hinzuzufügen.
$ sudo usermod -aG docker ${USER}
Die Variable ${USER}
nimmt das aktuell eingeloggte Systemkonto auf. Wenn du nicht mit dem Benutzer eingeloggt bist, dem du Privilegien geben willst, ersetze ${USER}
durch den Benutzernamen.
Um die neue Gruppenmitgliedschaft zu beantragen, melde dich vom Server ab und wieder an oder verwende den folgenden Befehl. Du wirst aufgefordert, das Passwort des Benutzers einzugeben.
$ su - ${USER}
Schritt 4 – Docker Compose-Datei konfigurieren
Erstelle ein Verzeichnis für die Docker-Kompositionsdatei.
$ mkdir ~/nextcloud-aio
Wechsle in das Verzeichnis.
$ cd ~/nextcloud-aio
Erstelle und öffne die Docker Compose Datei zur Bearbeitung.
$ nano docker-compose.yml
Füge den folgenden Code in die Datei ein.
version: "3.8" volumes: nextcloud_aio_mastercontainer: name: nextcloud_aio_mastercontainer # This line is not allowed to be changed services: nextcloud: image: nextcloud/all-in-one:latest # Must be changed to 'nextcloud/all-in-one:latest-arm64' when used with an arm64 CPU restart: always container_name: nextcloud-aio-mastercontainer volumes: - nextcloud_aio_mastercontainer:/mnt/docker-aio-config # This line is not allowed to be changed - /var/run/docker.sock:/var/run/docker.sock:ro ports: - 80:80 - 8080:8080 - 8443:8443
Speichere die Datei, indem du Strg + X drückst und Y eingibst, wenn du dazu aufgefordert wirst.
Schritt 5 – Nextcloud AIO ausführen
Erstelle und starte den Docker-Container.
$ docker compose up -d
Überprüfe den Status des Containers.
$ docker compose ps
Du wirst die folgende Ausgabe sehen.
NAME COMMAND SERVICE STATUS PORTS nextcloud-aio-mastercontainer "start.sh /usr/bin/s…" nextcloud running (healthy) 0.0.0.0:80->80/tcp, :::80->80/tcp, 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp, 0.0.0.0:8443->8443/tcp, :::8443->8443/tcp
Du kannst auch den Befehl docker ps
verwenden, um einen genaueren Status zu erhalten. Um die Container-Logs zu überprüfen, verwende den Befehl docker logs <container name>
.
Schritt 6 – Zugriff auf Nextcloud AIO
Öffne die URL https://nextcloud.example.com:8443
und du erhältst den folgenden Bildschirm.
Kopiere das auf dem Bildschirm angezeigte Passwort und klicke auf die Schaltfläche Nextcloud AIO Login öffnen.
Gib das Passwort ein und klicke auf die Schaltfläche Anmelden, um fortzufahren.
Gib deinen Domainnamen nextcloud.example.com
unter dem Abschnitt Neue AIO-Instanz ein und klicke auf die Schaltfläche Absenden, um die Installation von Nextcloud zu starten.
Du wirst auf die folgende Seite weitergeleitet.
Hier kannst du die Serverzeitzone ändern und eine neue Nextcloud-Instanz starten. Wähle die Add-ons aus, die du installieren möchtest, und klicke auf die Schaltfläche Änderungen speichern, um die Optionen zu speichern.
Klicke auf die Start-Container, um Nextcloud und seine Addon-Container zu starten. Dieser Vorgang generiert automatisch ein SSL-Zertifikat mit Let’s Encrypt für die von dir gewählte Domain und startet den Apache-Server-Container, um die Nextcloud-Instanz der Öffentlichkeit zugänglich zu machen.
Dieser Vorgang kann einige Minuten dauern, je nachdem, wie viele Addons du installierst. Nach einer Weile kannst du den Fortschritt der Container auf der Seite sehen.
Das Gelb vor den Containern kann bedeuten, dass sie gestartet werden oder dass sie ungesund sind. Drücke auf die Schaltfläche Neu laden, um es erneut zu überprüfen. Sobald alle Container erfolgreich gestartet sind, erhältst du den Benutzernamen und das Passwort für deine Nextcloud-Instanz.
Klicke auf die Schaltfläche Nextcloud öffnen, um deine Nextcloud-Installation zu starten. Du kannst sie auch direkt über die URL https://nextcloud.example.com
aufrufen. Du wirst zum folgenden Anmeldebildschirm weitergeleitet.
Gib deinen Benutzernamen admin
und dein Passwort ein, die du auf der vorherigen Seite erhalten hast, und klicke auf Anmelden, um das Nextcloud-Dashboard zu starten.
Von nun an kannst du Nextcloud nutzen.
Schritt 7 – Nextcloud sichern und wiederherstellen
Bevor du ein Backup erstellst, musst du den Apache-Container stoppen, da er die Nextcloud AIO-Instanz blockiert. Dies ist notwendig, um die AIO-Schnittstelle zu bedienen. Führe den folgenden Befehl aus, um den Apache-Container zu stoppen.
$ docker stop nextcloud-aio-apache
Melde dich bei der AIO-Oberfläche an, indem du https://nextcloud.example.com:8443
aufrufst.
Gib das Verzeichnis für die Backups ein und klicke auf die Schaltfläche Senden, um ein Backup zu erstellen. Du erhältst den folgenden Bildschirm.
Nextcloud AIO erstellt ein verschlüsseltes Backup und teilt dir ein Passwort für dieses Backup mit. Das gleiche Passwort wird für alle Backups im Ordner verwendet. Das Passwort wird für die Wiederherstellung der Instanz benötigt. Klicke auf Backup erstellen, um mit der Erstellung des Backups zu beginnen. Du wirst aufgefordert, den Vorgang zu bestätigen. Drücke auf Ja, um den Vorgang zu starten. Dadurch werden alle laufenden Container angehalten und der Backup-Container gestartet.
Klicke auf die Schaltfläche Neu laden, um die Seite zu aktualisieren. Klicke auf den kleinen Pfeil, um alle Optionen für die Sicherung und Wiederherstellung anzuzeigen.
Hier kannst du ein bestehendes Backup wiederherstellen, weitere zu sichernde Verzeichnisse hinzufügen und eine Zeit für den Cron-Job festlegen, der geplante Backups und Updates durchführt.
Nextcloud wiederherstellen
Bei einer Neuinstallation kannst du ein bestehendes Backup wiederherstellen.
Wenn das Backup im Verzeichnis /mnt/backup/borg
gespeichert ist, gib den Backup-Pfad als /mnt/backup
an. Das eigentliche Backup sollte sich immer in einem Unterverzeichnis befinden. Gib den Pfad und das Passwort deines Backups ein.
Klicke auf die Schaltfläche Senden, um mit der Wiederherstellung fortzufahren.
Klicke auf die Schaltfläche Pfad und Passwort testen, um den Pfad und das Passwort der Sicherung zu überprüfen, bevor du mit der Wiederherstellung beginnst.
Hier kannst du die Integrität der Sicherungsdatei überprüfen. Wähle die richtige Sicherungsdatei aus dem Dropdown-Menü und klicke auf die Schaltfläche Ausgewählte Sicherungsdatei wiederherstellen, um den Vorgang zu starten.
Auf der nächsten Seite kannst du sehen, wie der Backup-Container läuft. Warte einige Zeit und klicke auf die Schaltfläche Neu laden, um zu sehen, ob der Prozess abgeschlossen ist. Du erhältst den folgenden Bildschirm, der die erfolgreiche Wiederherstellung bestätigt.
Backup für Remote-Uploads vorbereiten
Wenn du Backups mit einem entfernten Standort synchronisieren oder hochladen möchtest, musst du das Backup-Archiv vorbereiten.
Installiere das BorgBackup Tool.
$ sudo apt install borgbackup
Hänge die Backup-Archive in den Ordner /tmp/borg
.
$ sudo mkdir -p /tmp/borg && sudo borg mount "/mnt/backup/borg" /tmp/borg
Du wirst nach dem Passwort für das Backup gefragt.
Enter passphrase for key /mnt/backup/borg:
Gib das Passwort ein, um das Archiv zu mounten. Überprüfe die gemounteten Archive in dem Ordner.
$ sudo ls /tmp/borg -al total 4 drwxr-xr-x 1 root root 0 Oct 10 19:13 . drwxrwxrwt 13 root root 4096 Oct 10 19:13 .. drwxr-xr-x 1 root root 0 Oct 9 23:15 20221010_041554-nextcloud-aio
Du kannst nun die Datei 20221010_041554-nextcloud-aio
an einen entfernten Ort kopieren oder synchronisieren.
Hänge die Archive wieder aus.
$ sudo umount /tmp/borg
Wenn du ein bestehendes Backup-Archiv löschen willst, kannst du das mit dem folgenden Befehl tun.
$ sudo borg delete --stats --progress "/mnt/backup/borg::20221010_041554-nextcloud-aio"
Schritt 8 – Nextcloud AIO / Nextcloud aktualisieren
Nextcloud AIO führt einen Cronjob aus, um täglich nach Updates für Nextcloud AIO und alle anderen Container zu suchen.
Nextcloud-Container aktualisieren
Die Nextcloud AIO-Oberfläche zeigt alle Aktualisierungen der Container auf der Seite an. Um einen der Container zu aktualisieren, drückst du auf die Schaltfläche Container stoppen, um alle Container anzuhalten und sie dann wieder zu starten, um die Aktualisierung durchzuführen.
Stelle sicher, dass du ein Backup der Daten machst, bevor du die Container startest.
Nextcloud AIO Mastercontainer aktualisieren
Wenn der AIO Mastercontainer aktualisiert wird, erhältst du auf der Oberfläche eine Meldung über die Aktualisierung. Klicke auf die Schaltfläche Aktualisieren, um die Aktualisierung durchzuführen.
Fazit
Damit ist unsere Anleitung zur Installation von Nextcloud AIO auf einem Ubuntu 22.04 Server abgeschlossen. Wenn du noch Fragen hast, schreibe sie in die Kommentare unten.