Wähle einen Artikel
ownCloud via Docker auf vServer installieren
ownCloud via Docker auf vServer installieren

0. Überblick

  • Verwendetes System: Debian 11 64 bit (vServer XXL 2.0)
  • Genutzter User: Ich nehme alles als „root“ vor
  • Zeitdauer: ca. 5 Minuten
  • Schwierigkeit: Einfach. Nur Code kopieren 😉
  • Besonderheiten:
  • Grundlage ist folgende Anleitung: Traefik Reverseproxy installieren Diese Anleitung muss zuerst ausgeführt werden.
  • Die Installation von Docker / Docker Compose wird hier vorausgesetzt.

1. ownCloud installieren

1.1 Einleitung

ownCloud (https://owncloud.com) ist eine open source Software zum Speichern von Dateien auf einem Server. Für alle gängigen Plattformen gibt es eigenen Apps, mit welchem man komfortabel auf seine Dateien zugreifen kann. Auf der ownCloud Homepage kann man auch kostenpflichtigen Support und weitere Dienste dazu buchen.

1.2 Infos zu yml Dateien

Bei yml Dateien ist es sehr wichtig, dass die Zeilen alle richtig eingerückt sind. Die Zeilen MÜSSEN immer mit der Leertaste eingerückt werden. Es dürfen KEINE Tabs enthalten sein. Ihr könnt den nachfolgenden Code immer online „überprüfen“ lassen. Die meisten Fehler entstehen nämlich durch die falsche Formatierung. Ein Dienst zum Überprüfen ist zum Beispiel: https://codebeautify.org/yaml-validator

1.3 Vorbereitung

Diese Anleitung basiert auf dem aktuellen Debian 10 Betriebssystem. ownCloud werden wir unter Docker realisieren. Dies ermöglicht uns später sehr schnelle Updates und eine schnelle Installation.

Um ownCloud neben anderen Diensten auf unserem Server betreiben zu können, nutzen wir hier den Reverse Proxy Traefik.

1.3.1 Verzeichnis erstellen

Wir erstellen uns ein neues Verzeichnis, in welchem wir später alle Daten von ownCloud abspeichen. Dazu geben wir folgendes in der Konsole ein:

mkdir -p /opt/containers/owncloud/{database,redis,dateien}

Ihr könnt hier auch ein anderes Verzeichnis verwenden. Müsst dann aber die gesamte Anleitung entsprechend anpassen.

1.3.2 docker-compose.yml erstellen

Nun können wir mit der eigentlichen „Installation“ von ownCloud beginnen. Dazu öffnet ihr folgende Datei:

nano /opt/containers/owncloud/docker-compose.yml

Nun kopiert ihr folgenden Code in die Datei. Dieser Code ist unser Bauplan für unseren ownCloud Container.

version: "3" 

services: 

  owncloud: 

    image: owncloud/server:latest 

    container_name: owncloud_server 

    restart: unless-stopped 

    depends_on: 

      - mariadb 

      - redis 

    environment: 

      - OWNCLOUD_DOMAIN=owncloud.euredomain.de 

      - OWNCLOUD_DB_TYPE=mysql 

      - OWNCLOUD_DB_NAME=owncloud 

      - OWNCLOUD_DB_USERNAME=owncloud 

      - OWNCLOUD_DB_PASSWORD=owncloud 

      - OWNCLOUD_DB_HOST=mariadb 

      - OWNCLOUD_ADMIN_USERNAME=admin 

      - OWNCLOUD_ADMIN_PASSWORD=demo 

      - 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 

    labels: 

      - "traefik.enable=true" 

      - "traefik.http.routers.owncloud.entrypoints=http" 

      - "traefik.http.routers.owncloud.rule=Host(`owncloud.euredomain.de`)" 

      - "traefik.http.middlewares.owncloud-https-redirect.redirectscheme.scheme=https" 

      - "traefik.http.routers.owncloud.middlewares=owncloud-https-redirect" 

      - "traefik.http.routers.owncloud-secure.entrypoints=https" 

      - "traefik.http.routers.owncloud-secure.rule=Host(`owncloud.euredomain.de`)" 

      - "traefik.http.routers.owncloud-secure.tls=true" 

      - "traefik.http.routers.owncloud-secure.tls.certresolver=http" 

      - "traefik.http.routers.owncloud-secure.service=owncloud" 

      - "traefik.http.services.owncloud.loadbalancer.server.port=8080" 

      - "traefik.docker.network=proxy" 

      - "traefik.http.routers.owncloud-secure.middlewares=secHeaders@file" 

    networks: 

      - proxy 

      - default 

  mariadb: 

    image: mariadb:10.5 

    container_name: owncloud_mariadb 

    restart: unless-stopped 

    environment: 

      - MYSQL_ROOT_PASSWORD=owncloud 

      - MYSQL_USER=owncloud 

      - MYSQL_PASSWORD=owncloud 

      - MYSQL_DATABASE=owncloud 

    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: 

      - ./database:/var/lib/mysql 

    networks: 

      - default 


  redis: 

    image: redis:6 

    container_name: owncloud_redis 

    restart: unless-stopped 

    command: ["--databases", "1"] 

    healthcheck: 

      test: ["CMD", "redis-cli", "ping"] 

      interval: 10s 

      timeout: 5s 

      retries: 5 

    volumes: 

      - ./redis:/data 

    networks: 

      - default 

networks: 

  proxy: 

    external: true

Nun müssen wir noch einiges anpassen.

1.3.3 Hostname anpassen

Nun müsst ihr noch den Hostnamen anpassen, über welchen später ownCloud erreichbar sein soll.

Diese beiden Zeilen müsst ihr anpassen.

      - "traefik.http.routers.owncloud.rule=Host(`owncloud.euredomain.de`)" 
      - "traefik.http.routers.owncloud-secure.rule=Host(`owncloud.euredomain.de`)"

In meinem Fall also:

      - "traefik.http.routers.owncloud.rule=Host(`owncloud.testbereich.net`)" 
      - "traefik.http.routers.owncloud-secure.rule=Host(`owncloud.testbereich.net`)"

Wenn ihr ownCloud direkt auf eurer „Hauptdomain“ betreiben wollt, dann ändert ihr es folgendermaßen ab:

"traefik.http.routers.owncloud.rule=Host(`www.euredomain.de`,`euredomain.de`)"
"traefik.http.routers.owncloud-secure.rule=Host(`www.euredomain.de`,`euredomain.de`)"

Zusätzlich müsst ihr noch diese Zeile anpassen:

     - OWNCLOUD_DOMAIN=owncloud.euredomain.de

Ich ändere dies also bei mir folgendermaßen ab:

     - OWNCLOUD_DOMAIN=owncloud.testbereich.net

1.3.4 Datenbank Passwort anpassen

Nachdem ihr den Hostnamen angepasst habt, müsst ihr noch das Datenbank Passwort anpassen. Vergebt ihr ein langes, sicheres Kennwort.

Folgende Zeilen müsst ihr ändern:

  • OWNCLOUD_DB_PASSWORD=owncloud
  • MYSQL_PASSWORD=owncloud
  • MYSQL_ROOT_PASSWORD=owncloud

Ich ändere also meine Kennwörter ab. Dies könnte beispielsweise so sein:

  • OWNCLOUD_DB_PASSWORD=5h32Agfh4612
  • MYSQL_PASSWORD=5h32Agfh4612
  • MYSQL_ROOT_PASSWORD=u4gAbgh421

Wichtig ist, dass „OWNCLOUD_DB_PASSWORD“ und „MYSQL_PASSWORD“ identisch sein müssen!

1.3.5 ownCloud Admin anpassen

Nun passen wir noch den Nutzernamen sowie das Passwort des Administrators an.

Dazu passt ihr folgende Zeilen an:

  • OWNCLOUD_ADMIN_USERNAME=admin
  • OWNCLOUD_ADMIN_PASSWORD=demo

Dies könnt ihr nun beliebig verändern.

Nun sind wir fertig mit der Vorbereitung.

2. ownCloud starten

Gebt nun folgendes ein, um euren ownCloud Container zu starten:

docker compose -f /opt/containers/owncloud/docker-compose.yml up -d 

Beim ersten Start des Containers wird ownCloud initialisiert. Dies bedeutet, dass die Datenbank eingerichtet, eure Einstellungen übernommen werden und vieles mehr. Daher dauert es einige Minuten, bis der Container dann über die Webseite erreichbar ist. Bei mir hat es ca. 2 Minuten gedauert.

Geht nun mit eurem Webbrowser auf eure Webseite (z.B. owncloud.euredomain.de). Dies sollte so aussehen.

Hier könnt ihr euch nun mit euren Accountdaten einloggen, welche ihr im Schritt 1.3.5 vergeben habt.


Beim ersten Start bekommt ihr Apps angezeigt, mit deren Hilfe ihr ownCloud auf den verschiedenen Geräten synchronisieren könnt.

3. Sprache ändern

Loggt euch mit dem Benutzer ein, von dem ihr die Sprache ändern wollt. Klick dann auf euren Namen und wählt „Settings“.

Hier könnt ihr nun eure Sprache anpassen.

4. Erweiterungen installieren

Für ownCloud gibt es viele (kostenlose) Erweiterungen. Um diese zu installieren, klickt ihr auf das Menü oben links und wählt dann „Market“ aus.

Hier bekommt ihr nun einen Überblick aller zur Verfügung stehenden Erweiterungen.

5. Login mittels 2 Faktor Authen­ti­fi­zierung absichern

Ihr müsst folgende Erweiterung installieren, um diese Funktion zu nutzen:

Nach der Installation geht ihr dann oben rechts auf euren Namen und wählt „Einstellungen“ aus.

Nun wählt ihr den Reiter „Sicherheit“ aus.

Hier aktiviert ihr nun „TOTP-Zweifaktorauthentifizierung“.

Nach der Aktivierung bekommt ihr einen QR-Code angezeigt. Diesen scannt ihr mit einer Authenticator App eurer Wahl (z.B. Authy) und gebt dann den Code, welchen euch die App anzeigt, in das Feld ein.

Wenn alles funktioniert hat, sollte die Meldung „Bestätigt“ erscheinen.

Wenn ihr euch das nächste Mal bei ownCloud einloggen wollt, wird neben eurem Nutzernamen und Passwort noch das „Einmalpasswort“ abgefragt.

6. Schutz vor Brute Force Angriffe aktivieren

Brute Force Angriff bedeutet, dass der Angreifer alle möglichen Passwörter durchprobiert. Dies könnt ihr einerseits mit der Zwei Faktor Authentifizierung verhindern (Schritt 5) oder ihr installiert noch diese Erweiterung.

Dazu müsst ihr folgende Erweiterung installieren:

Die Erweiterung ist nun sofort aktiv und ihr müsst nichts weiteres mehr tun.

Nächster Artikel
ownCloud auf vServer installieren
Weitere passende Themen