Zum Inhalt springen

Nextcloud/Installation/AIO: Unterschied zwischen den Versionen

Aus Foxwiki
DanielZorin (Diskussion | Beiträge)
DanielZorin (Diskussion | Beiträge)
 
(47 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 ===


1. Installieren Sie Docker gemäß den Anweisungen unter [[Docker/Installation|Anweisungen]].
; Docker-Installation
Für die Arbeit mit Nextcloud AIO müssen die Docker-Pakete installiert sein


2. Installieren Sie NC-AIO gemäß den Anweisungen unter https://nextcloud.com/blog/how-to-install-the-nextcloud-all-in-one-on-linux/.
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>


; Commands
; 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


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


cat /etc/os-release
; 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!


apt install ca-certificates curl
3.&nbsp;Das selbstsignierte Zertifikat muss akzeptiert werden. Anschließend sollte Folgendes angezeigt werden:
[[Datei:Aiosetup0.webp|600px|zentriert]]


sudo apt install ca-certificates curl
* 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.


sudo curl -fsSL https://download.docker.com/linux/debian/gpg -o /etc/apt/keyrings/docker.asc
4.&nbsp;''Open Nextcloud AIO login'' anklicken und das Passwort einfügen:
[[Datei:Aiosetup1.webp|600px|zentriert]]


sudo chmod a+r /etc/apt/keyrings/docker.asc
5.&nbsp;Anschließend sollte die AIO-Oberfläche angezeigt werden:
[[Datei:Aiosetup2.webp|600px|zentriert]]


sudo nano /etc/apt/sources.list.d/docker.list
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.)


sudo apt update
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]]


sudo apt install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
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]]


docker version
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]]


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
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.
* Next, you can open the AIO interface on https://localhost:8080 or https://the.servers.ip.address:8080.


; Why you should use an ip-address
12.&nbsp;Fertig: Die Umgebung ist eingerichtet und produktionsbereit.
:* It’s important to always use an ip-address if you access this port, and not a domain. Otherwise, you risk that HSTS might block access to it later!


* You need to accept the self-signed certificate. Then you should see this:
== Management ==


* Alternatively, if ports 80 and 8443 should be opened in your firewall/router and a domain is configured to point to your server, you can reach the AIO interface with a valid certificate using https://your-domain.com:8443.
Die Verwaltung von Nextcloud erfolgt über:
* AIO-Webpanel
* Verwaltung von Containern über das Webpanel oder die Docker-CLI
* Nextcloud OCC


* Click on “Open Nextcloud AIO login” and paste your password:
=== 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.


* Then, you should see the AIO interface:
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.


* Next, type in your public domain that you you’ve got before doing this guide. The interface should help you figure out the exact steps. (Set up DDNS for your domain to point to your public IP, port-forward at least ports 443/tcp, 3478/udp, and 3478/tcp to your Linux machine.)
=== Datenzugriff ===


* After you’ve set it up correctly, it should allow you to pass to the next step, where you can configure the wanted optional add-ons and the timezone, and click on “Start containers” to download and start them.
Volumes anzeigen:


* At this point, you should see a spinner that will take a while depending on your internet speed. It should take around 10 minutes or more.
docker volume ls | grep nextcloud_aio


* When all containers are downloaded and started, you will see this screen showing the containers still starting, which will do the first installation for you:
=== Container ===


* When everything is done, you should see this screen:
==== list ====
Alle AIO-Container anzeigen:


* Finally, you can now open your new Nextcloud instance and log in with the given admin credentials.
<syntaxhighlight lang="bash" highlight="1" copy line>
docker ps -a --filter "name=nextcloud-aio"
</syntaxhighlight>


* That’s it! Everything is set and ready for production.
==== 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>


; fail2ban nextcloud install
<syntaxhighlight lang="bash" highlight="1" copy line>
docker stop <id>
</syntaxhighlight>


sudo apt install fail2ban
==== pause ====


nano /etc/fail2ban/filter.d/nextcloud.conf
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.


==== 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 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 103: 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