1. Mit deinem Server verbinden
ssh root@DEINE_SERVER_IP
Oder verwende das Web-Terminal im Sitequest-Dashboard.
2. Projektverzeichnis erstellen
mkdir -p /opt/nextcloud && cd /opt/nextcloud
3. Docker-Compose-Datei erstellen
nano docker-compose.yml
services:
db:
image: mariadb:11
restart: always
volumes:
- db_data:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: ROOT_PASSWORT_AENDERN
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: DB_PASSWORT_AENDERN
app:
image: nextcloud:stable
restart: always
ports:
- "8080:80"
volumes:
- nextcloud_data:/var/www/html
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: DB_PASSWORT_AENDERN
NEXTCLOUD_TRUSTED_DOMAINS: deine-domain.de
depends_on:
- db
volumes:
db_data:
nextcloud_data:
Ersetze die Passwörter und Domain durch deine eigenen Werte. Verwende starke, einzigartige Passwörter.
4. Container starten
docker compose up -d
Warte eine Minute, bis die Datenbank initialisiert ist, dann prüfe:
docker compose ps
Beide Container sollten als "running" angezeigt werden.
5. Reverse Proxy mit SSL einrichten
Wenn du Nginx installiert hast, erstelle einen Server-Block:
nano /etc/nginx/sites-available/nextcloud
server {
listen 80;
server_name deine-domain.de;
client_max_body_size 512M;
location / {
proxy_pass http://127.0.0.1:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
Aktivieren und neu laden:
ln -s /etc/nginx/sites-available/nextcloud /etc/nginx/sites-enabled/
nginx -t && systemctl reload nginx
Dann SSL mit Let's Encrypt holen:
certbot --nginx -d deine-domain.de
6. Einrichtung abschließen
Öffne https://deine-domain.de im Browser. Erstelle ein Admin-Konto und schließe den Web-Installer ab.
7. Empfohlene Nachinstallations-Anpassungen
Führe diese Befehle im Container aus:
docker compose exec app php occ config:system:set overwriteprotocol --value="https"
docker compose exec app php occ config:system:set default_phone_region --value="DE"
docker compose exec app php occ background:cron
Füge einen Cronjob für Hintergrundaufgaben hinzu:
echo "*/5 * * * * docker exec nextcloud-app-1 php -f /var/www/html/cron.php" >> /etc/crontab
Nächste Schritte
- Nextcloud-Desktop- und Mobil-Apps für die Dateisynchronisation installieren
- Serverseitige Verschlüsselung für sensible Daten aktivieren
- Externen Speicher (S3, SMB) als zusätzliches Backend einrichten
- E-Mail-Benachrichtigungen über SMTP konfigurieren
- Automatische Backups der
nextcloud_data- und db_data-Volumes einrichten