Learning Center
Docker-Plattform

Nextcloud mit Docker installieren

25 Nov. 2025
Hostman Team
Hostman Team

Für alle, die vollständige Kontrolle über ihre Daten behalten möchten, bietet Nextcloud eine leistungsstarke Open-Source-Lösung für den Aufbau eines privaten Cloud-Speichersystems. Die Plattform ermöglicht nicht nur eine sichere Dateisynchronisierung über verschiedene Geräte hinweg, sondern auch das Hosten des Speichers auf einem eigenen Server, ohne auf Drittanbieter angewiesen zu sein.

In dieser Anleitung führen wir dich durch die Installation von Nextcloud mithilfe isolierter Docker-Container, was die Bereitstellung und Verwaltung erheblich vereinfacht. Außerdem richten wir eine automatische Verschlüsselung des Datenverkehrs mit SSL-Zertifikaten von Let’s Encrypt ein, um eine sichere Übertragung zu gewährleisten.

Voraussetzungen
Link kopieren

Du benötigst:

  • Einen Hostman-Cloud-Server mit vorinstalliertem Linux Ubuntu 24.04.

  • Einen Domainnamen.

  • Installiertes Docker und Docker Compose.

Für den Server empfiehlt sich eine Konfiguration mit 1 CPU-Kern, 2 GB RAM und einer öffentlichen IPv4-Adresse, die du bei der Erstellung oder später im Bereich „Network“ anfordern kannst.

Der Server wird innerhalb weniger Minuten bereitgestellt. Die IPv4-Adresse sowie Login-Daten für den SSH-Zugang findest du im Dashboard.

Nextcloud installieren und ausführen
Link kopieren

Nextcloud benötigt mehrere wichtige Komponenten:

  • Datenbank: in diesem Fall MariaDB, ein performantes und zuverlässiges Datenbanksystem.

  • SSL-Zertifikat: wir verwenden kostenlose SSL-Zertifikate der Non-Profit-Zertifizierungsstelle Let’s Encrypt.

  • Reverse Proxy: wir setzen Nginx Proxy Manager ein, der eingehende HTTP- und HTTPS-Anfragen an die entsprechenden Container weiterleitet und verwaltet.

Schritt 1: Konfigurationsverzeichnis erstellen
Link kopieren

Zuerst erstellen wir ein Verzeichnis für die Konfigurationsdateien und wechseln hinein:

mkdir nextcloud && cd nextcloud

Schritt 2: Eine .env-Datei anlegen
Link kopieren

Diese versteckte Datei speichert Variablen mit Passwörtern:

nano .env

Inhalt der Datei:

NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123

NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456

NPM_ROOT_PASSWORD=secure_npm_root_password_789

NPM_DB_PASSWORD=secure_npm_db_password_012

Vergiss nicht, die Werte durch deine eigenen Passwörter zu ersetzen.

Schritt 3: Die docker-compose.yml-Datei erstellen
Link kopieren

Öffne sie mit:

nano docker-compose.yml

Füge folgende Konfiguration ein:

(Codeblöcke nicht übersetzt gemäß deinem)

volumes:

  nextcloud-data:

  nextcloud-db:

  npm-data:

  npm-ssl:

  npm-db:

 

networks:

  frontend:

  backend:

 

