Zum Inhalt springen

Nextcloud/Installation/AIO

Aus Foxwiki

Nextcloud/Installation/AIO - Nextcloud All In One Installation

Beschreibung

Docker

Voraussetzung ist eine funktionierende Docker-Installation.

Installation

Nextcloud Docker

Nextcloud in Docker laden und starten
sudo docker run \
--sig-proxy=false \
--name nextcloud-aio-mastercontainer \
--restart always \
--publish 80:80 \
--publish 8080:8080 \
--publish 8443:8443 \
--volume nextcloud_aio_mastercontainer:/mnt/docker-aio-config
--volume /var/run/docker.sock:/var/run/docker.sock:ro \
ghcr.io/nextcloud-releases/all-in-one:latest
Beschreibung
  1. Startet einen neuen Container aus einem Image
  2. Deaktiviert die Weiterleitung von Signalen (z. B. SIGINT/SIGTERM) vom Docker-Client an PID 1 im Container
  3. Vergibt einen eindeutigen Containernamen zur späteren Referenz
  4. Aktiviert die Neustart-Richtlinie „always“: Container wird nach Absturz oder Daemon-Neustart automatisch neu gestartet außer nach manuellem docker stop
  5. PHP-Speicherlimit pro Prozess
  6. siehe oben
  7. siehe oben
  8. Bindet ein benanntes Volume ein. Persistiert Konfiguration unter /mnt/docker-aio-config im Container. Volume wird automatisch erstellt, falls nicht vorhanden.
  9. Bindet den Docker-Daemon-Socket des Hosts im Container ein (read-only). Erlaubt dem AIO-Mastercontainer, über die Docker-API Host-Container zu erstellen/stoppen/konfigurieren. :ro verhindert das Modifizieren/Ersetzen der Socket-Datei, begrenzt jedoch nicht die API-Berechtigungen.
  10. Image-Referenz inkl. Tag. latest verwendet den jeweils neuesten Build

AIO-Oberfläche

Als Nächstes kann die AIO-Oberfläche unter https://localhost:8080 oder https://<ip-address>:8080 geöffnet werden

Warum eine IP-Adresse verwendet werden sollte
Beim Zugriff auf diesen Port sollte stets eine IP-Adresse und keine Domain verwendet werden. Andernfalls besteht das Risiko, dass HSTS den Zugriff später blockiert!

3. Das selbstsignierte Zertifikat muss akzeptiert werden. Anschließend sollte Folgendes angezeigt werden:

  • Alternativ, wenn die Ports 80 und 8443 in der Firewall/im Router geöffnet sind und eine Domain auf den Server zeigt, kann die AIO-Oberfläche mit gültigem Zertifikat über https://your-domain.com:8443 erreicht werden.

4. Open Nextcloud AIO login anklicken und das Passwort einfügen:

5. Anschließend sollte die AIO-Oberfläche angezeigt werden:

6. Als Nächstes die zuvor ermittelte öffentliche Domain eingeben. Die Oberfläche hilft bei den konkreten Schritten. (DDNS für die Domain einrichten, sodass sie auf die öffentliche IP zeigt. Mindestens die Ports 443/tcp, 3478/udp und 3478/tcp zur Linux-Maschine weiterleiten.)

7. Nach korrekter Einrichtung sollte der nächste Schritt verfügbar sein: gewünschte optionale Add-ons und die Zeitzone konfigurieren und Start containers anklicken, um sie herunterzuladen und zu starten.

8. An dieser Stelle wird ein Ladeindikator angezeigt. Die Dauer hängt von der Internetgeschwindigkeit ab und beträgt typischerweise etwa 10 Minuten oder mehr.

9. Sind alle Container heruntergeladen und gestartet, erscheint dieser Bildschirm mit noch startenden Containern. Die Erstinstallation wird automatisch durchgeführt:

10. Nach Abschluss sollte folgender Bildschirm erscheinen:

