OpenCloud auf einem Hetzner Ubuntu Server selbst hosten

OpenCloud auf einem Hetzner Ubuntu Server selbst hosten

Yulei Chen - Content-Engineerin bei sliplane.ioYulei Chen
8 min

Du willst volle Kontrolle über deine Dateien, ohne dich auf Google Drive oder OneDrive zu verlassen? Mit OpenCloud auf einem Ubuntu Server bekommst du eine datenschutzorientierte File-Sharing-Plattform mit kalkulierbaren Kosten und vollem Besitz deiner Daten.

Du suchst etwas Einfacheres? Wenn du lieber auf Server-Management verzichtest und OpenCloud in Minuten deployen willst, schau dir Sliplane an – One-Click-Deploy mit HTTPS und persistentem Storage.

Folge dieser leicht verständlichen Anleitung, um deine eigene OpenCloud-Instanz mit Docker und dem Caddy Webserver für automatisches HTTPS zu deployen.

In diesem Post nutzen wir einen günstigen Server von Hetzner. Hetzner ist bekannt für guten Service und ein starkes Preis-Leistungs-Verhältnis – ideal für OpenCloud.

Voraussetzungen

Bevor wir starten: Achte drauf, dass du ein Hetzner Cloud Konto hast (oder eines anlegen kannst).

Schritt 1: Hetzner Server einrichten

Hast du noch keinen Hetzner Server? So legst du einen an:

  1. Geh zur Hetzner Cloud Console, wähle ein Projekt oder leg ein neues an, dann ServersAdd Server

Hetzner Cloud Console

  1. Folge Hetzners Anleitung für:
    • Server type: Wähl einen Server-Typ, der zu deinen Anforderungen passt.

Select Server Type

  • Location: Wähl einen Rechenzentrums-Standort in deiner Nähe oder nahe deiner Nutzer.

Select Location

  • Image: Wähl Ubuntu (am besten die neueste LTS-Version).

Select Ubuntu Image

  1. Add SSH key: Füg deinen öffentlichen SSH-Schlüssel für sicheren Zugriff hinzu. Hast du noch keinen? Erstell einen mit ssh-keygen:
Terminal
ssh-keygen -t ed25519 -C "your_email@example.com"

Zeig ihn dir mit cat ~/.ssh/id_ed25519.pub an und füg ihn beim Server ein.

SSH Connection

  1. Konfigurier bei Bedarf das Networking, dann klick auf Create & Pay, um deinen Server zu provisionieren.

Networking Options

Sobald der Server erstellt ist, notier dir die IP-Adresse. Du brauchst sie für die SSH-Verbindung im nächsten Schritt.

Server IP Address

Schritt 2: Server aktualisieren

Öffne dein Terminal und verbinde dich per SSH mit deinem Ubuntu Server:

Terminal
ssh root@your-server-ip

und aktualisiere das System für die neuesten Security-Patches und Updates:

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

Fertig? Dann ist dein Server bereit für die Software-Installation.

Schritt 3: UFW Firewall installieren und konfigurieren

Halte nur die nötigen Ports offen: SSH (22), HTTP (80), HTTPS (443).

Installier UFW und konfigurier die Firewall so:

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

Prüf deine Firewall-Konfiguration:

Terminal
sudo ufw status verbose

Docker kann manchmal UFW-Regeln ignorieren. Dagegen hilft: Zusätzliche Einstellungen prüfen, wie hier beschrieben.

Schritt 4: Docker Installation

Docker läuft OpenCloud in einem Container. Installier Docker mit diesen Befehlen:

Dependencies und Docker GPG-Key einrichten:

Terminal
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

Docker Repository hinzufügen:

Terminal
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 Engine und compose-plugin installieren:

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

Installation prüfen:

Terminal
sudo docker run hello-world

Siehst du die "hello-world"-Meldung? Dann ist Docker bereit.

Schritt 5: Caddy für automatisches HTTPS installieren

Caddy vereinfacht die HTTPS-Konfiguration, weil es SSL-Zertifikate automatisch von Let's Encrypt holt.

Caddy installieren:

Terminal
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

Bevor du Caddy konfigurierst, musst du deine Domain auf die IP-Adresse deines Servers zeigen. Noch kein DNS eingerichtet? So geht's:

DNS für deine Domain konfigurieren

  1. Melde dich im Dashboard deines Domain-Registrars an (wo du die Domain gekauft hast)
  2. Geh zu den DNS-Einstellungen bzw. zum DNS-Management
  3. Füg einen A-Record mit diesen Werten hinzu:
    • Type: A
    • Name: @ (für die Root-Domain) oder ein Subdomain wie cloud (für cloud.deinedomain.com)
    • Value/Target: Die IPv4-Adresse deines Hetzner Servers
  4. Füg einen AAAA-Record für IPv6 hinzu:
    • Type: AAAA
    • Name: @ (für die Root-Domain) oder dieselbe Subdomain wie beim A-Record
    • Value/Target: Die IPv6-Adresse deines Hetzner Servers

