NextCloud All In One Docker Installation | AIO

nextcloud

Voraussetztung:

Docker + Portainer + NGINX Proxy Manager

Bei mir ist das Debian 12 + Docker + Portainer als VM auf meinem lokalen Proxmox Server.

Die VM hat 80 GB Speicherplatz 6 GB RAM und 2 CPU Cores

Details dazu findet ihr hier:

Installieren von Nextcloud AIO

Zuerst erstellen wir einen neuen Installationsordner. Dieser kann frei gewählt werden, oder ihr nutzt schon eure vorhandene Ordnerstruktur.

In meine Fall erstelle ich eine neue Ordnerstruktur, in welche ich dann weitere Container installieren kann.

mkdir -p /docker/nextcloud

Hinweis:

-p dient dazu ganze Ordnerstrukturen an zu legen und eben nicht nur einen einzellnen Ordner.

Dann wechseln wir in das Verzeichnis und erstellen die docker-compose Datei:

cd /docker/nextcloud
nano docker-compose.yml

 

Kopiert nun folgenden Code in die Datei:

HTML
				version: "3.8"

volumes:
  nextcloud_aio_mastercontainer:
    name: nextcloud_aio_mastercontainer # This line is not allowed to be changed
services:
  nextcloud:
    image: nextcloud/all-in-one:latest
    restart: unless-stopped
    container_name: nextcloud-aio-mastercontainer
    volumes:
      - nextcloud_aio_mastercontainer:/mnt/docker-aio-config
      - /var/run/docker.sock:/var/run/docker.sock:ro
    ports:
      - 8188:8080
    environment:
     - APACHE_PORT=11000
     - APACHE_DISABLE_REWRITE_IP=1
     - NEXTCLOUD_TRUSTED_DOMAINS=aio-nextcloud.duckdns.org 192.168.178.192
     - TRUSTED_PROXIES=192.168.178.159
			

Wichtig sind hier!

Ports:

Die linke Seite könnt ihr frei Wählen. Das ist der öffentliche Container Port über welchen anschließend der Container/Webinterface erreichabr ist. Dieser Port darf nicht bereits vergeben sein bzw. von einem anderen Container genutzt werden. Der rechte Port bitte nicht ändern. Das ist der interne Container Port!

NEXTCLOUD_TRUSTED_DOMAINS:

Hier tragt ihr eure Domain/DynDNS und die IP eures Server auf dem das ganze läuft ein. Die NextCloud wird nur Verbindungsanfragen über diese erlauben.

In meinem Fall ist die lokale IP meines Server: 192.168.178.192 und das ganze soll anschließend erreichbar sein über meine DynDNS Domain aio-nextcloud.duckdns.org

https://www.duckdns.org/

TRUSTED_PROXIES:

Soll die NextCloud auch aus dem Internet erreichbar sein, braucht ihr eine Domain/DynDNS und einen Revers Proxy.
Als IP trag ihr die IP eures Proxys ein, damit NextCloud die akzeptiert und eben nicht blockt.

Da ich bei mir im Netzwerk eine zweite Docker Instanz laufen habe, auf welchem der Container NGINX Proxy Manager läuft, gebe ich die IP dieser Instanz an.

Ihr könnt euch den Proxa Manager auch direkt auf die selbe Instanz wie NextCloud installieren, dann ist bei euch die IP identisch mit der Server IP wie in NEXTCLOUD_TRUSTED_DOMAINS.

Bei mir wäre das stat 192.168.178.192 die IP auf welchem mein NGINX Proxy Manager läuft 192.168.178.159

https://nginxproxymanager.com/

Habt ihr eure Config angepasst, fügt diese in eure .yml Datei ein und speichert diese ab mit STRG + X:

Dann starten und installieren wir den Container:

docker-compose up -d

Hat alles geklappt, könnt ihr das Webinterface über https://ServerIP:deinPort aufrufen.

Bei mir: https://192.168.178.192:8188

Den Warnhinweis eures Browser akzeptiert ihr!

Installation der NextCloud

Kopiert das Einmalpasswort und speichert es ab!

Das ist etwas merkwürdig aber bei mir sieht das so aus: hacked cone shallot oxygen corral unlined pawing omission

Wichtig!

Ihr braucht nun eure Domain welche ihr in eurem NGINX Proxy Manager eingerichtet habt!

Nginx Proxy Manager Login:
Login
Proxy Host
SSL
Online
NextCloud Konfiguration:

Domain festlegen

Timezone festlegen:

Europe/Berlin

Auswählen was installiert werden soll:

Dann auf Download and start containers:

Das kann je nach Leistung des Server etwas dauern.

Hat alles geklappt, sieht das so aus inkl. admin und Passwort.

Logt euch ein und ändert als erstes euer Admin Passwort!


Zum Abschluss:

Talk:

Portfreigabe für Talk in eurem Router:

3478 TCP
3478 UDP

Sicherheits- & Einrichtungswarnungen

Gebt im Terminal folgenden Befehl ein:

sudo docker exec --user www-data nextcloud-aio-nextcloud php occ config:system:set default_phone_region --value=DE

DE steht hier für Deutschland. Gebt eure Länderkennung ein, falls abweichend.

Danach sollte das ganze so aussehen:

Portainer:

Quellen:

Dieser Beitrag hat 4 Kommentare

  1. David

    Hallo Michael, danke für den Überblick, sehr hilfreich!
    mein NGNX Proxy Manager läuft bei mir auf dem selben Server in einem anderen docker container. Dadurch hat das ganze die selbe lokale IP, aber einen anderen Port. Kann ich NEXTCLOUD_TRUSTED_DOMAINS auch den Port mit übergeben, sprich z.B. 192.168.178.192:1234

    1. Michael Perron

      Hallo David,
      Nein, das geht nicht (192.168.178.192:1234). Wenn NPM die selbe IP hat wie NextCloud ist das ja kein Problem.
      Trage einfach bei NEXTCLOUD_TRUSTED_DOMAINS und TRUSTED_PROXYS die selbe IP ein. Die korrekte Zuweisung erfolgt ja dann in NPM auf Port 11000 oder einen Port deiner Wahl. Dieser darf halt nicht bereits in Benutzung sein.

  2. Bjoern

    Hallo Michael,
    mich würde interessieren, warum du Portainer erst nach der Nextcloud installierst. Und nicht Nextcloud über die Stack-Funktion von Portainer installierst.

    Viele Grüße,
    Björn

    1. Michael Perron

      Hallo Björn,

      ich beschreibe hier den offiziellen Installationspfad wie es NextCloud selber vorgibt.
      Portainer ist hier optional, damit ich eine GUI für die Containerüberwachung habe, bzw. wenn ich neben NextCloud eventuell weitere Container laufen lassen möchte.
      NextCloud AIO wird ja dann auch nicht über Portainer gepflegt/updatet, sondern direkt aus NextCloud selber, mit einem eigenen Backend.

      Gruß
      Michael

Schreibe einen Kommentar