11. Abschließend kann die neue Nextcloud-Instanz geöffnet und mit den bereitgestellten Admin-Zugangsdaten angemeldet werden.

12. Fertig: Die Umgebung ist eingerichtet und produktionsbereit.

Management

Die Verwaltung von Nextcloud erfolgt über:

  • AIO-Webpanel
  • Verwaltung von Containern über das Webpanel oder die Docker-CLI
  • Nextcloud OCC

AIO-Weboberfläche

Der Master-Container stellt eine Web-Administrationsoberfläche auf Port 8080 bereit.

https://<host_IP>:8080

Über die Oberfläche stehen Konfiguration, Start/Stop der Dienste, Updates und Backups zur Verfügung.

Für den Zugriff ist eine Anmeldung erforderlich. Danach ist der Zugriff entweder direkt über Port 8080 oder über Settings > Overview > Open Nextcloud AIO Interface möglich.

Datenzugriff

Volumes anzeigen:

docker volume ls | grep nextcloud_aio

Container

list

Alle AIO-Container anzeigen:

docker ps -a --filter "name=nextcloud-aio"

start

Nur den Master-Container starten (weitere Container werden über die Oberfläche gestartet):

docker start nextcloud-aio-mastercontainer

stop

Falls ein Stopp über die Oberfläche nicht möglich ist, können die Container per CLI gestoppt werden.

docker ps --filter "name=nextcloud-aio"
docker stop <id>

logs

Zustand prüfen:

docker logs -f nextcloud-aio-nextcloud

OCC

Zur Verwaltung von Nextcloud kann auch occ verwendet werden:


docker exec -u www-data -it nextcloud-aio-nextcloud php occ <Befehl>

Siehe Hauptartikel occ

Apache-Konfiguration in Nextcloud AIO ändern

  • Apache läuft in nextcloud-aio-apache und wird vom Master-Container verwaltet.
  • Manuelle Änderungen innerhalb des Containers sind nicht persistent.
  • Anpassungen erfolgen über Umgebungsvariablen des Master-Containers bzw. vorlagerte Reverse-Proxys.

Vorgehen

  1. In der Definition des Master-Containers erforderliche Umgebungsvariablen setzen
  2. Über die AIO-Oberfläche Stop containers ausführen
  3. Master-Container mit den neuen Variablen neu erstellen/neu starten docker compose up -d bzw. docker run
  4. Container in der AIO-Oberfläche wieder starten

Parameter

Parameter Beschreibung Beispiel
APACHE_PORT Interner HTTP-Port des Apache-Containers (für Reverse-Proxy-Betrieb) 11000
APACHE_IP_BINDING IP, an die Apache bindet (z. B. nur Loopback oder alle Interfaces) 127.0.0.1 / 0.0.0.0
PHP_UPLOAD_LIMIT Max. Upload-Größe für PHP/Apache 20G
NEXTCLOUD_MAX_TIME PHP-/Webserver-Timeout (Sekunden) für lange Uploads 3600
NEXTCLOUD_MEMORY_LIMIT PHP-Speicherlimit pro Prozess 1024M
APACHE_ADDITIONAL_NETWORK Zusätzlichem Docker-Netz das Apache-Service hinzufügen (bei externem Proxy im anderen Netz) frontend_net

Hinweise

  • Bei Bindings and Port Änderungen Neustart des Apache-Containers über den Master-Container sicherstellen
  • Container aus AIO stoppenMaster neu starten
  • Container neu erzeugen
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:
      - 8080:8080
    environment:
      - SKIP_DOMAIN_VALIDATION=true
      - APACHE_PORT=11000
      - APACHE_IP_BINDING=0.0.0.0
      - NEXTCLOUD_DATADIR=/mnt/data/nextcloud
      - NEXTCLOUD_MOUNT=/mnt/data

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer

Anhang

Siehe auch


Dokumentation

Links

Projekt

Weblinks