Eine Nextcloud kann auf mehrere Varianten installiert werden. Hier erfahren Sie, wie die Nextcloud als Docker-Container bereitgestellt wird.
Sie finden hierzu auch ein Howto-Video auf Youtube. Folgen Sie einfach diesem Link oder schauen Sie sich das Video direkt an.
Inhaltsverzeichnis
Installation Docker
Um die Nextcloud mittels eines Dockercontainers bereitzustellen, muss Docker selbst auf dem Zielsystem installiert werden.
sudo apt-get -y install docker docker-compose docker.io
Verzeichnisstruktur anlegen
Docker-Container speichern normalerweise die Daten nicht persistent, so dass bei einem Neustart des Containers die Daten verloren sind. Bei einer Cloud-Lösung wie der Nextcloud sollte dies vermieden werden, um die Daten auch nach einem Neustart behalten zu können.
Aus diesem Grund wird eine Verzeichnisstruktur angelegt, in der die persistenten Daten abgelegt werden.
Hier ein Beispiel, welches auch in dieser Anleitung genutzt wird. Sie können die Pfade auch nach Ihren eigenen Bedürfnissen anpassen.
Das Hauptverzeichniss mit den Konfigurationsdateien und der Datenbank legen wir unter /docker/nextcloud/
ab.
sudo mkdir -p /docker/nextcloud
Während der Bereitstellung des Docker-Containers (Befehl muss im Verzeichnis ausgeführt werden) werden alle weiteren Ordner automatisch angelegt.
Lediglich das Daten-Verzeichnis legen wir an einem anderen Ort ab, z.B. direkt unter /nextcloud-data
.
sudo mkdir -p /nextcloud-data
Diese Art hat den Vorteil, dass Sie die Daten zum Beispiel auch von einem NAS-System einbinden können.
Docker-Compose
Die Bereitstellung der Nextcloud führen wir mittels Docker-Compose durch. Dies hat mehrere Vorteile.
- Nutzung von Konfigurations-Dateien
- Bereitstellung mehrerer Container zur gleichen Zeit
- Einfache Update-Möglichkeit
Dazu wechseln wir in das Verzeichnis, aus dem wir die Container bereitstellen werden.
cd /docker/nextcloud/
In diesem Ordner legen wir nun eine Datei mit dem Namen docker-compose.yml
an.
sudo vi docker-compose.yml
Wir füllen diese mit folgendem Inhalt.
version: '3'
volumes:
data:
config:
db:
services:
nextcloud-db:
image: mariadb
container_name: nextcloud-db
restart: always
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
nextcloud:
image: nextcloud
container_name: nextcloud
restart: always
ports:
- 8080:80
depends_on:
- nextcloud-db
volumes:
- ./config:/var/www/html/config
- /nextcloud-data:/var/www/html/data
- ./apps:/var/www/html/apps
- ./custom_apps:/var/www/html/custom_apps
Um zu verstehen, wie das Dokument aufgebaut ist, folgt hier die Erklärung.
Am Beginn der Datei wird die Version der Konfigurationsdatei sowie die drei Platzhalter für die Volumen definiert.
version: '3'
volumes:
data:
config:
db:
Es folgt die Definition der Dienste, die den eigentlichen Teil der Applikation ausmachen.
Hier wird mit dem Öffnungstag services:
begonnen, gefolgt von den einzelnen Diensten.
Nextcloud benötigt für den Betrieb eine Datenbank, in der alle Metadaten gespeichert werden. Diese wird hier nextcloud-db
genannt.
nextcloud-db:
image: mariadb
container_name: nextcloud-db
restart: always
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=
- MYSQL_PASSWORD=
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
Es müssen lediglich die Umgebungsvariablen, speziell MYSQL_ROOT_PASSWORD
und MYSQL_PASSWORD
gesetzt werden.
Der Nextcloud-Container selbst wird als Service nextcloud
beschrieben.
nextcloud:
image: nextcloud
container_name: nextcloud
restart: always
ports:
- 8080:80
depends_on:
- nextcloud-db
volumes:
- ./config:/var/www/html/config
- /nextcloud-data:/var/www/html/data
- ./apps:/var/www/html/apps
- ./custom_apps:/var/www/html/custom_apps
Hier sind keine weiteren Umgebungsvariablen zu setzen.
Die einzelnen Tags innerhalb der Service-Definitionen haben folgende Bedeutung.
Tag | Funktion |
image | Das Image, welches aus dem Docker-Hub heruntergeladen wird |
container_name | Friendly-Name für den Docker-Container |
restart | Neustart-Policy, hier wird der Container „immer“ neu gestartet sollte er nicht laufen |
ports | Freigegebene Ports, damit der Container auch von außerhalb erreichbar ist, z.B. dem eigenen PC |
depends_on | Abhängigkeit von einem anderen Service, hier beispielhaft der zuvor definierten Datenbank. Der Container startet nur, wenn der andere Container vorhanden ist und läuft |
volumes | Definition der persistenten Datenspeicher |
environment | Umgebungvariablen, wie z.B. Passwörter oder Namen |
Container starten
Das Starten der Container gestaltet sich sehr einfach, da nur 2 Befehle notwendig sind.
sudo docker-compose pull
Hiermit werden die Pakete auf das System heruntergeladen.
sudo docker-compose up -d
Hiermit werden die Container gestartet.
Die Nextcloud-Instanz ist nun unter http://[Docker-IP]:8080
erreichbar und kann über die Weboberfläche aufgerufen werden.
Wählen Sie hier noch die MySQL als Datenbank aus und geben Sie die Daten aus der Konfigurationsdatei ein.
Zu beachten ist, dass der Hostname der Datenbank hier nextcloud-db heißen muss, damit der Docker-Container auf die richtige Datenbank zeigt. Anderenfalls schlägt die Einrichtung fehl.
Fertig ist die eigene Nextcloud.
Zu beachten ist, dass diese Art der Bereitstellung nur für den rein internen Gebrauch zu empfehlen ist, da keinerlei SSL-Verschlüsselung genutzt wird. Außerdem sollten die Kennwörter gegen sichere Kennwörter getauscht werden, diese hier dienen nur zur Demonstration.
Haben Sie Fragen? Gerne unterstützen wir Sie bei der Einrichtung. Kontaktieren Sie uns einfach! Besuchen Sie auch gerne unsere Nextcloud Seite für mehr Informationen!
- QuickTip: Alle Benutzer auf einem Windows Server benachrichtigen - 19. Juni 2024
- BookStack: Eine moderne Alternative zu klassischen Wiki-Systemen - 17. Mai 2024
- Windows-Sandbox – die sichere Testumgebung - 7. März 2024