Loading...

ownCloud auf einem Ubuntu Server bei Hetzner selbst hosten

Jonas Scholz - Co-Founder von sliplane.ioJonas Scholz
6 min

Hast Du schon mal davon geträumt, eine Cloud für Deine Dateien zu nutzen, bei der DU die volle Kontrolle hast — ganz ohne Dropbox oder Google Drive? Lass mich Dir ownCloud vorstellen – eine großartige open-source Plattform, mit der du Deine eigene sichere Cloud hosten kannst! 🚀 Wenn Du ownCloud selbst betreibst, bestimmst Du über Deine Privatsphäre – und in dieser Anleitung zeige ich Dir Schritt für Schritt, wie Du ownCloud mit Docker auf einem Ubuntu Linux-Server aufsetzt.

Bereit, die Datenhoheit zurück in deine Hände zu nehmen und Dich unabhängiger von großen Tech-Firmen zu machen?

Falls Dir ein Video-Tutorial lieber ist, schau dir das hier an:


Schritt 1: Bereite deinen Linux-Server vor

Für dieses Tutorial empfehle ich Dir einen günstigen Cloud-Server von Hetzner. Hetzner gehört zu meinen Favoriten für persönliche Projekte und kleinere Umgebungen zum selbst-hosten. Erstelle dort einfach eine Ubuntu-Server-Instanz und verbinde Dich per SSH.

Sobald du verbunden bist, halte Deinen Server aktuell:

sudo apt-get update
sudo apt-get upgrade -y

Schritt 2: Firewall für Sicherheit einrichten

Es ist wichtig, deinen Server auf wenige notwendige Zugangsports zu beschränken (SSH: 22, HTTP: 80, HTTPS: 443):

sudo apt install ufw -y
sudo ufw allow 22    # SSH Zugriff
sudo ufw allow 80    # HTTP
sudo ufw allow 443   # HTTPS
sudo ufw enable

Überprüfe deine Firewall-Regeln noch einmal:

sudo ufw status verbose

Verwende am besten auch die Firewall deines Hosting-Anbieters, da Docker gerne UFW-Regeln umgeht. Alternativ kannst du diese Schritte auf StackOverflow befolgen.


Schritt 3: Docker auf Ubuntu installieren

Docker erlaubt bequemes und isoliertes Betreiben von Anwendungen. Installiere Docker mit diesen Schritten auf Ubuntu:

Zuerst notwendige Pakete installieren und Docker's GPG-Schlüssel hinzufügen:

sudo apt-get update
sudo apt-get install ca-certificates curl gnupg

sudo install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/keyrings/docker.gpg
sudo chmod a+r /etc/apt/keyrings/docker.gpg

Jetzt Docker's Repository hinzufügen:

echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo $VERSION_CODENAME) stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null

sudo apt-get update

Docker und Docker Compose Plugin installieren:

sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin -y

Checke, ob Docker funktioniert:

sudo docker run hello-world

Schritt 4: Caddy Webserver für HTTPS installieren

Mit Caddy hast du HTTPS automatisch und ohne Aufwand:

sudo apt install -y debian-keyring debian-archive-keyring apt-transport-https curl

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/gpg.key' | sudo gpg --dearmor -o /usr/share/keyrings/caddy-stable-archive-keyring.gpg

curl -1sLf 'https://dl.cloudsmith.io/public/caddy/stable/debian.deb.txt' \
| sudo tee /etc/apt/sources.list.d/caddy-stable.list

sudo apt update
sudo apt install caddy -y

Dann eine einfache Caddyfile erstellen:

sudo nano /etc/caddy/Caddyfile

Füge ganz simpel folgendes ein (ersetze dabei mit Deiner Domain):

deinedomain.de {
    reverse_proxy localhost:8000
}

Wenn du noch keine Domain hast, kannst du vorerst diesen Eintrag verwenden:

:80 {
    reverse_proxy localhost:8000
}

Dann neu starten:

sudo systemctl restart caddy

Schritt 5: ownCloud mit Docker Compose starten

Erstelle ein neues Verzeichnis für ownCloud:

mkdir ~/owncloud && cd ~/owncloud

Erstelle dann diese docker-compose.yml (und wähle ein sicheres Passwort):

services:
  owncloud:
    image: owncloud/server
    restart: always
    ports:
      - 8000:8080
    depends_on:
      - mariadb
      - redis
    environment:
      - OWNCLOUD_DOMAIN=localhost:8080
      - OWNCLOUD_TRUSTED_DOMAINS=localhost
      - 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=supersecurepassword
      - OWNCLOUD_MYSQL_UTF8MB4=true
      - OWNCLOUD_REDIS_ENABLED=true
      - OWNCLOUD_REDIS_HOST=redis
    volumes:
      - files:/mnt/data
  mariadb:
    image: mariadb:10.11
    restart: always
    environment:
      - MYSQL_ROOT_PASSWORD=owncloud
      - MYSQL_USER=owncloud
      - MYSQL_PASSWORD=owncloud
      - MYSQL_DATABASE=owncloud
      - MARIADB_AUTO_UPGRADE=1
    volumes:
      - mysql:/var/lib/mysql
  redis:
    image: redis:6
    restart: always
    volumes:
      - redis:/data
volumes:
  files:
  mysql:
  redis:

Starte ownCloud mit:

sudo docker compose up -d

Docker lädt automatisch alles herunter und startet die Container im Hintergrund.


Schritt 6: ownCloud im Browser öffnen

Sobald alles läuft, geh im Browser zu Deiner Domain (https://deinedomain.de) oder der IP-Adresse deines Servers. Du siehst wie erwartet die ownCloud Login-Seite:

ownCloud Login

Nach dem ersten Login mit den zuvor definierten Admin-Zugangsdaten landest Du im Dashboard:

ownCloud Dashboard

Fertig! 🎉 Jetzt kannst du dein öffentliches ownCloud selbst nutzen. Die ownCloud-Apps auf Desktop oder Smartphone sind praktisch fürs Dateisyncen.


Zusätzliche Sicherheitsmaßnahmen:

Noch einige Sicherheitstipps für Dich:

  • Server regelmäßig aktualisieren
  • Fail2ban für Schutz vor Angriffen
  • Sichere Passwörter
  • Regelmäßige Backups

Noch einfacher selbst hosten

Sollte Dir das manuelle Setup zu komplex sein, wirf doch mal einen Blick auf Anbieter wie Sliplane. Dort startest du ownCloud ganz bequem per Knopfdruck und ohne komplexe Serververwaltung in wenigen Minuten:


Willkommen in der Container-Cloud

Sliplane macht es einfach, Container in der Cloud zu deployen und bei Bedarf zu skalieren. Probier es jetzt aus!