In diesem Tutorial zeige ich dir, wie du Nextcloud All-in-One (AIO) auf einem Ubuntu Server innerhalb einer Proxmox VM einrichtest – mit Caddy als Reverse Proxy, Portainer zur Verwaltung und IcyBox/RAID als externem Speicher. Dieses Setup ist moderner, wartungsärmer und stabiler als ein klassisches manuelles Docker-Setup.
🤔 Was ist Nextcloud AIO?
Nextcloud AIO (All-in-One) ist ein offizielles Docker-Image von Nextcloud, das alle benötigten Komponenten in einem einzigen Container-Stack bündelt:
- ✅ Nextcloud (PHP, Apache)
- ✅ MariaDB (Datenbank)
- ✅ Redis (Caching)
- ✅ ClamAV (Antivirus)
- ✅ Collabora Online (Office)
- ✅ Talk (Videokonferenz)
- ✅ Imaginary (Bildvorschau)
- ✅ Fulltextsearch (Volltextsuche)
Der große Vorteil: Alle Komponenten sind aufeinander abgestimmt und getestet. Updates erfolgen mit einem einzigen Klick über die AIO-Weboberfläche.
🖥️ Was ist Proxmox?
Proxmox VE (Virtual Environment) ist eine kostenlose Open-Source-Virtualisierungsplattform. Sie ermöglicht es dir, mehrere virtuelle Maschinen (VMs) und Container auf einem einzigen physischen Server zu betreiben. Statt deinen Nextcloud-Server direkt auf der Hardware zu installieren, läuft er in einer isolierten VM – das hat viele Vorteile:
- 🔒 Isolation: Probleme in der VM betreffen nicht das Host-System
- 💾 Snapshots: VM-Zustand vor Updates einfrieren und bei Problemen wiederherstellen
- 🔄 Flexibilität: VM einfach migrieren, klonen oder skalieren
- 📊 Ressourcenverwaltung: CPU und RAM gezielt zuweisen
📋 Voraussetzungen
- Proxmox VE installiert und erreichbar
- Mindestens 4 CPU-Kerne und 6 GB RAM für die VM
- Eine Domain oder DynDNS-Adresse (z.B. über Selfhost.de)
- Port 80 und 443 im Router freigegeben
- Optional: IcyBox mit zwei Festplatten für RAID1-Speicher
⚙️ Schritt 1: Ubuntu Server VM in Proxmox erstellen
Lade zuerst das Ubuntu Server ISO herunter und lade es in Proxmox hoch:
- Im Proxmox-Webinterface auf local → ISO Images → Download from URL klicken
- URL:
https://releases.ubuntu.com/24.04/ubuntu-24.04-live-server-amd64.iso - Neue VM erstellen: Erstellen → VM
Empfohlene VM-Einstellungen:
Name: nextcloud
OS: Ubuntu 24.04 LTS
CPU: 4 Kerne
RAM: 6144 MB (6 GB)
Festplatte: 60 GB (SSD empfohlen)
Netzwerk: VirtIO (DHCP oder feste IP)
Starte die VM und installiere Ubuntu Server. Wähle während der Installation OpenSSH Server aus – damit kannst du später per SSH auf die VM zugreifen.
⚙️ Schritt 2: Ubuntu Server vorbereiten
Verbinde dich per SSH mit der VM:
ssh deinbenutzer@IP-DER-VM
System aktualisieren:
sudo apt update && sudo apt upgrade -y
Docker installieren:
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER
newgrp docker
⚙️ Schritt 3: Portainer installieren
Portainer ist eine grafische Oberfläche zur Verwaltung deiner Docker-Container – perfekt für Einsteiger die keine Lust auf die Kommandozeile haben.
docker volume create portainer_data
docker run -d \
-p 8000:8000 \
-p 9443:9443 \
--name portainer \
--restart=always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v portainer_data:/data \
portainer/portainer-ce:latest
Portainer ist jetzt erreichbar unter: https://IP-DER-VM:9443
Lege beim ersten Start einen Admin-Benutzer an und wähle „Docker“ als Umgebung.
⚙️ Schritt 4: Caddy als Reverse Proxy installieren
Caddy übernimmt die SSL-Zertifikate automatisch und leitet den Traffic an Nextcloud weiter. Erstelle zuerst die benötigte Konfigurationsdatei:
sudo mkdir -p /etc/caddy
sudo nano /etc/caddy/Caddyfile
Füge folgende Konfiguration ein. Ersetze nextcloud.deine-domain.selfhost.co durch deine Domain und 192.168.178.XXX durch die lokale IP deiner Ubuntu-VM:
# Nextcloud
nextcloud.deine-domain.selfhost.co {
# Komprimierung für bessere Performance
encode zstd gzip
# WICHTIG: Die lokale IP deiner Ubuntu-VM und Port 11000
reverse_proxy 192.168.178.XXX:11000
# Well-Known Redirects für CalDAV/CardDAV (iOS/Android Sync)
redir /.well-known/carddav /remote.php/dav 301
redir /.well-known/caldav /remote.php/dav 301
# Security Header
header {
Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
}
}
💡 Was macht diese Caddyfile?
encode zstd gzip→ Komprimiert den Traffic für schnellere Ladezeitenreverse_proxy 192.168.178.XXX:11000→ Leitet Anfragen an Nextcloud AIO weiter (Port 11000 = Apache intern)redir /.well-known/...→ Wichtig für CalDAV/CardDAV – iOS und Android Kalender/Kontakte Sync funktioniert damit korrektStrict-Transport-Security→ Erzwingt HTTPS für maximale Sicherheit
Caddy via Docker starten – füge diesen Stack in Portainer ein:
services:
caddy:
image: caddy:latest
container_name: caddy
restart: unless-stopped
ports:
- "80:80"
- "443:443"
volumes:
- /etc/caddy/Caddyfile:/etc/caddy/Caddyfile
- caddy_data:/data
- caddy_config:/config
network_mode: host
volumes:
caddy_data:
caddy_config:
⚙️ Schritt 5: Nextcloud AIO installieren
Erstelle in Portainer einen neuen Stack namens „nextcloud-aio“ und füge folgenden Code ein. Passe die markierten Werte an deine Umgebung an:
version: "3.8"
services:
nextcloud-aio-mastercontainer:
image: nextcloud/all-in-one:latest
init: true
restart: always
container_name: nextcloud-aio-mastercontainer
volumes:
- nextcloud_aio_mastercontainer:/mnt/docker-aio-config
- /var/run/docker.sock:/var/run/docker.sock:ro
ports:
- "80:80"
- "8080:8080"
- "443:443"
environment:
# 🔧 Deine Nextcloud-Domain (z.B. nextcloud.deine-domain.selfhost.co)
- NEXTCLOUD_DOMAIN=nextcloud.DEINE-DOMAIN.selfhost.co
# 🔧 Pfad wo Nextcloud-Daten gespeichert werden
- NEXTCLOUD_DATADIR=/mnt/nextcloud_data
# 🔧 Lokale IP deines Servers (z.B. 192.168.178.100)
- NEXTCLOUD_TRUSTED_DOMAINS=192.168.178.XXX
# ℹ️ Domain-Validierung überspringen (nützlich hinter Reverse Proxy)
- SKIP_DOMAIN_VALIDATION=true
# ℹ️ Port auf dem Apache intern läuft (nicht ändern wenn Caddy genutzt wird)
- APACHE_PORT=11000
# 🔧 Deine Zeitzone
- TZ=Europe/Vienna
# 🔧 Pfad zum externen Speicher (IcyBox/RAID) - optional, sonst Zeile löschen
- NEXTCLOUD_MOUNT=/mnt/icybox
volumes:
nextcloud_aio_mastercontainer:
name: nextcloud_aio_mastercontainer
📝 Was musst du anpassen?
NEXTCLOUD_DOMAIN→ Deine eigene Domain, z.B.nextcloud.meinname.selfhost.coNEXTCLOUD_DATADIR→ Pfad wo die Nextcloud-Daten liegen sollen, z.B./mnt/nextcloud_dataNEXTCLOUD_TRUSTED_DOMAINS→ Die lokale IP deines Servers, z.B.192.168.178.100TZ→ Deine Zeitzone – für Österreich/Deutschland:Europe/ViennaoderEurope/BerlinNEXTCLOUD_MOUNT→ Nur nötig wenn du externen Speicher (IcyBox) nutzt, sonst Zeile löschen
Nach dem Deployment ist die AIO-Oberfläche erreichbar unter: https://IP-DER-VM:8080
⚙️ Schritt 6: Nextcloud AIO konfigurieren
- Öffne
https://IP-DER-VM:8080im Browser - Notiere dir das angezeigte Passwort – du brauchst es zum Einloggen
- Gib deine Domain ein:
nextcloud.deine-domain.selfhost.co - Wähle die gewünschten optionalen Container (Collabora, Talk, ClamAV etc.)
- Klicke auf „Download and start containers“
- Warte bis alle Container grün sind – das dauert beim ersten Start 5–15 Minuten
Nach dem Start ist Nextcloud erreichbar unter deiner Domain: https://nextcloud.deine-domain.selfhost.co
⚙️ Schritt 7: IcyBox RAID1 als externen Speicher einbinden
Die IcyBox ist ein externes Festplattengehäuse das du per USB an deinen Proxmox-Host anschließt. Über Proxmox kannst du die Festplatten direkt an die VM durchreichen (USB-Passthrough).
In Proxmox die USB-Geräte der VM hinzufügen:
- VM auswählen → Hardware → Hinzufügen → USB-Gerät
- Beide IcyBox-Festplatten einzeln hinzufügen
- VM neu starten
In der Ubuntu VM das RAID1-Array erstellen:
# mdadm installieren
sudo apt install mdadm -y
# Festplatten anzeigen (merke dir die Bezeichnungen z.B. /dev/sdb und /dev/sdc)
sudo lsblk
# RAID1-Array erstellen
sudo mdadm --create --verbose /dev/md0 --level=1 --raid-devices=2 /dev/sdb /dev/sdc
# Dateisystem erstellen (erst wenn Status "clean")
cat /proc/mdstat
sudo mkfs.ext4 /dev/md0
# Array mounten
sudo mkdir /mnt/raid1
sudo mount /dev/md0 /mnt/raid1
# Automatisch beim Start mounten
echo '/dev/md0 /mnt/raid1 ext4 defaults,nofail 0 0' | sudo tee -a /etc/fstab
Den RAID-Speicher als externen Speicher in Nextcloud einbinden:
- In Nextcloud: Verwaltung → Externe Speicher
- Typ: Lokal
- Pfad:
/mnt/raid1 - Speichern
🔄 Updates – der große Vorteil von AIO
Updates sind bei Nextcloud AIO denkbar einfach:
- AIO-Oberfläche öffnen:
https://IP-DER-VM:8080 - Auf „Update all containers“ klicken
- Fertig – alle Komponenten werden automatisch aktualisiert
💡 Tipp: Erstelle vorher einen Proxmox-Snapshot der VM – so kannst du bei Problemen in Sekunden zurückrollen!
✅ Fazit
Nextcloud AIO auf Proxmox ist die modernste und wartungsärmste Art, eine eigene Cloud zu betreiben. Verglichen mit dem klassischen manuellen Docker-Setup spart man enorm viel Zeit bei Updates und Konfiguration – ohne dabei Kontrolle oder Flexibilität zu verlieren.
💡 Voraussetzungen für dieses Tutorial
Für dieses Tutorial empfehle ich zuerst die Grundlagen-Tutorials zu lesen, insbesondere die Einrichtung von Caddy und DynDNS.