services:

  nextcloud-app:

    image: nextcloud:31.0.8

    restart: always

    volumes:

      - nextcloud-data:/var/www/html

    environment:

      - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}

      - MYSQL_DATABASE=nextcloud

      - MYSQL_USER=nextcloud

      - MYSQL_HOST=nextcloud-db

      - MYSQL_PORT=3306

    networks:

      - frontend

      - backend

 

  nextcloud-db:

    image: mariadb:12.0.2

    restart: always

    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW

    volumes:

      - nextcloud-db:/var/lib/mysql

    environment:

      - MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}

      - MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}

      - MYSQL_DATABASE=nextcloud

      - MYSQL_USER=nextcloud

    networks:

      - backend

 

  npm-app:

    image: jc21/nginx-proxy-manager:2.12.6

    restart: always

    ports:

      - "80:80"

      - "81:81"

      - "443:443"

    environment:

      - DB_MYSQL_HOST=npm-db

      - DB_MYSQL_PORT=3306

      - DB_MYSQL_USER=npm

      - DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}

      - DB_MYSQL_NAME=npm

    volumes:

      - npm-data:/data

      - npm-ssl:/etc/letsencrypt

    networks:

      - frontend

      - backend

 

  npm-db:

    image: jc21/mariadb-aria:10.11.5

    restart: always

    environment:

      - MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}

      - MYSQL_DATABASE=npm

      - MYSQL_USER=npm

      - MYSQL_PASSWORD=${NPM_DB_PASSWORD}

    volumes:

      - npm-db:/var/lib/mysql

    networks:

      - backend

Schritt 4: Container starten
Link kopieren

Starte die Container:

docker compose up -d

Bei docker compose up -d kann ein Fehler aufgrund der Pull-Limits von Docker Hub auftreten.

In diesem Fall:

  1. Melde dich bei deinem Docker-Hub-Konto an oder erstelle ein neues Konto.

  2. Gehe zu Account settings → Personal access tokens.

  3. Klicke auf Generate new token.

  4. Füge eine Beschreibung hinzu, wähle ein Ablaufdatum und erteile Berechtigungen: Read, Write, Delete.

  5. Klicke Generate.

  6. Kopiere den Token (er wird nur einmal angezeigt).

  7. Logge dich auf dem Server ein mit:

docker login -u dockeruser

Ersetze dockeruser durch deinen Benutzernamen und gib den Token als Passwort ein.

Starte danach die Container erneut:

docker compose up -d

Prüfe den Status:

docker ps

Alle Container sollten den Status Up haben.

Schritt 5: HTTPS mit Let’s Encrypt konfigurieren
Link kopieren

Öffne im Browser:

http://<server-IP>:81

Melde dich mit den Standardzugangsdaten an:

  • Login: admin@example.com

  • Passwort: changeme

Beim ersten Login:

  • Vollständigen Namen, Spitznamen und E-Mail aktualisieren.

  • Passwort ändern.

Schritt 6: Proxy Host hinzufügen
Link kopieren

Gehe zu Hosts → Proxy Hosts.

Klicke Add Proxy Host und fülle aus:

  • Domain Names: deine Domain für Nextcloud

  • Scheme: http

  • Forward Hostname/IP: nextcloud-app

  • Forward Port: 80

Im Tab SSL:

  • Wähle Request a new SSL Certificate

  • Aktiviere:

    • Force SSL

    • HTTP/2 Support

    • HSTS Enabled

Gib deine E-Mail für Let’s Encrypt an und akzeptiere die Bedingungen. Speichern.

Schritt 7: In Nextcloud einloggen
Link kopieren

Öffne nun deine Domain. Wenn alles korrekt eingerichtet ist, erscheint die Nextcloud-Weboberfläche und das SSL-Zertifikat wird automatisch von Let’s Encrypt ausgestellt.

  • Erstelle ein neues Administratorkonto.

  • Installiere optional empfohlene Apps oder überspringe diesen Schritt.

Damit ist die Installation und Basiskonfiguration abgeschlossen.

Fazit
Link kopieren

In diesem Artikel haben wir gezeigt, wie man Nextcloud mit Docker bereitstellt und ein kostenloses Let’s-Encrypt-Zertifikat einrichtet.

Diese Methode gehört zu den zuverlässigsten, sichersten und am einfachsten skalierbaren Ansätzen. Docker sorgt für saubere Isolation, erleichtert Updates und macht Migrationen unkompliziert. Ein SSL-Zertifikat ist unerlässlich zum Schutz sensibler Daten und zur Gewährleistung verschlüsselten Datenverkehrs.