Ich habe bereits schon hier eine Anleitung geschrieben, wie ihr Nextcloud normal “von Hand” installieren könnt. Nun zeige ich euch, wie ihr dies in wenigen Minuten mit Docker realisiert. Traefik dient uns hier als Reverse Proxy und stellt später den Dienst verschlüsselt per TLS bereit.
Update
03.04.2022 | Kleinigkeiten angepasst. |
05.01.2022 | Anleitung für Nextcloud 23.0 angepasst. |
02.01.2022 | Formatierungsfehler der Docker Compose Datei behoben. |
19.08.2021 | Fehler mit Datenbank behoben. Danke an Peter. |
05.09.2020 | Integration mit Collabora Office hinzugefügt. |
04.09.2020 | DockerCompose angepasst, damit alles wieder funktioniert. |
26.04.2020 | Optimierungen (letztes Kapitel) hinzugefügt. |
29.03.2020 | Erstellung dieser Anleitung. |
Inhaltsverzeichnis
Wer Traefik noch nicht installiert hat, findet hier eine Anleitung, wie ihr dies schnell tun könnt.
Als Grundlage meiner Anleitung dient die offizielle Nextcloud Anleitung für Docker.
1. Ordner anlegen
Zuerst legen wir uns passende Ordner-Strukturen an.
mkdir -p /opt/containers/nextcloud/{database,app,daten}
2. Docker Compose anlegen
Nun legen wir die eigentliche Docker Datei an. Hierfür habe ich mir die offizielle Nextcloud Compose genommen und diese abgeändert für Traefik.
cd /opt/containers/nextcloud/ nano docker-compose.yml
Inhalt
version: '3.3' services: nextcloud-db: image: mariadb container_name: nextcloud-db command: --transaction-isolation=READ-COMMITTED --log-bin=ROW --innodb_read_only_compressed=OFF restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /opt/containers/nextcloud/database:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=test #SQL root Passwort eingeben - MYSQL_PASSWORD=test #SQL Benutzer Passwort eingeben - MYSQL_DATABASE=nextcloud #Datenbank Name - MYSQL_USER=nextcloud #SQL Nutzername - MYSQL_INITDB_SKIP_TZINFO=1 networks: - default nextcloud-redis: image: redis:alpine container_name: nextcloud-redis hostname: nextcloud-redis networks: - default restart: unless-stopped command: redis-server --requirepass test # Redis Passwort eingeben nextcloud-app: image: nextcloud container_name: nextcloud-app restart: unless-stopped depends_on: - nextcloud-db - nextcloud-redis environment: REDIS_HOST: nextcloud-redis REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben volumes: - /opt/containers/nextcloud/app:/var/www/html - /opt/containers/nextcloud/daten:/var/www/html/data labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud-app.entrypoints=http" - "traefik.http.routers.nextcloud-app.rule=Host(`nextcloud.euredomain.de`)" - "traefik.http.middlewares.nextcloud-app-https-redirect.redirectscheme.scheme=https" - "traefik.http.routers.nextcloud-app.middlewares=nextcloud-app-https-redirect" - "traefik.http.routers.nextcloud-app-secure.entrypoints=https" - "traefik.http.routers.nextcloud-app-secure.rule=Host(`nextcloud.euredomain.de`)" - "traefik.http.routers.nextcloud-app-secure.tls=true" - "traefik.http.routers.nextcloud-app-secure.tls.certresolver=http" - "traefik.http.routers.nextcloud-app-secure.service=nextcloud-app" - "traefik.http.services.nextcloud-app.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.nextcloud-app-secure.middlewares=nextcloud-dav,secHeaders@file" - "traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav" - "traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/" networks: - proxy - default networks: proxy: external: true
Notwendige Anpassungen:
- MySQL Root Passwort ändern
- MySQL User Kennwort ändern
- MySQL User für Nextcloud ändern
- 2x eure Domain bei Traefik anpassen (“nextcloud.euredomain.de”)
Diese Docker Compose Datei funktioniert nur, wenn ich euch mittels meiner Anleitung hier Traefik installiert habt. Sonst heißen einige Traefik Variablen wohl anders. Diese müsst ihr dann dementsprechend bei euch anpassen.
3. Nextcloud Server starten
Den Server startet ihr wie gewohnt mit folgendem Befehl:
docker-compose -f /opt/containers/nextcloud/docker-compose.yml up -d
4. Nextcloud einrichten
Nun müsst ihr auf “nextcloud.euredomain.de” gehen. Hier müsst ihr jetzt die Verbindung zur SQL Datenbank herstellen sowie einen Administrator für Nextcloud anlegen.
Zuerst klickt ihr auf “Speicher & Datenbank”.
Hier wählt ihr nun “MySQL/MariaDB” aus.
Jetzt solltet ihr folgendes sehen.
Gebt hier nun folgendes ein:
Administrator-Konto anlegen
- Benutzername: Wie euer Nextcloud Admin heißen soll
- Passwort: Wählt ein Passwort
Datenbank Verbindung herstellen
- Datenbank-Benutzer: Holt den Namen aus dem Docker Compose Datei
- Datenbank-Passwort: Holt das Passwort aus dem Docker Compose Datei
- Datenbank-Name: Haben wir in Docker Compose auf “nextcloud” festgelegt
- Datenbank-Host: Haben wir in Docker Compose auf “nextcloud-db” festgelegt
Wenn ihr anschließend auf “Installation abschließen” klickt, dauert es ca. 30 Sekunden, bis die Webseite neu lädt und ihr folgendes angezeigt bekommt. Hier könnt ihr auf “Abbrechen” klicken oder alle “Empfohlen Apps” direkt mit installieren lassen. Ich drücke immer abbrechen, da ihr die Apps auch später mit einem Klick installieren könnt.
Anschließend werdet ihr von diesem Startbildschirm begrüßt.
6. Optimierungen
Wenn ihr oben rechts auf eueren “Buchstaben”. Dann wählt ihr “Einstellungen” -> “Übersicht” aus. Nun solltet ihr feststellen, dass Nextcloud noch “Optimierungsbedarf” sieht. Dies wollen wir nun tun.
6.1 Standardtelefonregion festlegen
Dazu öffnet ihr folgende Datei:
nano /opt/containers/nextcloud/app/config/config.php
Fügt nun folgende Zeile hinzu:
'default_phone_region' => 'DE',
Dies setzt die Standardregion auf Deutschland. Beispiele dazu findet ihr hier. Nun könnt ihr die Datei wieder schließen.
6.2 Reverse Proxy Konfiguration
Als nächstes sagen wir Nextcloud, dass es unserem Traefik Reverse Proxy vertrauen kann. Dazu müssen wir dessen IP-Adresse herausfinden. Gebt folgenden Befehl ein:
docker inspect traefik
Wenn ihr nun ganz nach unten scrollt, seht ihr folgendes:
Bei mir ist die “IPAddress”: 172.18.0.2 und das “IPPrefixLen”: 16
Mit diesen beiden Werten öffnen wir nun die Nextcloud config.php.
nano /opt/containers/nextcloud/app/config/config.php
Hier fügt ihr nun folgende Zeile ein. Passt diese aber bitte an eure Konfiguration ein.
'trusted_proxies' => array ( 0 => '172.18.0.2/16', ),
6.3 Nextcloud komplett auf HTTPs umstellen
Um dies zu lösen öffnen wir wieder die Konfigurationsdatei:
nano /opt/containers/nextcloud/app/config/config.php
Hier ändert ihr nun folgende Zeile:
vorher: 'overwrite.cli.url' => 'http://nextcloud.euredomain.de', nachher: 'overwrite.cli.url' => 'https://nextcloud.euredomain.de',
Anschließend fügt ihr noch folgenden Zeilen hinzu:
'overwriteprotocol' => 'https', 'overwritehost' => 'nextcloud.euredomain.de',
Dies sollte dann so aussehen.
6.4 Container neu starten
Nun starten wir Nextcloud neu um sicherzugehen, dass alle Einstellungen übernommen werden. Nun sollte es so aussehen:
6.5 Collabora Office integrieren
Ich habe hier eine Anleitung geschrieben, wie ihr in wenigen Minuten Collabora Office mittels Docker installiert und in Nextcloud integrieren könnt. Collabora Office ermöglicht euch ein “komplettes online Office” innerhalb von Nextcloud.
7. Quellen
https://hub.docker.com/_/nextcloud/
132 Kommentare
Hallo,
danke für dieses tolle Tutorial. Ich habe Nextcloud damit endlich zum laufen gebracht.
Ich hätte noch eine Frage: Kann man irgendwie noch onlyoffice daneben installieren?
Also das Nextcloud auf ‘meine.ip.com/nextcloud/’ und onlyoffice auf ‘meine.ip.com/office/’ ist? Unterschiedliche Subdomains funktionieren in meinen Anwendungsfall leider nicht. Mit ‘rule=Host(`meine.ip.com`) && Path(`/nextcloud/`)’ hatte ich kein Glück.
Hallo Nils,
du kannst einfach Onlyoffice per “Apps” unter Nextcloud installieren.
Dann musst du dich um nichts weiteres kümmern. Bei der aktuellen Nextcloud Version wird es standardmäßig schon mitinstalliert.
LG
Christian
Hey Christian,
vielen Dank für die Beschreibung. Ich bin noch etwas am experimentieren mit NC, Docker und Co.. Würde daher gerne wissen, warum du dich für den Weg mit traefik entschieden hast und nicht für einen Weg mit letsencrypt / nginx-proxy, wie z. B. hier:
https://rtfm.co.ua/en/nextcloud-running-in-docker-compose-on-debian-with-lets-encrypt-ssl/
Dank & Gruß!
Pascal
Hallo Pascal,
ich habe diesen Artikel gelesen und so von Traefik erfahren:
https://www.heise.de/ratgeber/Eingehenden-HTTP-Verkehr-mit-Traefik-routen-4483710.html
Das Programm kann mehr, wird regelmäßig verbessert und von mehr als einer Person gewartet. Dies sind ein paar Vorteile.
LG
Christian
Moin Christian.
Erst einmal vielen Dank für Deine Anleitung. Eine tolle Arbeit. Ich habe mithilfe Deiner Anleitung Nextcloud installieren können.
Leider habe ich aber noch ein paar kleinere Probleme.
Egal was ich mache ich kriege cron nicht ans laufen. Ich vermute mal, dass das verwendete Image irgendeine Sicherheitseinstellung hat die die Ausführung von Crontab verhindert.
Vielleicht hast Du hier einen kleinen Tipp.
Des Weiteren habe ich keine Möglichkeit Nextcloud innerhalb des Containers zu updaten. Dem Grunde kein Problem, jedoch muss ich bei jedem Update des Image alle meine Einstellungen und Apps erneut installieren. Vielleicht hast Du für mich auch hierfür eine Lösung.
Vielen Dank
Christian
Moin Christian.
Ich habe noch eine kleine Nachfrage. Kannst Du mir vielleicht sagen in welchem Image von Nextcloud sudo bereits installiert ist. Ich benötige auch u.a. für Full Text Search um den Suchvorgang anzustoßen bzw. um die Funktionsfähigkeit zu testen. Bei meinem Image habe ich leider keine sudo Rechte.
Vielen Dank im Voraus.
Christian
Hi Christian,
das cron Problem habe ich gelöst, indem ich auf meinem Host-System im Crontab (sudo crontab -e) folgenden job hinterlegt hab:
*/5 * * * * docker exec –user www-data nextcloud-app php -f cron.php >/dev/null 2>&1
(hier gilt es natürlich ggf. den Containernamen anzupassen) Diese Zeile führt alle 5min die cron.php von Nextcloud aus.
Nextcloud updaten kannst du durch das erneute pullen, sprich:
docker-compose down
docker-compose pull
docker-compose up -d
Wenn das nicht klappt musst du evtl. in der docker-compose.yml bei image hinter nextcloud ein :latest ergänzen.
Das SVG-Problem löst man by the way durch eine Datei namens Dockerfile (ohne Dateiendung) im Nextcloud-Verzeichnis mit folgendem Inhalt:
FROM nextcloud:latest
RUN apt update && apt install libmagickcore-6.q16-6-extra -y
welche man dann in der docker-compose.yml entsprechend einbindet:
[…]
nextcloud-app:
image: nextcloud:latest
container_name: nextcloud-app
build: ./ <——-
[…]
Nach jedem Image-Update muss man dann den Container stoppen, builden und neu starten:
docker-compose down
docker-compose build (dauert ne weile)
docker-compose up -d
Wenn du eh auf docker-compose setzt, dann kann man auch den Healthcheck von Docker nutzen, um Cron aufzurufen. Einfach die Definition des Nextcloud-Containers wie folgt ergänzen:
healthcheck:
test: [“CMD”, “curl”, “-f”, “http://localhost/cron.php”]
interval: 30s
timeout: 15s
retries: 2
You always use manual steps instead of the appropriate env vars of the containers to skip them (e.g. you can configure the database connection via env). I think that’s bad practice.
Hi Cristian,
1000 Dank für die super Anleitung!
Die erste die ich gefunden habe die auf Anhieb funktioniert und auch noch eine A+ Bewertung im scan schafft.
Grüße
Enrico
Hallo Enrico,
danke 🙂
Freut mich, dass meine Anleitung geklappt hat.
LG
Christian
Hallo Christian,
hast Du evtl. eine Idee wie man mit diesem Setup unter Nextcloud 19 collabora online mit dem eingebauten CODE-Server ans laufen bekommt?
Viele Grüße
Enrico
Habe ebenfalls das Problem.
Scheint als müsste man “|.+\/richdocumentscode\/prox” als location ergänzen. Leider ist es überall nur für NGINX beschrieben. Sowohl von den CODE Leuten: https://www.collaboraoffice.com/online/connecting-collabora-online-built-in-code-server-with-nginx/
Und auch in der Nextcloud Doku: https://docs.nextcloud.com/server/19/Nextcloud_Server_Administration_Manual.pdf
Leider weiß ich nicht, wie man das mit Traefik anstellt. 🙁
Hallo Enrico,
das habe ich noch nicht versucht.
Daher kann ich leider nichts dazu sagen.
LG
Christian
Hallo,
ich habe meine Anleitung erweitert. Nun ist beschrieben, wie man Collabora Office Online installiert und in Nextcloud integriert.
LG
Christian
Hallo Christian,
erstmal danke für deine super Anleitungen.
Ich bin jedoch über einige Syntax Probleme gestolpert. Es fehlen teilweise doppelte Striche.
So z.B. “docker exec – user www-data nextcloud_nextcloud-app_1 php occ db:convert-filecache-bigint”
Korrekterweise müsste es jedoch “docker exec –-user www-data …” heißen.
Das gleiche Problem hatte ich auch in der docker-compose im command Teil von MariaDB.
Gruß
Thomas
Hallo,
ich habe das Problem gelöst. Es wurde die Funktion “wptexturize” dauerhaft ausgeführt, welche die Syntax verändert. Dies geschah erst durch ein Plugin Update, weshalb es mir nicht direkt auffiel. Jetzt sollte alles wieder funktionieren 🙂
LG
Christian
Hallo Christian,
die doppelten Bindestriche scheinen wieder zu fehlen und in einen Gedankenstrich umgewandelt zu werden. Aufgefallen ist mir das im command-Teil der Datenbank in der docker-compose.
Danke für die ansonsten tolle Anleitung!
Viele Grüße
Daniel
Hallo Daniel,
danke für die Info. Es lag an einem anderen WordPress Plugin.
Jetzt sollte alles wieder klappen.
Viele Grüße
Christian
Hallo Christian,
vielen Dank für deine Anleitungen. Bei Mailcow und Portainer haben die auch wunderbar funktioniert. Nur Nextcloud will jetzt nicht 🙁 Ich erhalte immer einen Error 404 wenn ich versuche die Seite für den Setup zu öffnen. Irgendwelche Ideen?
Gruß Basti
Hab den Fehler gefunden, hatte mich bei dem Host vertippt. Jetzt scheint alles zu gehen. Vielen Dank für deine Anleitungen!
Freut mich, dass dir meine Anleitungen geholfen haben 🙂
Hallo Basti,
wenn du Portainer laufen hast, dann kannst du ja mal in den Container schauen und das Log auslesen. Dort steht eigentlich immer ziemlich genau, was das Problem ist.
LG
Christian
Hallo
Habe ein Problem
Error while trying to create admin user: Failed to connect to the database: An exception occurred in driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known
das stimmt.
ich habe nun das problem mittels einer anderen Datenbank behoben. nehme nun anstatt der “mysqli” “mysql:5.7”
nextcloud-db:
image: mysql:5.7
restart: unless-stopped
environment:
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud ## Hier selben Benutzer eingeben ##
MYSQL_PASSWORD: password ## Hier selbes Passwort eingeben ##
MYSQL_ROOT_PASSWORD: rootpassword
volumes:
– /opt/containers/nextcloud/database:/var/lib/mysql
networks:
– default
ich meine “mariadb”
Habe das selbe Problem wie oben beschrieben. Mysql statt maridb hat leider auch nicht funktioniert…
mariadb:10.3.22
Hi!
Ich bekomme leider die gleiche Fehlermeldung trotz mariadb:10.3.22.
Hast du da eine Idee wie ich das hinbekomme?
Gruß Bert
Wenn ich per Portainer in das log von mariadb schaue kommt folgende Fehlermeldung.
/usr/local/bin/docker-entrypoint.sh: line 340: exec: –: not found
Vielleicht hilft das bei der Fehlersuche.
Gruß Bert
Hallo,
ich habe das Problem gelöst. Es wurde die Funktion “wptexturize” dauerhaft ausgeführt, welche die Syntax verändert. Dies geschah erst durch ein Plugin Update, weshalb es mir nicht direkt auffiel. Jetzt sollte alles wieder funktionieren 🙂
LG
Christian
Guten Tag Christian,
Vielen Dank für deine Anleitung!
Ich hätte noch eine Frage und zwar habe ich in Proxmox ein Festplatten RAID gemountet. Weißt Du wie ich dieses in Nextcloud integrieren kann?
Damit würdest du mir sehr weiterhelfen.
Vielen Dank
Hallo, Herzlichen dank für die Tolle Anleitung.
Bei der Installation muss die mariadb berücksichtigt werden, da die neuesten versionen im moment nicht mehr kompatibel ist. Ich habe “mariadb:10.3.22” genommen.
Ein problem habe ich, und weiss aber nicht an was es liegt.
Ich kann mich mit der Nexcloud app und software für den PC mit dem Server nicht verbinden. Er hängt immer beim Beim Kontrollzugriff übern Browser siehe bild: https://i.imgur.com/wsjMxAY.png . Kennst du das?
Sonnst hat wirklich alles super geklappt. Herzlichen Dank 🙂
Hallo,
Vielen Dank. Es hat alles geklappt. Ich habe noch eine Frage. Ich habe zu wenig Speicher vergeben….kann man das erweitern für Nextcloud Daten?
Hallo peete,
zu Beginn der Installation legst du ja einen Pfad für die Dateien fest.
Dies kannst du später jederzeit anpassen.
LG
Christian
Danke, das ist wirklich eine übersichtliche Anleitung. Ich komme jedoch beim Starten des Containers nicht weiter, da die gleiche Fehlermeldung, wie bei Bert im Log auftritt:
/usr/local/bin/docker-entrypoint.sh: line 340: exec: –: not found
Hat jemand eine Lösung?
Hallo,
ich habe das Problem gelöst. Es wurde die Funktion “wptexturize” dauerhaft ausgeführt, welche die Syntax verändert. Dies geschah erst durch ein Plugin Update, weshalb es mir nicht direkt auffiel. Jetzt sollte alles wieder funktionieren 🙂
LG
Christian
Hier ist meine docker-compose.yml mit der ich Ohne Problem laut dieser anleitung und paar Veränderungen Nextcloud ohne Probleme instalieren kann:
version: ‘3.3’
services:
nextcloud-db:
image: mariadb:10.3.22
command: –transaction-isolation=READ-COMMITTED –binlog-format=ROW
restart: unless-stopped
volumes:
– /opt/containers/nextcloud/database:/var/lib/mysql
environment:
– MYSQL_ROOT_PASSWORD=xxx #### Hier Passwort eingeben ####
– MYSQL_PASSWORD=xxx #### Hier Passwort eingeben ####
– MYSQL_DATABASE=nextcloud
– MYSQL_USER=nextcloud #### Hier Nutzer eingeben ####
– MYSQL_INITDB_SKIP_TZINFO=1
networks:
– default
nextcloud-app:
image: nextcloud:19.0.2
restart: unless-stopped
volumes:
– /opt/containers/nextcloud/app:/var/www/html
– /opt/containers/nextcloud/data:/var/www/data
labels:
– “traefik.enable=true”
– “traefik.http.routers.nextcloud-app.entrypoints=http”
– “traefik.http.routers.nextcloud-app.rule=Host(`cloud.xxx.de`)”
– “traefik.http.middlewares.nextcloud-app-https-redirect.redirectscheme.scheme=https”
– “traefik.http.routers.nextcloud-app.middlewares=nextcloud-app-https-redirect”
– “traefik.http.routers.nextcloud-app-secure.entrypoints=https”
– “traefik.http.routers.nextcloud-app-secure.rule=Host(`cloud.xxx.de`)”
– “traefik.http.routers.nextcloud-app-secure.tls=true”
– “traefik.http.routers.nextcloud-app-secure.tls.certresolver=hetzner”
– “traefik.http.routers.nextcloud-app-secure.service=nextcloud-app”
– “traefik.http.services.nextcloud-app.loadbalancer.server.port=80”
– “traefik.docker.network=proxy”
– “traefik.http.routers.nextcloud-app-secure.middlewares=nextcloud-dav,secHeaders@file”
– “traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav”
– “traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/”
networks:
– proxy
– default
networks:
proxy:
external: true
Hier ist meine docker-compose.yml mit der ich Ohne Problem laut dieser anleitung und paar Veränderungen Nextcloud ohne Probleme instalieren kann:
version: ‘3.3’
services:
nextcloud-db:
image: mariadb:10.3.22
command: –transaction-isolation=READ-COMMITTED –binlog-format=ROW
restart: unless-stopped
volumes:
– /opt/containers/nextcloud/database:/var/lib/mysql
environment:
– MYSQL_ROOT_PASSWORD=xxx #### Hier Passwort eingeben ####
– MYSQL_PASSWORD=xxx #### Hier Passwort eingeben ####
– MYSQL_DATABASE=nextcloud
– MYSQL_USER=nextcloud #### Hier Nutzer eingeben ####
– MYSQL_INITDB_SKIP_TZINFO=1
networks:
– default
nextcloud-app:
image: nextcloud:19.0.2
restart: unless-stopped
volumes:
– /opt/containers/nextcloud/app:/var/www/html
– /opt/containers/nextcloud/data:/var/www/data
labels:
– “traefik.enable=true”
– “traefik.http.routers.nextcloud-app.entrypoints=http”
– “traefik.http.routers.nextcloud-app.rule=Host(`cloud.xxx.de`)”
– “traefik.http.middlewares.nextcloud-app-https-redirect.redirectscheme.scheme=https”
– “traefik.http.routers.nextcloud-app.middlewares=nextcloud-app-https-redirect”
– “traefik.http.routers.nextcloud-app-secure.entrypoints=https”
– “traefik.http.routers.nextcloud-app-secure.rule=Host(`cloud.xxx.de`)”
– “traefik.http.routers.nextcloud-app-secure.tls=true”
– “traefik.http.routers.nextcloud-app-secure.tls.certresolver=hetzner”
– “traefik.http.routers.nextcloud-app-secure.service=nextcloud-app”
– “traefik.http.services.nextcloud-app.loadbalancer.server.port=80”
– “traefik.docker.network=proxy”
– “traefik.http.routers.nextcloud-app-secure.middlewares=nextcloud-dav,secHeaders@file”
– “traefik.http.middlewares.nextcloud-dav.replacepathregex.regex=^/.well-known/ca(l|rd)dav”
– “traefik.http.middlewares.nextcloud-dav.replacepathregex.replacement=/remote.php/dav/”
networks:
– proxy
– default
networks:
proxy:
external: true
Hallo zusammen,
ich komme leider auch nicht weiter bei dem Thema. Habe zum Testen sogar alles bis auf den Hostnamen belassen:
Attaching to nextcloud-redis, nextcloud-db, nextcloud-app
nextcloud-app | Configuring Redis as session handler
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-redis | 1:C 11 Sep 2020 10:14:07.718 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-app | Initializing nextcloud 19.0.3.1 …
nextcloud-redis exited with code 1
nextcloud-db exited with code 127
nextcloud-redis | 1:C 11 Sep 2020 10:14:07.718 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-redis | 1:C 11 Sep 2020 10:14:09.379 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-redis | 1:C 11 Sep 2020 10:14:11.121 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-redis | 1:C 11 Sep 2020 10:14:12.795 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-redis exited with code 1
nextcloud-db exited with code 127
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-db | /usr/local/bin/docker-entrypoint.sh: line 353: exec: –: not found
nextcloud-redis | 1:C 11 Sep 2020 10:14:15.103 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-db exited with code 127
nextcloud-redis exited with code 1
nextcloud-app | Initializing finished
nextcloud-app | New nextcloud instance
nextcloud-app | AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 192.168.0.4. Set the ‘ServerName’ directive globally to suppress this message
nextcloud-app | AH00558: apache2: Could not reliably determine the server’s fully qualified domain name, using 192.168.0.4. Set the ‘ServerName’ directive globally to suppress this message
nextcloud-app | [Fri Sep 11 10:14:16.704796 2020] [mpm_prefork:notice] [pid 1] AH00163: Apache/2.4.38 (Debian) PHP/7.4.10 configured — resuming normal operations
nextcloud-app | [Fri Sep 11 10:14:16.704916 2020] [core:notice] [pid 1] AH00094: Command line: ‘apache2 -D FOREGROUND’
nextcloud-redis exited with code 1
nextcloud-db exited with code 127
nextcloud-redis exited with code 1
nextcloud-db exited with code 127
nextcloud-redis | 1:C 11 Sep 2020 10:14:28.919 # Fatal error, can’t open config file ‘–’: No such file or directory
nextcloud-redis exited with code 1
nextcloud-db exited with code 127
^CGracefully stopping… (press Ctrl+C again to force)
Wie Thomas (weiter oben) schon sagt: Es gibt ne Menge von Typos
try:
services:
nextcloud-db:
…
command: –-transaction-isolation=READ-COMMITTED -–log-bin=ROW
nextcloud-redis:
….
command: redis-server –-requirepass test
super vielen Dank, nachdem ich die Container nochmals gelöscht habe, hat es funktioniert.
Hi,
leider funktioniert es bei mir immer noch nicht 🙁
Immer noch der selbe Fehler. Mir ist aufgefallen, dass die Mariadb als Status in den Portainer Infos imme auf “restarting” steht.
Hier mal mein docker-compose.yml.
https://pastebin.com/Q2jeCFh9
Gibt es eigentlich eine Einschränkung bezüglich des mariadb Passwortes? Großbuchstaben, Zahlen und Sonderzeichen?
Gruß Bert
Hi nochmal,
ich habe es endlich gelöst!
es war wie Sebastian sagte die zwei Zeilen:
command: –-transaction-isolation=READ-COMMITTED -–log-bin=ROW
command: redis-server –-requirepass test
aber, wenn ich die hier aus den Kommentaren kopiert habe ist statt zwei kurzen Bindestrichen (–) ein langer und ein kurzer (-–)
Richtig ist:
command: –transaction-isolation=READ-COMMITTED –log-bin=ROW
command: redis-server –requirepass test
Danke an alle für die super Hilfe!!!!!
Hier noch die funktionierende docker-compose.yml
https://pastebin.com/nuhT22S0
Gruß Bert
Hallo Bert
Leider funktioniert bei mir die Erstellung des Admin Kontos immer noch nicht.
Welchen Hostname verwendest du?
Viele Grüße und danke im vorraus
Christoph
leck mich am arsch 😀 danke dir Bert!!
command: –transaction-isolation=READ-COMMITTED –log-bin=ROW
das war der fehler! man braucht zwei “–” Striche!
@Christoph nimm die “pastebin” von Bert und geh alles genau durch! Achte auf allfällige Leerzeichen und doppelte Bindestriche!
und dann einfach deine Daten vom SQL Server eingeben 🙂
danke nochmal Bert !! und natürlich auch an Christian!! Spitzenleistung
edit:
Hier bei den Kommentaren auch wenn ich zwei Bindestriche mache, kommt schlussendlich nur einer raus!
command: – -transaction-isolation=READ-COMMITTED – -log-bin=ROW (ohne Leerzeichen zischen den “- -“
Hi,
erstmal Danke für die Anleitung.
Nur habe ich ein Problem, was ich in den letzten zwei Stunden nicht zu lösen vermochte:
Bis Punkt 3 ist alles prima und die Container starten auch alle.
Aber ich bekomme bei HTTP-Aufruf der Nextcloud zwar noch einen
Redirect auf HTTPS und auch ein gültiges Lets-Encrypt Zertifikat ausgeliefert,
aber anstelle der Config-Webseite nur:
> 404 page not found
Die einzige Fehlermeldung die ich finden konnte war im traefik:
> HTTP-Router / https / nextcloud-app-secure@docker / nextcloud-app
> Router-Details:
> RULE Host(`nc.MEINSERVER.de`)
> NAME nextcloud-app-secure@docker
> ENTRYPOINTS https
> SERVICE nextcloud-app
> ERRORS middleware “secHeaders@file” does not exist
Ich komme hier nicht weiter, hast Du Tipps?
Hallo,
die Fehlermeldung kommt daher, dass du diese Anleitung noch nicht gemacht hast. Danach sollte die Middleware “secHeaders@file” existieren.
https://goneuland.de/traefik-v2-https-verschluesselung-sicherheit-verbessern/
LG
Christian
Hallo hätte eine Frage, ich habe oben die yml Datei übernommen und angepasst, aber bekomme dann folgende Fehlermeldung:
pi@raspberrypi:/opt/containers/nextcloud $ sudo docker-compose -f /opt/containers/nextcloud/docker-compose.yml up -d
Creating network “nextcloud_default” with the default driver
Pulling nextcloud-db (mariadb:)…
latest: Pulling from library/mariadb
ERROR: no matching manifest for linux/arm/v7 in the manifest list entries
Was läuft bei mir falsch?
Habe es mittlerweile geschafft, war unter raspberry pi 4 mit 32 bit System unterwegs. Habe jetzt auf ubuntu server 64 bit umgestellt, dann habe ich es mit einigen weiteren Tutorials hinbbekommen.
Hallo zusammen,
ich stehe vor gleichem Problem wie Thomas – habe auf meinem Raspi 4 Raspberry OS Lite installiert. Gibt es keine Möglichkeit es auch hier zum laufen zu bekommen?
Danke.
Hi Marc,
ja, ich habe es auf meinem Raspi4 4GB mit Pios 64 bit am Laufen. Damit ist auch die 4-GB-Hürde für Files behoben.
Die Anleitung hat ohne echte Anpassungen unter Berücksichtigung der Security-Anleitung prima funktioniert. Security-Check bei SSL-Labs kommt mit A+ raus:-)
Grüße,
Thomas
Hi,
vielen vielen Dank! Die Anleitung ist großartig. Ich habe darauf aufbauend eine eigene Version erstellt, in der noch Monitoring und Logging Features enhalten sind. Dafür habe ich Portainer für Container-Administration, Grafana für Dashboards und Prometheus als Datensammler in einem extra docker-compose file eingerichtet und alles miteinander verknüpft 🙂
Die Umgebungsvariablen habe ich in eine extra Datei ausgelagert, die ich im “compose up” mit angebe. Zur Vereinfachung habe ich mir ein Start-Skript geschrieben.
Meine Doku und die Files liegen hier:
https://github.com/erikbarz/NextcloudDockerComposeGrafana
Viele Grüße
Erik
Grüß dich,
vorab: Danke für das Tutorial. Habe traefik und nextcloud im docker laufen, funktioniert eigentlich perfekt. – Nur ein Kleinigkeit kriege ich nicht hin:
Wenn ich von außerhalb meines Netzwerks auf den Server zugreife funktioniert alles.
Da mein Router aber kein NAT Loopback unterstützt muss ich in meinem Netzwerk die lokale IP des Servers ansteuern (und kann nicht den DDNS aufrufen). Wenn ich aber die lokale IP eingebe erhalte ich nur eine weiße Seite mit “404 page not found”.
Hoffe du kannst mir hier weiterhelfen!
Hallo,
ich bekomme folgenden Fehler was mache ich falsch?
the router nextcloud-app-secure@docker uses a non-existent resolver: http
Ich wollte noch dazu sagen, das ich Traefik schon nutze für Mailcow und dort alles läuft ich verstehe nur nicht wie ich jetzt den certdumper für nextcloud nutzen muss oder wie ich das nun mache?
Du hast wahrscheinlich traefik selbst konfiguriert oder schon am Laufen gehabt und der certResolver heißt bei Dir anders. Einfach so setzen wie in der traefik.yml definiert.
Hallo,
vielen Dank für die super Anleitung – fkt. alles wunderbar. Hast du Christian bzw. die crowd eine Idee wie man eine Scan to Nextcloud bewerkstelligen könnte – FTP?
Vielen Dank für eure Ideen.
Wenn der Scanner scan-to-WebDAV unterstützt, kann er über diese Schnittstelle direkt in die Nextcloud schreiben.
Wenn er “nur” scan-2-ftp kann (wie der Brother ADS-1700W), kannst Du ihn in einen FTP-Ordner scannen lassen und den als externen Speicher in die Nextcloud einbinden. Das funktioniert gut und schnell.
Guten Abend,
vielen Dank für diese Anleitung. Bisher passt eigentlich alles bis auf folgendes:
Mein log wird massiv von failed login attempts meines Nutzers gespamt. Das gleiche gilt für jeden neu erstellten Nutzer. Die IP ist natürlich dann die 172.20.0.2. Ist etwas nervig, wenn man bei jedem Login die Nachricht bekommt “We have detected multiple invalid login attempts from your IP. Therefore your next login is throttled up to 30 seconds.”. Irgendwelche Ideen?
Danke schonmal im Vorraus 🙂
Okay, es war mein Android-Smartphone, welches sich immer wieder probiert hat zu connecten.
Christian, hast du eine Idee, wie man denn am geschicktesten die Real-IP forwarded, sodass Sie im Log erscheint und nicht nur das docker gateway?
MfG Felix
Heyho Christian,
estmal coole Website und super tutorials.
Wie viele vor mir habe ich denoch ein Problem, dass ich mir nicht erklären kann.
Ich habe nach deiner Anleitung Traefik installiert und danach direkt den nextcloud container… Dann viel mir auf, dass die middleware secHeader@file nicht existiert. Also habe ich dein turorial befolgt, wie man die tls sicherheit erhöhen kann und somit auch dieser Fehler behoben werden sollte.
Ich bin den “code” jz an 3 verschiedenen Tagen 5 mal durchgegangen, um festzustellen, dass ich KEINE Schreibfehler habe und alles richtig befolgt habe. Nur jz bekomme ich wie ein Nutzer vor mir einen 404 Error auf allen Seiten (bzw. Sie sind nicht erreichbar). Da die middleware secHeader@file aber eh nur für ein verbesserte TLS Sicherheit zuständig war( so wie ich das verstanden habe). Habe ich den label eintrag in der traefik compose.yml , der auf die dynamic.yml verweißt gelöscht. Dann funktionierte traefik wieder. Bei der nextcloud compose.yml habe ich die Zeile, die auf die middleware verweißt gelöscht. und dann funktionierte Nextcloud. Soweit zu dem Werdegang, jz das eigentliche Problem.
Meine traefik/Nextcloud/Portainer Domains sind alle bei Strato gehostet und sind als Subdomains angemeldet. Ich habe einen A-Record hinterlegt, der auch meinen Server verweißt (bei allen drei dieselbe IP).
Im Heimnetzwerk funktioniert alles super, ich gebe traefik.domain.de ein bekomme das traefik dashboard. Bei Nextcloud ebenso. Aber sobald ich versuche meine Cloud von außen zu errreichen bekomme ich nur einen “Server braucht zu lange zum Antworten” ; Oder einfach nur einen Weißen Bildschirm ; oder ein “Server nicht erreichbar, sind Sie sicher aller richtig geschrieben zu haben”…
Hat das mit der fehlenden Middleware zu tun?
Ich weiß echt nichtmehr weiter–
MfG Joni
Vielen Dank für die Anleitung. Ich habe Traefik auch ans Laufen bekommen und kann via Internet darauf zu greifen. Beim Versuch, den Nextcloud-Container zu installieren, also oben bei Schritt 3.) bekomme ich nur folgende Fehlermeldung:
ERROR: Cannot locate specified Dockerfile: Dockerfile
Was kann ich tun?
Vielen Dank für die Anleitung. Ich habe Traefik auch ans Laufen bekommen und kann via Internet darauf zu greifen. Beim Versuch, den Nextcloud-Container zu installieren, also oben bei Schritt 3.) bekomme ich am Ende der Download- und Installationsnachrichten nur folgende Fehlermeldung:
ERROR: Cannot locate specified Dockerfile: Dockerfile
Was kann ich tun?
Hallo Jürgen,
ich habe gesehen, dass du deinen Kommentar 1:1 auch hier geschrieben hast: https://goneuland.de/nextcloud-server-mit-elasticsearch-collabora-office-docker-compose-und-traefik-installieren/#comments
Die beiden Anleitungen darfst du NICHT mischen.
Am einfachsten ist es, wenn du den kompletten Ordner /nextcloud löschst und dann einer Anleitung folgst.
LG
Christian
“Problem” gelöst! Sorry für soviel Unsinn. Ich habe mich zwischen “alter” und “neuer” Anleitung verirrt.
Jetzt läuft alles bestens !
Hallo,
vielen Dank für die Anleitungen, (abgesehen von Portainer) war es ein schneller und problemloser Durchlauf. Wurde das Ganze auf echter Hardware oder auf einem V-Server installiert ?
Ich habe ein merkwürdiges Performance-Problem: Nach der reinen Grundinstallation (Docker+DockerCompose+Treafik+Nextcloud+mariaDB+Redis) inkl. den hier vorgeschlagenen Optimierungen dauert es rund 45-60 Sekunde im Webinterface von Nextcloud auch nur einen Ordner zu öffnen. Laut HTOP ist die RAM-Nutzung dabei bei ~500MB/16GB und die CPU(s)-Auslastung geht nicht über 30%.
Vorher lief auf dem vServer eine direkte Installation von Nextcloud+mariaDB+Redis (allerdings noch Nextcloud v19.irgendwas), da konnte ich so ein Verhalten nicht beobachten.
Könnte es sein, dass die Kombination Docker und NC auf einem V-Server einfach ungünstig ist ?
Hallo,
freut mich, dass meine Anleitungen soweit bei dir funktioniert haben.
Was lief denn bei Portainer nicht?
Ich habe bei mir auch alles auf einem Server laufen und habe jetzt keine Performance Probleme.
Bei Nextcloud hatte ich jedoch auch mal ein Problem, dass der Login so langsam war. Damit habe ich es bei mir gelöst: https://goneuland.de/nextcloud-login-sehr-langsam/
LG
Christian
Hi nochmal,
danke für die schnelle Rückmeldung, aber ich hab zu früh gemeckert ;o) Es lag am Collabora-Plugin – ich hatte bei der Ersteinrichtung den Haken für die Installation der App-Vorschläge nicht deaktiviert, und dadurch auch die Installation des Collabora-Plugins ausgelöst. Da Collabora bei mir gerade nicht läuft (hab wahrscheinlich einen Fehler gemacht) habe ich das Plugin erstmal deaktiviert, und seitdem schnurrt Nextcloud wie ein Kätzchen.
Bei Portainer hatte ich das “SSL_ERROR_INTERNAL_ERROR_ALERT”, hat sich aber inzwischen auch erledigt > Schreibfehler bei den Domains *D’oh*
Freut mich, dass nun alles klappt 🙂
Collabora sollte mit dieser Anleitung funktionieren: https://goneuland.de/collabora-office-online-mit-docker-compose-und-traefik-installieren/
LG
Christian
Habe jetzt erst gemerkt, dass du mir gestern Abend noch was gespendet hast. Vielen Dank dafür 🙂
LG
Christian
Hallo Christian,
vielen Dank für die super Anleitung.
Ich habe mehrfach versucht ein Backup von meinem “normalen” nextcloud einzuspielen, ohne Erfolg. Jetzt habe ich mit “BernieO / calcardbackup” alles wichtige importiert.
Zu meiner Frage; für einen vollständigen Server benötige ich noch einen samba server. Leider klappt das nicht :(. Ich habe verschiedene container versucht, mit verschiedensten Anpassungen, doch nichts hat geholfen.
Kannst du mir oder jemand anderes vielleicht, helfen.
Guten Abend,
also die Anleitungen sind top, vielen vielen Dank dafür. Ich habe mich die letzten Tage mit den ganzen docker und docker-compose Sachen beschäftigt. Dank deiner Anleitung habe ich traefik gut ans laufen bekommen 🙂
Nachdem ich jetzt erfolgreich mein cloudflare DNS und bitwarden einegbunden habe , wollte ich mich an die Nextcloud wagen.
Wie ich gemerkt habe hast du einen Linux Server, daher habe ich das MariaDB Paket abgeändert und ich bekam ein ‘running’ von docker zurück.
Leider gibt mir traefik ein ‘middleware “secHeaders@file” does not exist´’ zurück, die Seite kann ich aufrufen, bekomme aber einen 404 Error zurück. Da ich absolut keine Ahnung habe was dem fehlt wollte ich hier mal Nachfragen. Google gab mir nicht so richtig hinweise darauf.
Ach mein System: ich benutze einen RaspberryPI 4 mit 4GB.
Ich hoffe mir kann hier geholfen werden.
Hallo Marc,
freut mich, dass dir meine Anleitungen gefallen 🙂
Du musst diese Anleitung hier noch machen: https://goneuland.de/traefik-v2-https-verschluesselung-sicherheit-verbessern/
Dann ist der Fehler weg 😉
LG
Christian
Guten Morgen Christian,
danke für deine schnelle Antwort, ich habe das gerade getestet und es hat mit traefik funktioniert, danke vielmals.
Als ich das zum laufen bekommen habe, habe ich mein Bitwarden auch angepasst (die middleware konnte ich in der compose die ich habe einfach herauslöschen und es hat geklappt 🙂 ) und es hat gestartet jetzt bekomme ich aber einen 525 SSL Handshake Fehler in traefik bekomme ich den Fehler
ACCESS CONTROL ALLOW CREDENTIALS false
Hast du eine Idee ? … Entschuldige meine Unkenntnis xD
Gruß
Marc
Hi,
seit einigen Tagen bekomme ich im Dashboard => Einstellung etc.. folgende Meldung:#
“Einige Aufträge wurden seit Vor 7 Tagen nicht mehr ausgeführt. Bitte erwäge die Umstellung auf System-Cron”
Weiss jemand warum dies erscheint, und somit ist auch Nextcloud relativ langsam.
Hallo,
ich habe eine Möglichkeit gefunden. Bei mir läuft das ganze allerdings auf einem debian server. Sollte aber wahrscheinlich auf jedem Linux System so laufen. Im Nextcloud muss zunächst als admin unter den Grundeinstellungen auf “Cron” umgestellt werden. Dann schaltet ihr euch per putty auf den Host und testet erstmal manuell ob ihr einen Cronjob ausführen könnt:
docker exec -u www-data nextcloud-app php cron.php
“nextcloud-app” müsst ihr durch euern docker Namen von der nextcloud ersetzen. Ihr könnt den Namen durch den Befehl docker ps herausfinden.
Wenn das geklappt hat gebt ihr folgenden Befehl ein:
crontab -e
und in diese Datei gebt ihr ganz unten folgendes ein:
*/5 * * * * docker exec -u www-data nextcloud-app php cron.php
Wobei ihr “nextcloud-app” wieder durch euren docker Namen ersetzen müsst und die datei speichern.
Damit wird alle 5 Minuten der Cronjob ausgeführt.
Ich habe anschließend noch folgendes eingegeben. Bin mir aber nicht sicher ob das notwendig ist:
service cron start
Ich hoffe das hilft euch weiter.
Gruß
Edgar
Hallo Edgar,
Danke jetzt funktionierts wieder mit “cron”.
Diese Werte kann man ja in der php.ini ändern oder, aber wo finde ich diese ?
Version: 7.4.14
Arbeitspeicher-Grenzwert: 512 MB
Maximale Ausführungszeit: 3600
Maximale Größe zum Hochladen: 2 MB
Ich habe die letzten Tage sehr viel Zeit damit verbracht Nextcloud bei mir zum laufen zu bekommen. Ich bin dabei aus meiner Sicht so ziemlich alle Anleitungen und Videos im Internet durchgegangen. Keine einzige funktioniert und die neuesten Kommentare bestätigen das auch. Aber ich kann Stand Heute sagen, dass diese Anleitung hier 100% funktioniert sofern man sich akkurat an die von Daniel beschriebenen Schritte hält.
Vielen Dank für diese TOP Anleitung. Ich hoffe, dass meine Nextcloud nun möglichst lange hält und nicht irgendein update von mariadb, traefik, docker oder nextcloud das ganze konstrukt zerschießt 🙂
Oder wenn doch, dass Christian die passende Lösung parat hat.
Gruß
Dem widerspreche ich. 🙂 Die Anleitung ist sehr gut und sie funktioniert bis zu dem Punkt nach der Konfiguration von Nextcloud im Web Interface. Als es mich begruessen soll, stuerzt das ganze ab mit:
Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed
Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/lib/private/RedisFactory.php:92) in /var/www/html/lib/private/legacy/OC_Template.php on line 350
Internal Server Error The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the server log.
Dabei habe ich mehrfach nachgeschaut dass das Redis Passwort im docker-compose.yml keine Fehler aufweist. Trotzdem klappt es nicht. Ich denke ich lass es nach 4 Woche des Versuchens jetzt Mal sein. Docker soll das leben vereinfachen, aber man merkt auch dass der Jungle aus Konfigurationsparametern und Tests am Anfang wahnsinnig viel Nerven kostet. Wenn’s Mal steht, klar…
Man bekommt auch den Eindruck dass Traefik nach jedem neuen Versuch mit Nextcloud neu gestartet werden moechte, nicht so toll, aber verschmerzbar.
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2006] MySQL server has gone away
ich habe die anleitung 1:1 verfolgt. Trotzdem funktioniert die einrichtung der mysql datenbank nicht. hat hier jemand eine lösung für. danke
ich habe das gleiche Problem wie totti und leider auch keine Lösung
Die Anleitung passt soweit. Man muss halt unbedingt auch die Traefik.yml etc. von goneuland einhalten. Jeder Einzelne kocht da sein eigenes Süppchen. Und eine Zusammenstellung aus unterschiedlichen Guides ist katastrophal. Besonders, wenn man sich noch nicht auskennt.
Auf dem Raspi funktioniert das nicht, weil mariadb auf armv7 nicht läuft. Dort einfach als Image coreymbryant/mariadb-armv7 verwenden. Auch sollte man dort nicht redis:alpine sondern nur redis verwenden. Alle anderen Einstellungen können bestehen bleiben.
Hey, tolles Tutorial. Läuft soweit bei mir alles.
Kann man nextcloud noch optimieren, dass es schneller läuft? bei mir ist es träge.
Kann man den Cache-Speicher erhöhen?
Falls ja, wie?
Danke Dir.
Grüße,
Tobias
Hallo,
Ich wollte mich nur bedanken. Ich verwende seit 2 Jahren Docker mit gitlab. Jetzt habe ich mit deiner Anleitung meine alte Traefikversion aktualisiert und auf 2.4 umgestellt. Zusätzlich noch nextcloud eingebunden. Läuft alles. Danke für deinen Einsatz.Interessant wäre noch zammed mit traefik.
Viele Grüße
Karsten
Hi,
Danke für die gute Zusammenfassung – das machte mir den Umstieg von nginx auf Traefik vor der Nextcloud deutlich leichter.
Als Randbemerkung für die Randgruppe der Linux-User:
Die Gnome-Umgebung kommt mit den beiden “curvePreferences” nicht besonders gut klar und bricht den Eintrag einer so gesicherten Nextcloud in die Gnome Online Accounts ab mit einer (!!deutschsprachigen!!) Fehlermeldung:
“goa_http_client_check() failed: 6 — Gegenstelle sendete schwerwiegende TLS-Warnung: Falscher Parameter”
Auch eine reguläre WebDAV Verbindung kommt unter Gnome nicht zustande – der Fehler scheint direkt aus der Glib zu kommen. Ohne die curvePreferences tut es und meckert trotzdem noch nicht im Sicherheitscheck. (Evtl. lohnt sich eine Ergänzung für Ubuntu-User und Co…)
Besten Dank nochmal,
Bernhard
Hallo Bernhard!
Vielen Dank für den Hinweis, ich habe die großartigen Anleitungen für Mailcow und Nextcloud (bin ebenfalls ein Umsteller von Nginx) durchgearbeitet und schon vermutet, dass es mit der zusätzlichen Traefik – Konfiguration zu tun hat. Du hast mir viel zusätzliche Sucherei erspart!
Vielen Dank Christian und Bernhard,
Paul
Hi,
ich finde deine Anleitungen richtig gut und habe mir auch wichtige Impulse gegeben, danke dafür!
Mir sind aber auch noch ein paar Gedanken beim Aufbau meines Servers gekommen:
1. Warum verwendest du bei Nextcloud kein fpm(-alpine) image? bzw inwiefern wird dadruch die Geschwindigkeit vielleicht besser?
2. Warum verwendest du nicht die Environment Variablen für mariadb bei redis hast du es auch gemacht?
3. Warum verwendest du die secret files nicht?
Btw Ich habe nun alles mit rootless Docker aufgebaut und bei mir klappt alles ausser die systemd Unit zum Autostart. Vielleicht kannst du dich mit dem Thema rootless Docker beschäftigen und die Anleitung dahin gehend anpassen.
Grüße
Adrian
Hey, mit dem fpm-image würde ich auch gerne wissen. Hast du da eine Beispielkonfiguration mit traefik. Wenn ich nextcloud und redis auf fpm umstelle, kommt im browser “bad gateway”. muss noch was am proxy geändert werden? Danke Grüße, Tobias
Hatte auch versucht es mit fpm zum laufen zu bekommen und eine Weile gebraucht. Hier ein funktionierender Stand. Achtung bei den docker labels, die sind etwas customized.
docker-compose.yml https://pastebin.com/udRUdvjv
nginx.conf https://pastebin.com/uFWAzrJG
LG
Hallo
Heute Nacht wurde bei mir MariaDB 10.6.0 angeliefert.
Mit dieser Version stand Nextcloud:
General error: 4047 InnoDB refuses to write tables with ROW_FORMAT=COMPRESSED or KEY_BLOCK_SIZE.
Siehe https://github.com/nextcloud/docker/issues/1492#issuecomment-879991061 für die nötige Reparatur
Grüße
Michael
Hallo,
erstmal danke für die tolle Anleitung. Aber anscheinend mach ich komplett was falsch.
Ich hab Docker, Traefik usw. nach deinen Anleitung installiert. Aber sobald ich die docker-compose.yml ausführe sagt mir die Console zwar “done”.
Aber nextcloud ist leider nicht erreichbar.
Hat eventuell jemand noch eine Idee?
Hallo Philipp,
schau mal im Traefik Webinterface, ob dort der Container angezeigt wird.
LG
Christian
Hallo,
erstmal danke für das Tutorial. Auch im August 2021 ist es noch größtenteils machbar, jedoch muss man seit dem neustem Update muss man die Argumente ‘–innodb_read_only_compressed=0’ mit dem Mysql Container in der Docker Compose Datei angeben weil Nextcloud sich sonst nicht mit der Mysql Datenbank verbinden kann.
Hoffe das hilft
Hi,
Den innodb-parameter ins command zu nehmen ist wenig nachhaltig, weil das Feature in absehbarer Zeit aus der MariaDB entfernt werden wird. Da die Updatezeiträume für ältere Versionen aber relativ lang sind, empfehle ich, den Docker-Container der MariaDB auf Version 10.5 zu pinnen (also mit “:10.5” statt “:latest”). Wenn ich mich korrekt erinnere (bin gerade mit der Familie unterwegs) läuft der Support bis 2025. Bis dahin sollte Nextcloud das Thema gelöst haben.
Schöne Grüße,
Bernhard
mit update auf nextcloud 22 kommt bei mir immer “internal server error”.
habe nextcloud im docker mit mariadb.
habe es schon mit mariadb:10.5 versucht. gleicher fehler.
jemand eine idee?
danke.
Moin,
ich habe die Anleitung 1:1 übernommen, nur Anpassungen an den vorgesehenen Stellen (Kennwörter, Domains) vorgenommen. Merkwürdigerweise lande ich wenn ich nextcloud aufrufe, direkt am Anmeldebildschirm, das Anlegen des Admins wird mir nicht angezeigt. Habe ich eine Stelle übersehen, die das initialisieren des Kontos im Hintergrund übernimmt?
Hatte zufällig jemand von euch folgende Problem schonmal gehabt?
Warning: Redis::connect(): php_network_getaddresses: getaddrinfo failed: Name or service not known in /var/www/html/lib/private/RedisFactory.php on line 124
Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/lib/private/RedisFactory.php:124) in /var/www/html/lib/private/legacy/OC_Template.php on line 349
Internal Server Error The server encountered an internal error and was unable to complete your request. Please contact the server administrator if this error reappears multiple times, please include the technical details below in your report. More details can be found in the server log.
Grüße
hat sich dein Redis auf eine neue Version aktualisiert? Schon mit Version 5 probiert?
Hatte den gleichen Fehler und es leider nicht wieder ans laufen bekommen. Habe dann den Container gelöscht und neu aufgesetzt.
Grüße
in docker-compose-yml bei der nextcloud-db einfügen
command: –innodb_read_only_compressed=OFF
Danke für den Hinweis. Habe es angepasst.
LG
Christian
Hi Christian,
durch das Hinzufügen einer zweiten “command:” Zeile ist es aber kein gültiges YAML/docker-compose File mehr, da Keys in Yaml eindeutig sein müssen.
Also entweder alles in eine Zeile
command: –transaction-isolation=READ-COMMITTED –log-bin=ROW –innodb_read_only_compressed=OFF
oder als Array ausführen:
command:
– –transaction-isolation=READ-COMMITTED
– –log-bin=ROW
– –innodb_read_only_compressed=OFF
Gruß
Christoph
Vielen herzlichen Dank, Christian! Eine super verständliche Anleitung, die funktioniert!
Viele Grüße
Olina
Hallo super tutos,
Habe nur ein kleines Problem, kriege beim Datenbanksetup immer folgenden Error:
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Temporary failure in name resolution
An wann kann das liegen?
MFG
hochwahrscheinlich syntax-fehler der command befehle, mariaDB wird nicht richtig initialisiert. mal mit folgendem proberen
command:
– –transaction-isolation=READ-COMMITTED
– –log-bin=ROW
– –innodb_read_only_compressed=OFF
Hallo ich habe das gleiche Problem. Beim Anlegen des Nexctloud-Kontos kann keine Verbindung zur Mariadb-Datenbank hergestellt werden.
Die Einstellungen sind in Bezug auf die Parameter der docker-compose.yml gut:
Datenbankbenutzer.
Datenbank-Passwort.
Name der Datenbank.
Datenbank-Host.
“Erreur
Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known”
Sorry für meine ungefähre deutsche Übersetzung.
hochwahrscheinlich syntax-fehler der command befehle, mariaDB wird nicht richtig initialisiert. mal mit folgendem proberen
command:
– –transaction-isolation=READ-COMMITTED
– –log-bin=ROW
– –innodb_read_only_compressed=OFF
Hallo Moritz,
ja es war ein Syntaxfehler + Formatierungsfehler hier im Blog. Sollte nun aber alles wieder klappen.
VG
Christian
Danke für die wirklich gute Anleitung. Damit konnte ich Nextcloud sehr schnell starten.
Nach einigem Einarbeiten in Docker hätte ich vielleicht noch folgenden Verbesserungsvorschlag für die Datei docker-composer.yml
bei
nextcloud-app:
[…]
environment:
MYSQL_HOST: nextcloud-db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL-PASSWORD:
TRUSTED_PROXIES:
OVERWRITEPROTOCOL: HTTPS
OVERWRITEHOST:
Das erspart viel nachträgliche Konfiguration.
Hallo Christian,
vielen dank für die Anleitung. Hiermit habe ich nun seit gut einem Jahr meine eigene Nextcloud am laufen.
Bisher funktionierte die Konfiguration auch einwandfrei. Allerdings habe ich heute die Container auf NC23.0.0 geupdated.
Seit dem habe ich erneut die Meldung das mit der Reverse Proxy Konfiguration etwas nicht in Ordnung sei:
“Die Reverse-Proxy-Header-Konfiguration ist fehlerhaft oder Du greifst auf Nextcloud über einen vertrauenswürdigen Proxy zu. Ist dies nicht der Fall, dann besteht ein Sicherheitsproblem, das einem Angreifer erlaubt, die IP-Adresse, die für Nextcloud sichtbar ist, auszuspähen.”
Eigentlich die gleiche Meldung wie man Sie oben in der Anleitung behebt. Allerdings bin ich die Konfiguration nochmals durchgegangen und konnte keine Veränderung/Fehler feststellen(trusted_proxies in NC config oder in der IP-Adress in traefik).
Hast du oder jemand anderes das gleiche Problem? Ich bekomme die Meldung jedenfalls nicht mehr weg.
Grüße und schöne Feiertage
Marcel
Guten Tag Christian,
Vielen Dank für deine Anleitung!
Ich hätte noch eine Frage und zwar habe ich in Proxmox ein Festplatten RAID gemountet. Weißt Du wie ich dieses in Nextcloud integrieren kann?
Damit würdest du mir sehr weiterhelfen.
Vielen Dank
Hallo Marcel,
das Problem liegt daran, dass die trusted_proxies als array angelegt werden müssen, so wie die trusted_domains. Der Eintrag muss also lauten:
‘trusted_proxies’ =>
array (
0 => ‘172.18.0.2/16’,
),
dann verschwindet auch die Warnung. Bisher wurde das wohl nicht erzwungen.
Ich würde sowieso empfehlen, die Einträge in der config.php über occ config:system:set zu setzen bzw. zu ändern, anstatt direkt in die config.php zu schreiben, um solche Probleme zu verhindern.
VG
Markus
Guten Tag Christian,
Vielen Dank für deine Anleitung!
Ich hätte noch eine Frage und zwar habe ich in Proxmox ein Festplatten RAID gemountet. Weißt Du wie ich dieses in Nextcloud integrieren kann?
Damit würdest du mir sehr weiterhelfen.
Vielen Dank
Hallo,
ich habe sowohl Traefik als auch Nextcloud genau nach dem Tutorial aufgesetzt. Es hat auch alles funktioniert, bis ich mich schließlich mit meinem Admin einloggen wollte.
Nach dem Login werde ich nicht eingeloggt sondern verbleibe auf der Login-Page von Nextcloud. Scheinbar haben einige User online ein ähnliches Problem mit dem Reverse Proxy, leider hat keine der angebotenen Lösungen funktioniert.
Hättest du vielleicht eine Idee was ich noch konfigurieren könnte damit es funktioniert?
Vielen Dank!
Hallo,
das könnte dir vielleicht helfen: https://goneuland.de/nextcloud-login-sehr-langsam/
Viele Grüße
Christian
Moin,
ich hab deine Anleitung abgearbeitet, hänge aber nun am erreichen von Traefik und Nextcloud fest.
Traefik lässt sich bei mir unter “traefik.example.com” nicht erreichen, erst unter “example.com” erreiche ich das Traefik Dashboard. Mag das daran liegen weil meine Adresse “meine.example.com” ist, denn dadurch wäre es “traefik.meine.example.com”?
Nextcloud erreiche ich dadurch gar nicht, weder unter “nextcloud.meine.example.com”, noch unter “meine.example.com”.
Leider finde ich im Internet keine Hilfe dazu…
Was kann ich jetzt machen um das ganze zum laufen zu bringen?
Gruß Mel
Schau Mal hier, der hat auch eine subdomain mehr dazwischen konfiguriert: https://youtu.be/liV3c9m_OX8
@C
ne das hilft mir leider auch nicht weiter. Meine Englisch Kenntnisse sind zu schlecht um zu verstehen was er da zeigt/sagt.
Müsste ich jetzt echt Cloudflare (was auch immer das sein soll) und Pi-Hole benutzen?
Dachte das ganze wäre einfacher…
Betriebssystem installieren
Docker installieren
Proxy installieren
Dienste installieren
Einstellung machen
Fertig
Zumindest wenn man sich die Anleitungen hier anschaut sieht es einfach aus :/
Gruß
Du musst natürlich kein Cloudflare nutzen, weil es mit dem Problem gar nichts zutun hat. Der nutzt da jetzt halt cloudflare als certresolver, aber du musst ja den nehmen, der für deine Umgebung passt. Nur die Traefik Konfiguration mit sans Wildcard Zertifikat ist relevant und der Portainer ein Beispiel für einen Service (in dem Fall ja Nextcloud).
@C
Und da kommt die frage auf, wenn ich nach der Anleitung hier gehe, welchen certresolver bräuchte ich denn da?
Kenn mich mit sowas gar nicht aus… Und wusste nicht mal das sowas benötigt wird.
Gruß
Hallo goneuland,
danke für die schöne Anleitung, was muss ich konkret weglassen, wenn ich kein Treafik nutzen möchte?
Wäre es nicht sinnvoll deine vielen guten Anleitung bei Github zu posten?
Das ist besser zu lesen.
Ist die Anleitung auch mit einem VPS Server nutzbar?
VG
Thomas
Hallo Thomas,
ja die Anleitung lässt sich auch mittels VPS nutzen.
Ja das Layout hier ist nicht mehr so gut. Daher will ich auch bald ein neues Theme verwenden.
Das ist schwer hier in wenigen Worten zu sagen, wie man die Anleitung umändern müsste. Hier ist der Link zum Docker Image von Nextcloud: https://hub.docker.com/_/nextcloud
Dort steht genau drin, wie man es “normal” also ohne Traefik realisiert.
Viele Grüße
Christian
https://www.c-rieger.de/nextcloud-installationsanleitung/
Die Anleitungen sind auch super und besser zu lesen.
Evtl. ist das WordPress Theme auch was für dich, wenn nicht Github.
Wobei c-rieger ist jetzt auch bei GitHub.
VG
Thomas
Danke für dein Feedback Thomas.
Ich hoffe, dass ich demnächst mal etwas Zeit habe und dann mache ich hier einiges neu. Ideen habe ich genug 🙂 Derzeit fehlt mir leider nur die Zeit…
Viele Grüße
Christian
OT – Umzug
Hallo Christian, hat der WordPress Umzug ohne weitere Probleme funktioniert?
Wie heißt das Theme?
Ist deine Website auch eine Docker Instanz?
Sieht ganz gut aus, ohne tiefer eingestiegen zu sein.
VG
Thomas
Hallo,
ich habe den Blog nicht umgezogen, einfach das Design gewechselt 🙂
Das Theme heißt “Soledad”. Ich muss aber noch einiges anpassen. Der Vorteil sollte sein, dass es schneller läuft und auch auf mobilen Geräten besser aussieht.
Ja meine Webseite ist auch mit Docker realisiert.
Danke 🙂
Viele Grüße
Christian
Hallo Christian, Soledad wird für eine Hobbyseite vermutlich zu teuer werden.
https://www.guidingwp.com/soledad-theme-review/#1_6_months_support
###
6 Mointh Support
The customer support for all ThemeForest products is limited to 6 months. Soledad has no exception. However, you can renew support for every 6 months. But it’s almost as expensive as buying a new theme license.
###
FOSS würde zu deiner Seite besser passen.
VG
Thomas
Danke für das super, leicht verständliche Tutorial. Auch das für Traefik selbst.
Allerdings bekomme ich bei der Installation von Nextcloud folgende Fehlermeldung:
“Error while trying to create admin user: Failed to connect to the database: An exception occurred in the driver: SQLSTATE[HY000] [1045] Access denied for user ‘nextcloud’@’172.26.0.4’ (using password: YES)”
Folgende Werte trage ich in die Oberfläche ein, wobei ich hier die Variablen aus der docker-compose.yml eingetragen habe, damit verständlich wird, welche Parameter ich in der Oberfläche eingebe. In Echt habe ich also von unten “MYSQL_USER” durch “nextcloud” ersetzt, wie auch oben in der Fehlermeldung ersichtlich.
Datenbank-Benutzer = MYSQL_USER
Datenbank-Passwort = MYSQL_PASSWORD
Datenbank-Name = MYSQL_DATABASE
Datenbank-Host = nextcloud-db
Hat jemand eine Idee, warum es nicht funktionieren will?
Ich habe das selbe Problem, hast du inzwischen eine lösung gefunden?
Hey, ich hatte auch das gleiche Problem. Bei mir haben die Versionen von mariadb und nextcloud nicht gut zusammengespielt. Ich habe mariadb auf 10.8 und nextcloud auf 22 gepinnt. Damit war das Problem verschwunden 🙂
Hallo Christian
Ich habe es nach deiner Anleitung aufgesetzt funktioniert wunderbar, nur jetzt war ein bisschen Betrieb auf dem Server und mir ist aufgefallen, das der ROW Log sehr schnell voll wird, wo wird das automatische aufräumen bei deiner Konfiguration konfiguriert?
Gruss Stefan