Zum Inhalt springen

Nextcloud/Installation/AIO: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
Keine Bearbeitungszusammenfassung
DanielZorin (Diskussion | Beiträge)
 
(50 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
'''{{BASEPAGENAME}}'''
'''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-Pakete installiert sein
Hauptartikel: [[Docker/Installation|Docker-Installation]]
; 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.&nbsp;Das selbstsignierte Zertifikat muss akzeptiert werden. Anschließend sollte Folgendes angezeigt werden:
[[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.&nbsp;''Open Nextcloud AIO login'' anklicken und das Passwort einfügen:
[[Datei:Aiosetup1.webp|600px|zentriert]]
5.&nbsp;Anschließend sollte die AIO-Oberfläche angezeigt werden:
[[Datei:Aiosetup2.webp|600px|zentriert]]
6.&nbsp;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.&nbsp;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]]
8.&nbsp;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]]
9.&nbsp;Sind alle Container heruntergeladen und gestartet, erscheint dieser Bildschirm mit noch startenden Containern. Die Erstinstallation wird automatisch durchgeführt:
[[Datei:Aiosetup5.webp|600px|zentriert]]
10.&nbsp;Nach Abschluss sollte folgender Bildschirm erscheinen:
[[Datei:Aiosetup6.webp|600px|zentriert]]
11.&nbsp;Abschließend kann die neue Nextcloud-Instanz geöffnet und mit den bereitgestellten Admin-Zugangsdaten angemeldet werden.
12.&nbsp;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>
docker logs -f nextcloud-aio-nextcloud
</syntaxhighlight>
=== OCC ===
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>
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.


1. Installieren Sie Docker gemäß den Anweisungen unter [[Docker/Installation|инструкции]].
==== Vorgehen ====
2. Installieren Sie NC-AIO gemäß den Anweisungen unter https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/.
# In der Definition des Master-Containers erforderliche Umgebungsvariablen setzen
3.
# Ü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


<syntaxhighlight lang="bash" highlight="1" line copy>
==== Parameter  ====
< /syntaxhighlight>
{| class="wikitable options gnu 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


<noinclude>
volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer
</syntaxhighlight>


== Anhang ==
== Anhang ==
Zeile 36: Zeile 224:
==== Weblinks ====
==== Weblinks ====


{{DEFAULTSORT:new}}
{{DISPLAYTITLE:new}}


[[Kategorie:new]]
[[Kategorie:Nextcloud]]
[[Kategorie:Docker]]


</noinclude>
</noinclude>

Aktuelle Version vom 3. November 2025, 14:52 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

Hauptartikel: Docker-Installation

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. Container: 80/TCP --> Host: 80/TCP
  6. Container: 8080/TCP --> Host: 8080/TCP
  7. Container: 8443/TCP --> Host: 8443/TCP
  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 -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

  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