
OpenCloud auf einem Hetzner Ubuntu Server selbst hosten
Yulei ChenDu 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:
- Geh zur Hetzner Cloud Console, wähle ein Projekt oder leg ein neues an, dann Servers → Add Server

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

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

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

- Add SSH key: Füg deinen öffentlichen SSH-Schlüssel für sicheren Zugriff hinzu. Hast du noch keinen? Erstell einen mit
ssh-keygen:
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.

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

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

Schritt 2: Server aktualisieren
Öffne dein Terminal und verbinde dich per SSH mit deinem Ubuntu Server:
ssh root@your-server-ip
und aktualisiere das System für die neuesten Security-Patches und Updates:
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:
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:
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:
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:
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:
sudo apt-get install docker-ce docker-ce-cli \
containerd.io docker-buildx-plugin docker-compose-plugin -y
Installation prüfen:
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:
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
- Melde dich im Dashboard deines Domain-Registrars an (wo du die Domain gekauft hast)
- Geh zu den DNS-Einstellungen bzw. zum DNS-Management
- Füg einen A-Record mit diesen Werten hinzu:
- Type:
A - Name:
@(für die Root-Domain) oder ein Subdomain wiecloud(fürcloud.deinedomain.com) - Value/Target: Die IPv4-Adresse deines Hetzner Servers
- Type:
- 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
- Type:
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:
sudo nano /etc/caddy/Caddyfile
Trag deine Domain ein und konfigurier den Reverse Proxy. Ersetze "yourdomain.com" durch deine echte Domain:
yourdomain.com {
reverse_proxy localhost:9200
}
Hast du noch keine Domain? Nutze vorübergehend das hier:
:80 {
reverse_proxy localhost:9200
}
Caddy neu starten, damit die Config geladen wird:
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:
mkdir -p ~/opencloud
cd ~/opencloud
sudo nano compose.yml
Kopier den folgenden Inhalt in 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:
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_PASSWORDgesetzt hast
Sicherheitsempfehlungen
Öffentliche Server sollten immer abgesichert sein. Diese Praktiken empfehlen wir:
- Updates und Security-Patches regelmäßig einspielen.
- Ein starkes
IDM_ADMIN_PASSWORDsetzen 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:
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):
| Provider | vCPU Cores | RAM | Disk | Geschätzte monatliche Kosten | Hinweise |
|---|---|---|---|---|---|
| Sliplane | 2 | 2 GB | 40 GB | €9 | Abrechnung pro Server |
| Render | 1 | 2 GB | 40 GB | ~$35–$45 | VM Small |
| Fly.io | 2 | 2 GB | 40 GB | ~$20–$25 | VM + Volume |
| Railway | 2 | 2 GB | 40 GB | ~$15–$66 | Nutzungsbasiert |
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.