OffshoreVps
Anleitungen10 Okt. 20269 Min. LesezeitVon dem OffshoreVps-Team

Nextcloud auf einem VPS mit Docker Compose selbst hosten

Die eigene private Cloud für Dateien, Kalender und Kontakte betreiben: Compose-Datei, HTTPS-Reverse-Proxy, vertrauenswürdige Domains, Cronjobs und Backups.

Nextcloud bietet Dateisynchronisierung, Kalender, Kontakte und Dokumentbearbeitung auf einem Server unter Ihrer Kontrolle, statt Ihre Dateien einem großen Cloud-Anbieter zu überlassen. So betreiben Sie es auf einem VPS mit Docker Compose.

Terminalfenster auf einem VPS mit den Befehlen zum Selbsthosten von Nextcloud, beginnend mit „mkdir -p ~/nextcloud && cd ~/nextcloud“
Die Art von Befehlen, die Sie in dieser Anleitung auf Ihrem Server ausführen.

Bevor Sie beginnen

  • Ein VPS mit 2 vCPU und 4 GB RAM ist ein komfortabler Einstieg. Der Speicherplatz ist die Hauptbeschränkung, wählen Sie daher eine Festplattengröße, die zu Ihren Dateien passt.
  • Eine auf den Server zeigende Domain, siehe unsere DNS-Anleitung.
  • Installiertes Docker, siehe Docker unter Ubuntu installieren.

1. Die Compose-Datei

mkdir -p ~/nextcloud && cd ~/nextcloud
cat > compose.yaml <<'EOF'
services:
  db:
    image: mariadb:11
    restart: unless-stopped
    command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
    environment:
      MYSQL_ROOT_PASSWORD: change-me-root
      MYSQL_PASSWORD: change-me-db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
    volumes:
      - db:/var/lib/mysql
  redis:
    image: redis:7-alpine
    restart: unless-stopped
  app:
    image: nextcloud:stable
    restart: unless-stopped
    depends_on: [db, redis]
    ports:
      - "127.0.0.1:8080:80"
    environment:
      MYSQL_HOST: db
      MYSQL_DATABASE: nextcloud
      MYSQL_USER: nextcloud
      MYSQL_PASSWORD: change-me-db
      REDIS_HOST: redis
    volumes:
      - nc:/var/www/html
volumes:
  db:
  nc:
EOF
docker compose up -d

Ändern Sie alle drei Passwörter, bevor Sie sie ausführen. Verwenden Sie lange Zufallszeichenfolgen.

Die Schritte dieser Anleitung in der Reihenfolge: 1. Bevor Sie beginnen; 2. 1. Die Compose-Datei; 3. 2. HTTPS vorschalten; 4. 3. Die Einrichtung abschließen; 5. 4. Gesund halten
Die Schritte dieser Anleitung in der Reihenfolge.

2. HTTPS vorschalten

Fügen Sie einen Nginx-Server-Block hinzu, der an 127.0.0.1:8080 weiterleitet, und führen Sie dann Certbot aus, wie in unserer Nginx-Anleitung. Der Proxy-Block benötigt diese Zeilen, damit Nextcloud das richtige Protokoll erkennt und große Uploads funktionieren:

client_max_body_size 2G;
location / {
    proxy_pass http://127.0.0.1:8080;
    proxy_set_header Host $host;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
}

3. Die Einrichtung abschließen

Öffnen Sie Ihre Domain und legen Sie das Admin-Konto an. Fügen Sie danach Ihre Domain zur Liste vertrauenswürdiger Domains hinzu und setzen Sie die Proxy-Angaben:

docker compose exec -u www-data app php occ config:system:set trusted_domains 1 --value=cloud.example.com
docker compose exec -u www-data app php occ config:system:set overwriteprotocol --value=https

4. Gesund halten

  • Updates: docker compose pull && docker compose up -d, jeweils eine Hauptversion nach der anderen.
  • Hintergrundaufgaben: Wechseln Sie in den Admin-Einstellungen zu Cron und fügen Sie einen Host-Cron-Eintrag hinzu, der cron.php alle fünf Minuten ausführt.
  • Backups: Sichern Sie beide Volumes und einen Datenbank-Dump. Siehe So sichern Sie einen VPS.
  • Zwei-Faktor-Anmeldung: Aktivieren Sie die TOTP-App für jedes Konto.