DNS-Änderungen können einige Minuten bis Stunden brauchen, bis sie propagiert sind. Du kannst mit Tools wie dig oder Online-DNS-Checkern prüfen, ob dein DNS korrekt konfiguriert ist. Sobald der DNS-Record aktiv ist, kannst du mit der Caddy-Konfiguration weitermachen.

Caddy konfigurieren

Bearbeite die Caddyfile-Konfiguration:

Terminal
sudo nano /etc/caddy/Caddyfile

Trag deine Domain ein und konfigurier den Reverse Proxy. Ersetze "yourdomain.com" durch deine echte Domain:

Caddyfile
yourdomain.com {
    reverse_proxy localhost:9200
}

Hast du noch keine Domain? Nutze vorübergehend das hier:

Caddyfile
:80 {
    reverse_proxy localhost:9200
}

Caddy neu starten, damit die Config geladen wird:

Terminal
sudo systemctl restart caddy

Schritt 6: OpenCloud mit Docker Compose starten

Wir nutzen Docker Compose für ein einfacheres Setup.

Leg zuerst ein Verzeichnis für OpenCloud an, wechsle rein und erstelle die Compose-Datei:

Terminal
mkdir -p ~/opencloud
cd ~/opencloud
sudo nano compose.yml

Kopier den folgenden Inhalt in compose.yml:

compose.yml
services:
  opencloud:
    image: opencloudeu/opencloud:4.0.3
    container_name: opencloud
    restart: unless-stopped
    entrypoint:
      - /bin/sh
    command: ["-c", "opencloud init || true; opencloud server"]
    ports:
      - "9200:9200"
    environment:
      IDM_ADMIN_PASSWORD: "ChangeMeToASecurePassword"
      PROXY_TLS: "false"
      OC_INSECURE: "true"
      OC_URL: "https://yourdomain.com"
    volumes:
      - opencloud-config:/etc/opencloud
      - opencloud-data:/var/lib/opencloud

volumes:
  opencloud-config: {}
  opencloud-data: {}

Die Image-Version 4.0.3 war zum Zeitpunkt des Schreibens aktuell. Prüf Docker Hub für die neueste stabile Version. Ersetze unbedingt ChangeMeToASecurePassword durch ein starkes Passwort und yourdomain.com durch deine echte Domain. Das entrypoint/command übernimmt die Initialisierung automatisch beim ersten Start — basierend auf dem offiziellen OpenCloud Compose File.

OpenCloud starten:

Terminal
sudo docker compose up -d

Docker lädt das OpenCloud-Image, initialisiert die Config beim ersten Start und startet den Server im Hintergrund auf Port 9200.

Schritt 7: Auf deine selbst gehostete OpenCloud-Instanz zugreifen

Deine OpenCloud-Instanz sollte jetzt unter https://yourdomain.com erreichbar sein. Nutzt du das temporäre HTTP-Setup? Dann öffne http://your-server-ip:9200.

Standard-Login bei OpenCloud:

  • Username: admin
  • Password: der Wert, den du in IDM_ADMIN_PASSWORD gesetzt hast

Sicherheitsempfehlungen

Öffentliche Server sollten immer abgesichert sein. Diese Praktiken empfehlen wir:

  • Updates und Security-Patches regelmäßig einspielen.
  • Ein starkes IDM_ADMIN_PASSWORD setzen und Nutzerzugriff kontrollieren.
  • Server-Logs auf verdächtige Aktivitäten überwachen.
  • Tools wie Fail2ban für zusätzliche Sicherheit installieren.

OpenCloud-Installation aktualisieren

Willst du deine OpenCloud-Instanz updaten? Prüf zuerst die neueste Version auf Docker Hub, aktualisiere dann die Image-Version in deiner compose.yml und führ aus:

Terminal
cd ~/opencloud
sudo docker compose pull
sudo docker compose up -d

Docker lädt die aktualisierten Versionen herunter und ersetzt deine aktuellen Container.

Kostenvergleich mit anderen Anbietern

Selbst gehostetes OpenCloud ist meist günstiger als Managed Hosting von Drittanbietern (ab ~39€/Monat):

ProvidervCPU CoresRAMDiskGeschätzte monatliche KostenHinweise
Sliplane22 GB40 GB€9Abrechnung pro Server
Render12 GB40 GB~$35–$45VM Small
Fly.io22 GB40 GB~$20–$25VM + Volume
Railway22 GB40 GB~$15–$66Nutzungsbasiert

Fazit

Du hast jetzt eine selbst gehostete OpenCloud-Instanz auf Hetzner mit Docker und HTTPS. Willst du weniger Wartung und schnelleres Setup? Mit Sliplane bist du in Minuten dabei – ohne den Server-Overhead.

OpenCloud in Minuten deployen

Überspring Server-Setup und starte OpenCloud auf Sliplane mit einem Klick, HTTPS und persistentem Storage.