Nextcloud/Installation/AIO: Unterschied zwischen den Versionen
| (36 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
''' | '''Nextcloud/Installation/AIO''' - Nextcloud All In One Installation | ||
== Beschreibung == | == Beschreibung == | ||
; Docker | |||
Voraussetzung ist eine funktionierende [[Docker/Installation#Standard_Debian_Installation|Docker-Installation]] | |||
== Installation == | == Installation == | ||
=== Nextcloud Docker === | |||
; Docker-Installation | |||
Für die Arbeit mit Nextcloud AIO müssen die [[Docker/Installation|Docker-Pakete installiert]] sein | |||
; | ; Nextcloud in Docker laden und starten | ||
<syntaxhighlight lang="bash" copy line> | |||
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 | |||
</syntaxhighlight> | |||
; Beschreibung | |||
# Startet einen neuen Container aus einem Image | |||
# Deaktiviert die Weiterleitung von Signalen (z. B. SIGINT/SIGTERM) vom Docker-Client an PID 1 im Container | |||
# Vergibt einen eindeutigen Containernamen zur späteren Referenz | |||
# Aktiviert die Neustart-Richtlinie „always“: Container wird nach Absturz oder Daemon-Neustart automatisch neu gestartet außer nach manuellem ''docker stop'' | |||
# Container: 80/TCP --> Host: 80/TCP | |||
# Container: 8080/TCP --> Host: 8080/TCP | |||
# Container: 8443/TCP --> Host: 8443/TCP | |||
# Bindet ein benanntes Volume ein. Persistiert Konfiguration unter ''/mnt/docker-aio-config'' im Container. Volume wird automatisch erstellt, falls nicht vorhanden. | |||
# 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. | |||
# 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. | 3. Das selbstsignierte Zertifikat muss akzeptiert werden. Anschließend sollte Folgendes angezeigt werden: | ||
[[Datei:Aiosetup0.webp|600px|zentriert]] | [[Datei:Aiosetup0.webp|600px|zentriert]] | ||
: 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. | 4. ''Open Nextcloud AIO login'' anklicken und das Passwort einfügen: | ||
[[Datei:Aiosetup1.webp|600px|zentriert]] | [[Datei:Aiosetup1.webp|600px|zentriert]] | ||
5. | 5. Anschließend sollte die AIO-Oberfläche angezeigt werden: | ||
[[Datei:Aiosetup2.webp|600px|zentriert]] | [[Datei:Aiosetup2.webp|600px|zentriert]] | ||
6. | 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. | 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. | ||
[[Datei:Aiosetup3.webp|600px|zentriert]] | [[Datei:Aiosetup3.webp|600px|zentriert]] | ||
8. | 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. | ||
[[Datei:Aiosetup4.webp|600px|zentriert]] | [[Datei:Aiosetup4.webp|600px|zentriert]] | ||
9. | 9. Sind alle Container heruntergeladen und gestartet, erscheint dieser Bildschirm mit noch startenden Containern. Die Erstinstallation wird automatisch durchgeführt: | ||
[[Datei:Aiosetup5.webp|600px|zentriert]] | [[Datei:Aiosetup5.webp|600px|zentriert]] | ||
10. | 10. Nach Abschluss sollte folgender Bildschirm erscheinen: | ||
[[Datei:Aiosetup6.webp|600px|zentriert]] | [[Datei:Aiosetup6.webp|600px|zentriert]] | ||
11. | 11. Abschließend kann die neue Nextcloud-Instanz geöffnet und mit den bereitgestellten Admin-Zugangsdaten angemeldet werden. | ||
12. | 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: | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker ps -a --filter "name=nextcloud-aio" | |||
</syntaxhighlight> | |||
==== start ==== | |||
Nur den Master-Container starten (weitere Container werden über die Oberfläche gestartet): | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker start nextcloud-aio-mastercontainer | |||
</syntaxhighlight> | |||
==== stop ==== | |||
Falls ein Stopp über die Oberfläche nicht möglich ist, können die Container per CLI gestoppt werden. | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker ps -a --filter "name=nextcloud-aio" | |||
</syntaxhighlight> | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker stop <id> | |||
</syntaxhighlight> | |||
==== pause ==== | |||
Container können mit dem Befehl docker pause angehalten werden. Auf diese Weise werden die Prozesse innerhalb des Containers eingefroren. | |||
== | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
docker pause <id> | |||
</syntaxhighlight> | |||
==== logs ==== | |||
Zustand prüfen: | |||
<syntaxhighlight lang="bash" highlight="1" copy line> | <syntaxhighlight lang="bash" highlight="1" copy line> | ||
docker logs -f nextcloud-aio-nextcloud | |||
</syntaxhighlight> | </syntaxhighlight> | ||
=== OCC === | |||
<syntaxhighlight lang=" | Zur Verwaltung von Nextcloud kann auch occ verwendet werden: | ||
<syntaxhighlight lang="bash" highlight="1" copy line> | |||
docker exec -u www-data -it nextcloud-aio-nextcloud php occ <Befehl> | |||
</syntaxhighlight> | </syntaxhighlight> | ||
Hauptartikel: [[Nextcloud/occ|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 ==== | |||
# In der Definition des Master-Containers erforderliche Umgebungsvariablen setzen | |||
# Über die AIO-Oberfläche Stop containers ausführen | |||
# Master-Container mit den neuen Variablen neu erstellen/neu starten ''docker compose up -d'' bzw. ''docker run'' | |||
# Container in der AIO-Oberfläche wieder starten | |||
==== Parameter ==== | |||
{| class="wikitable options big" | |||
|- | |||
! 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 | |||
<syntaxhighlight lang="yaml"> | |||
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 | |||
</syntaxhighlight> | |||
== Anhang == | == Anhang == | ||
Aktuelle Version vom 3. November 2025, 18:10 Uhr
Nextcloud/Installation/AIO - Nextcloud All In One Installation
Beschreibung
- Docker
Voraussetzung ist eine funktionierende Docker-Installation
Installation
Nextcloud Docker
- Docker-Installation
Für die Arbeit mit Nextcloud AIO müssen die Docker-Pakete installiert sein
- 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
- Startet einen neuen Container aus einem Image
- Deaktiviert die Weiterleitung von Signalen (z. B. SIGINT/SIGTERM) vom Docker-Client an PID 1 im Container
- Vergibt einen eindeutigen Containernamen zur späteren Referenz
- Aktiviert die Neustart-Richtlinie „always“: Container wird nach Absturz oder Daemon-Neustart automatisch neu gestartet außer nach manuellem docker stop
- Container: 80/TCP --> Host: 80/TCP
- Container: 8080/TCP --> Host: 8080/TCP
- Container: 8443/TCP --> Host: 8443/TCP
- Bindet ein benanntes Volume ein. Persistiert Konfiguration unter /mnt/docker-aio-config im Container. Volume wird automatisch erstellt, falls nicht vorhanden.
- 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.
- 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 -a --filter "name=nextcloud-aio"
docker stop <id>
pause
Container können mit dem Befehl docker pause angehalten werden. Auf diese Weise werden die Prozesse innerhalb des Containers eingefroren.
docker pause <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>
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
- In der Definition des Master-Containers erforderliche Umgebungsvariablen setzen
- Über die AIO-Oberfläche Stop containers ausführen
- Master-Container mit den neuen Variablen neu erstellen/neu starten docker compose up -d bzw. docker run
- 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