ownCloud auf Ubuntu 24.04 mit Docker installieren

ownCloud ist eine Open-Source-Lösung für Dateispeicherung und -freigabe, mit der Sie Dateien auf einem selbst gehosteten Server synchronisieren, verwalten und abrufen können. Sie stellt eine datenschutzfreundliche Alternative zu Cloud-Diensten wie Google Drive oder Dropbox dar, da Sie die volle Kontrolle über Ihre Infrastruktur und Daten behalten.

In dieser Anleitung erfahren Sie, wie Sie ownCloud auf einem Ubuntu 24.04 Server mit Docker einrichten. Sie konfigurieren einen MariaDB-Datenbankcontainer, sichern die Umgebung ab, greifen auf das ownCloud-Dashboard zu und lernen Funktionen wie Dateifreigabe, Benutzerverwaltung und App-Integration kennen.

Voraussetzungen

Stellen Sie vor dem Start sicher, dass Folgendes vorhanden ist:

  • Ein Ubuntu 24.04 Server mit einem nicht-root Benutzer mit Sudo-Rechten.
  • Ein Domain-A-Record, der auf die IP-Adresse Ihres Servers zeigt, z. B. cloud.example.com.

ownCloud mit Docker Compose installieren

Docker Compose erleichtert die Verwaltung von Anwendungen mit mehreren Diensten wie ownCloud. Damit können Sie Services, Netzwerke und Volumes in einer Konfigurationsdatei definieren und diese mit einfachen Befehlen steuern.

Docker Compose installieren

Aktualisieren Sie zunächst die Paketquellen:

Installieren Sie Docker:

$ sudo apt install docker.io -y

Aktivieren und starten Sie den Docker-Dienst:

$ sudo systemctl enable docker
$ sudo systemctl start docker

Fügen Sie Ihren Benutzer der Docker-Gruppe hinzu, damit Sie nicht bei jedem Befehl sudo verwenden müssen:

$ sudo usermod -aG docker $USER

Melden Sie sich ab und wieder an, damit die Gruppenänderungen wirksam werden.

Installieren Sie anschließend das Docker Compose Plugin:

$ mkdir -p ~/.docker/cli-plugins
$ curl -SL https://github.com/docker/compose/releases/latest/download/docker-compose-linux-x86_64 -o ~/.docker/cli-plugins/docker-compose
$ chmod +x ~/.docker/cli-plugins/docker-compose

Überprüfen Sie die Installation:

Die Ausgabe sollte eine Versionsnummer anzeigen, z. B.:

Docker Compose version v2.X.X

ownCloud mit Docker Compose bereitstellen

Erstellen Sie ein Projektverzeichnis und wechseln Sie hinein:

$ mkdir ~/owncloud
$ cd ~/owncloud

Erstellen Sie die Datei docker-compose.yml:

Fügen Sie folgende Konfiguration hinzu, um die ownCloud-, MariaDB- und Redis-Dienste zu definieren:

version: "3"

volumes:
  files:
    driver: local
  mysql:
    driver: local
  redis:
    driver: local

services:
  owncloud:
    image: owncloud/server:${OWNCLOUD_VERSION}
    container_name: owncloud_server
    restart: always
    ports:
      - ${HTTP_PORT}:8080
    depends_on:
      - mariadb
      - redis
    environment:
      - OWNCLOUD_DOMAIN=${OWNCLOUD_DOMAIN}
      - OWNCLOUD_TRUSTED_DOMAINS=${OWNCLOUD_TRUSTED_DOMAINS}
      - OWNCLOUD_DB_TYPE=mysql
      - OWNCLOUD_DB_NAME=owncloud
      - OWNCLOUD_DB_USERNAME=owncloud
      - OWNCLOUD_DB_PASSWORD=owncloud
      - OWNCLOUD_DB_HOST=mariadb
      - OWNCLOUD_ADMIN_USERNAME=${ADMIN_USERNAME}
      - OWNCLOUD_ADMIN_PASSWORD=${ADMIN_PASSWORD}
      - OWNCLOUD_MYSQL_UTF8MB4=true
      - OWNCLOUD_REDIS_ENABLED=true
      - OWNCLOUD_REDIS_HOST=redis
    healthcheck:
      test: ["CMD", "/usr/bin/healthcheck"]
      interval: 30s
      timeout: 10s
      retries: 5
    volumes:
      - files:/mnt/data

  mariadb:
    image: mariadb:10.11
    container_name: owncloud_mariadb
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=owncloud
      - MYSQL_USER=owncloud
      - MYSQL_PASSWORD=owncloud
      - MYSQL_DATABASE=owncloud
      - MARIADB_AUTO_UPGRADE=1
    command: ["--max-allowed-packet=128M", "--innodb-log-file-size=64M"]
    healthcheck:
      test: ["CMD", "mysqladmin", "ping", "-u", "root", "--password=owncloud"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - mysql:/var/lib/mysql

  redis:
    image: redis:6
    container_name: owncloud_redis
    restart: always
    command: ["--databases", "1"]
    healthcheck:
      test: ["CMD", "redis-cli", "ping"]
      interval: 10s
      timeout: 5s
      retries: 5
    volumes:
      - redis:/data

Aktualisieren Sie Variablen wie securepassword mit sicheren, produktionsreifen Zugangsdaten.

Starten Sie die Container:

Überprüfen Sie den Status der Container:

Die Ausgabe sollte bestätigen, dass sowohl ownCloud als auch MariaDB laufen.

ownCloud konfigurieren

Nach der Bereitstellung sollten Sie die Umgebung für den produktiven Einsatz absichern, indem Sie HTTPS aktivieren, Nginx als Reverse Proxy einrichten und die Firewall entsprechend konfigurieren.

Nginx als Reverse Proxy einrichten

Installieren Sie Nginx, falls es noch nicht vorhanden ist:

$ sudo apt update
$ sudo apt install nginx -y

Legen Sie eine neue Nginx-Site-Konfiguration an:

$ sudo nano /etc/nginx/sites-available/owncloud

Fügen Sie folgende Konfiguration ein und ersetzen Sie cloud.example.com durch Ihre eigene Domain:

server {
   listen 80;
   server_name cloud.example.com;

   location / {
       proxy_pass http://localhost:8080/;
       proxy_set_header Host $host;
       proxy_set_header X-Real-IP $remote_addr;
       proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
       proxy_set_header X-Forwarded-Proto $scheme;
   }
}

Aktivieren Sie die Konfiguration und laden Sie Nginx neu:

$ sudo ln -s /etc/nginx/sites-available/owncloud /etc/nginx/sites-enabled/
$ sudo nginx -t
$ sudo systemctl reload nginx

Firewall-Zugriff erlauben

Öffnen Sie HTTP- und HTTPS-Zugriff über UFW:

$ sudo ufw allow 'Nginx Full'
$ sudo ufw reload

ownCloud mit HTTPS absichern

Installieren Sie Certbot mit dem Nginx-Plugin:

$ sudo apt install certbot python3-certbot-nginx -y

Erzeugen und aktivieren Sie ein Let’s Encrypt TLS-Zertifikat:

$ sudo certbot --nginx -d cloud.example.com

Certbot aktualisiert die Nginx-Konfiguration automatisch, um HTTPS zu aktivieren.

Zertifikatserneuerung aktivieren

Stellen Sie sicher, dass die automatische Erneuerung aktiv ist:

$ sudo systemctl enable certbot.timer

Testen Sie den Erneuerungsprozess:

$ sudo certbot renew --dry-run

Setup überprüfen

Öffnen Sie Ihren Browser und rufen Sie auf:

https://cloud.example.com

Sie sollten nun den ownCloud-Setup-Assistenten sehen, der sicher über HTTPS läuft.

ownCloud aufrufen und einrichten

Schließen Sie die Installation über das ownCloud-Webinterface ab:

  • Öffnen Sie Ihren Browser und gehen Sie über HTTPS zu Ihrer Domain: https://cloud.example.com.
  • Der Setup-Assistent wird angezeigt.
  • Legen Sie ein Administratorkonto mit sicherem Benutzernamen und Passwort an.
  • Geben Sie für die Datenbankkonfiguration folgende Werte ein:
  • Datenbank-Benutzer: ownclouduser
  • Datenbank-Passwort: das Passwort, das beim Starten des MariaDB-Containers verwendet wurde
  • Datenbank-Name: owncloud
  • Datenbank-Host: owncloud-db

Klicken Sie auf Setup abschließen. Nach dem Abschluss werden Sie zur Anmeldeseite weitergeleitet. Melden Sie sich mit Ihren Admin-Zugangsdaten an, um das ownCloud-Dashboard aufzurufen.

Dateien mit ownCloud verwalten und teilen

Im Dashboard können Sie Dateien wie folgt verwalten:

  • Dateien über die Weboberfläche hochladen und organisieren, inklusive Drag-and-Drop.
  • Ordner erstellen und Dateien verschieben, um die Ablage zu strukturieren.
  • Dateien oder Ordner über öffentliche oder private Links teilen. Optionen sind:
    • Ablaufdaten setzen
    • Passwortschutz verlangen
    • Bearbeitung erlauben oder deaktivieren
  • Nutzergruppen erstellen und Berechtigungen für die Zusammenarbeit festlegen.
  • ownCloud-Desktop- oder Mobile-Clients installieren, um Dateien automatisch zwischen Server und Endgeräten zu synchronisieren.
  • WebDAV nutzen, um Kompatibilität mit Drittanbieter-Tools und systemeigenen Dateimanagern zu gewährleisten.

Apps in ownCloud installieren und verwalten

ownCloud bietet einen App-Marktplatz, um die Funktionalität mit zusätzlichen Modulen zu erweitern.

App-Marktplatz aufrufen

  • Als Administrator anmelden.
  • Auf das Apps-Symbol in der oberen Navigationsleiste klicken.
  • Apps nach Kategorien durchsuchen oder suchen, z. B. Produktivität, Speicher, Authentifizierung oder Multimedia.

Eine App aktivieren

  • Auf Aktivieren neben der gewünschten App klicken.
  • Einige Apps erfordern nach der Aktivierung zusätzliche Konfiguration.

Beliebte Apps

  • Kalender – Ereignisse planen und mit Benutzern oder Gruppen teilen.
  • Kontakte – Adressbücher verwalten und geräteübergreifend synchronisieren.
  • Externer Speicher – Anbindung an Dropbox, Google Drive, S3 oder lokale Mountpoints.

Installierte Apps verwalten

  • Über den Tab Aktiviert aktive Apps einsehen oder deaktivieren.
  • Einige Apps bieten Einstellungen im Admin-Bereich unter Einstellungen.

Weitere Details finden Sie in der offiziellen Dokumentation, auch zur Konfiguration spezifischer Apps oder zur Entwicklung eigener Erweiterungen.

ownCloud-Daten sichern und wiederherstellen

Um Datenverlust zu vermeiden, sollten Sie regelmäßig Backups sowohl der Benutzerdateien als auch der Datenbank erstellen. Bei einer Docker-Installation befinden sich die Daten meist in benannten Volumes wie owncloud_files.

Daten-Volume sichern

Exportieren Sie das ownCloud-Volume in ein komprimiertes Tarball:

$ docker run --rm \
 -v files:/volume \
 -v $(pwd):/backup \
 alpine \
 tar -czf /backup/owncloud_files_backup.tar.gz -C /volume .

Damit wird ein .tar.gz-Backup des ownCloud-Volumes im aktuellen Host-Verzeichnis gespeichert.

MariaDB-Volume sichern

Auch das Backup des MariaDB-Volumes wird empfohlen:

$ docker run --rm \
 -v mysql:/volume \
 -v $(pwd):/backup \
 alpine \
 tar -czf /backup/mariadb_backup.tar.gz -C /volume .

Daten wiederherstellen

Erstellen Sie bei Bedarf neue Volumes:

$ docker volume create files
$ docker volume create mysql

Importieren Sie das Backup in das Volume:

$ docker run --rm \
 -v files:/volume \
 -v $(pwd):/backup \
 alpine \
 tar -xzf /backup/owncloud_files_backup.tar.gz -C /volume

Wenden Sie denselben Vorgang für das MariaDB-Volume an, um auch die Datenbank wiederherzustellen.

Best Practices für Backups

  • Backups regelmäßig (täglich oder wöchentlich) per Cronjob automatisieren.
  • Backups extern speichern (z. B. S3 oder Remote-Server via rsync).
  • Snapshot-basierte Backups nutzen, falls Cloud-Speicher eingesetzt wird.
  • Auch docker-compose.yml und .env-Dateien sichern, wenn Docker Compose verwendet wird.

Fazit

In dieser Anleitung haben Sie gelernt, wie Sie ownCloud auf Ubuntu 24.04 mit Docker bereitstellen, MariaDB konfigurieren, Nginx und Firewall-Regeln einrichten und die Umgebung mit SSL-Zertifikaten absichern. Zudem haben Sie erfahren, wie Sie auf das Dashboard zugreifen, Apps verwalten und Backup-Strategien umsetzen.

Mit ownCloud behalten Sie die volle Kontrolle über Ihre Dateiverwaltung und Kollaborationsumgebung und erhalten eine starke Alternative zu Drittanbieter-Plattformen wie Google Drive und Dropbox.

Quelle: vultr.com

Jetzt 200€ Guthaben sichern

Registrieren Sie sich jetzt in unserer ccloud³ und erhalten Sie 200€ Startguthaben für Ihr Projekt.

Das könnte Sie auch interessieren: