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.
Datum | Änderungen |
---|---|
29.03.2020 | Erstellung dieser Anleitung |
26.04.2020 | Optimierungen (letztes Kapitel) hinzugefügt. |
04.09.2020 | DockerCompose angepasst, damit alles wieder funktioniert. |
05.09.2020 | Integration mit Collabora Office hinzugefügt. |
19.08.2021 | Fehler mit Datenbank behoben. Danke an Peter. |
02.01.2022 | Formatierungsfehler der Docker Compose Datei behoben. |
05.01.2022 | Anleitung für Nextcloud 23.0 angepasst. |
03.04.2022 | Kleinigkeiten angepasst. |
26.07.2022 | getestet mit Nextcloud 24.0.3 |
08.09.2022 | Labels für Traefik + CrowdSec angepasst; TRUSTED_PROXIES, OVERWRITEPROTOCOL, OVERWRITECLIURL,OVERWRITEHOST werden nun per Docker Compose festgelegt und nicht später von Hand. |
21.09.2022 | Kapitel 6.5 Cron hinzugefügt |
18.01.2023 | Links zu CrowdSec hinzugefügt, MariaDB Parameter –log-bin=ROW entfernt, MariaDB Parameter MARIADB_AUTO_UPGRADE=1 hinzugefügt. |
29.05.2023 | Update auf neue Traefik Anleitung, Kapitel 2.1 (Traefik IP ermitteln) entfernt |
0. Grundvoraussetzung
- Docker & Docker Compose v2 (Debian / Ubuntu)
- TRAEFIK V2 + 3 – REVERSE-PROXY MIT CROWDSEC IM STACK EINRICHTEN
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.
nano /opt/containers/nextcloud/docker-compose.yml
Inhalt
version: '3.3' services: nextcloud-db: image: mariadb container_name: nextcloud-db command: --transaction-isolation=READ-COMMITTED --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 - MARIADB_AUTO_UPGRADE=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: TRUSTED_PROXIES: 172.16.255.254/16 OVERWRITEPROTOCOL: https OVERWRITECLIURL: https://nextcloud.euredomain.de OVERWRITEHOST: nextcloud.euredomain.de REDIS_HOST: nextcloud-redis REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben volumes: - ./app:/var/www/html - ./daten:/var/www/html/data labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud.entrypoints=websecure" - "traefik.http.routers.nextcloud.rule=(Host(`nextcloud.euredomain.de`))" - "traefik.http.routers.nextcloud.tls=true" - "traefik.http.routers.nextcloud.tls.certresolver=http_resolver" - "traefik.http.routers.nextcloud.service=nextcloud" - "traefik.http.services.nextcloud.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.nextcloud.middlewares=nextcloud-dav,default@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
version: '3.3' services: nextcloud-db: image: mariadb container_name: nextcloud-db command: --transaction-isolation=READ-COMMITTED --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 - MARIADB_AUTO_UPGRADE=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: TRUSTED_PROXIES: 172.18.0.2/16 OVERWRITEPROTOCOL: https OVERWRITECLIURL: https://nextcloud.euredomain.de OVERWRITEHOST: nextcloud.euredomain.de REDIS_HOST: nextcloud-redis REDIS_HOST_PASSWORD: test # Redis Passwort von oben wieder eingeben volumes: - ./app:/var/www/html - ./daten:/var/www/html/data labels: - "traefik.enable=true" - "traefik.http.routers.nextcloud.entrypoints=https" - "traefik.http.routers.nextcloud.rule=(Host(`nextcloud.euredomain.de`))" - "traefik.http.routers.nextcloud.tls=true" - "traefik.http.routers.nextcloud.tls.certresolver=http" - "traefik.http.routers.nextcloud.service=nextcloud" - "traefik.http.services.nextcloud.loadbalancer.server.port=80" - "traefik.docker.network=proxy" - "traefik.http.routers.nextcloud.middlewares=nextcloud-dav,default@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
- eure Domain bei Traefik anpassen (“nextcloud.euredomain.de”)
- OVERWRITECLIURL anpassen
- OVERWRITEHOST 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
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.
Bei mir sieht es dann so aus:
. . . 'dbuser' => 'nextcloud', 'dbpassword' => 'test', 'installed' => true, 'default_phone_region' => 'DE', );
6.2 Container neu starten
Nun starten wir Nextcloud neu um sicherzugehen, dass alle Einstellungen übernommen werden.
docker compose -f /opt/containers/nextcloud/docker-compose.yml down docker compose -f /opt/containers/nextcloud/docker-compose.yml up -d
Nun sollte es so aussehen:
6.3 Nextcloud mittels CrowdSec absichern
Nun könnt ihr Nextcloud innerhalb weniger Minuten noch zusätzlich mittels CrowdSec absichern. Eine Anleitung dazu findet ihr hier.
6.4 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.
6.5 Nextcloud Cron einrichten
Nun fügen wir auf unserem Server noch einen Cron Eintrag hinzu. Dieser bewirkt, dass Nextcloud alle 5 Minuten die Hintergrundjobs abarbeitet. Um Cron zu starten gebt ihr folgendes ein:
crontab -e
Beim ersten Start erscheint nun folgende Meldung. Wählt hier “1” aus.
no crontab for root - using an empty one Select an editor. To change later, run 'select-editor'. 1. /bin/nano <---- easiest 2. /usr/bin/vim.tiny Choose 1-2 [1]: 1
Hier fügt ihr nun folgende Zeile hinzu:
*/5 * * * * docker exec -u www-data nextcloud-app php cron.php
Diese Zeile bewirkt, dass euer Server alle 5 Minuten die “cron.php” Datei ausführt in eurem Nextcloud Container.
Nachdem ihr dies eingerichtet habt, könnt ihr dies auch kontrollieren. Geht dazu in eure Nextcloud als Administrator. Wählt dann bei Hintergrundaufgaben noch “Cron (Empfohlen)”. Hier solltet ihr nun folgendes in den Einstellungen sehen. Wichtig ist, dass die “Letzte Aufgabe ausgeführt…” maximal 5 Minuten sein sollte. Wenn dies so ist, dann funktioniert alles.
7. Quellen
https://hub.docker.com/_/nextcloud/
Hallo zusammen,
vielen Dank für die guten Anleitungen! Diese waren der Ausgangspunkt für meine verwalteten Server, inzwischen habe ich quasi alles auf Docker umgestellt.
Das letzte war jetzt, dass ich meine private Cloud von einem alten Server mit ownCloud auf einen neuen Server mit Docker und Nextcloud geändert habe.
Hier wollte ich jetzt mein Bilder-Archiv hochladen. Teilweise große Daten (RAW-Bilder mit ~50MB). Hier wollte ich natürlich ganze Ordner hochladen. Jetzt kommt es bei einzelnen Dateien aber zu nicht reproduzierbaren Fehlern. Es wird immer wieder folgendes im Log angezeigt:
Es ist für mich nicht wirklich nachvollziehbar, wann und warum das passiert. Ich hatte die max_chunk_size von Nextcloud auch schonmal auf 5MB reduziert oder wie jetzt hier bei der Fehlermeldung auf 20MB erhöht, das macht keinen Unterschied. Manche große Ordner lädt es auch komplett ohne Fehler hoch. Lade ich anschließend die fehlgeschlagenen Dateien (die ich manuell suchen muss) erneut hoch, klappt es in der Regel…
Im Internet hab ich auch einige Male die Fehlermeldung gefunden, aber keine wirkliche Lösung dafür.
Jetzt habe ich auch in meinen anderen Instanzen geschaut (ich betreue noch 2 Schulen) bei denen es auch mit Traefik+Nextcloud (alle noch nach alter Traefik2-Anleitung) eingerichtet ist, dort treten die Fehler ebenfalls auf!
Woran könnte das denn liegen? Ich bin grad etwas ratlos…
Die Server sind alle bei Hetzner, mit SSD, Internetverbindung ist eine stabile 100/40, Browser nutze ich den aktuellen Firefox unter Mac. Nextcloud auch sämtliche Versionen betroffen (auf meinen Servern sind noch v24/25/26 installiert)
Auffällig ist, dass meistens genau 8192 Bytes (=8kB) Differenz angezeigt werden (unabhängig der Chunk-Größe). Selten werden auch komplett unterschiedliche Werte angezeigt.
Hat nochmal jemand das Problem? Wie gesagt: ich hab das ja auf allen meinen Servern…
Besser noch: hat vielleicht auch jemand eine Idee, woran das liegen bzw. wie man das Problem beheben könnte? 😅
Vielen Dank schonmal
Alex
Hallo,
was mich seit einiger Zeit beschäftigt ist das das Nextcloud auch Systembenachrichtigungen per Mail senden kann. Das was ich dazu bisher im Netz gefunden habe, endet immer wieder bei postfix über einen Freemail anbieter, das ist aber nicht das was ich haben möchte. Mit Malcow komme ich nicht weiter, ich denke aber auch das brauchts daür nicht. Um Tips und Hilfe würde ich mich sehr freuen.
Gruß
d_StaR
Hi Christian, hi Community,
ich habe nach der Anleitung die Installation versucht. Nach Eingabe der Daten im Installationsfenster bekomme ich nach kurzer Zeit einen Internal Server Error und das wars. Ich habe es bereits auch mit der MariaDB-Version 10.8.2 versucht. Leider brachte das auch keinen Erfolg. Hätte jemand einen Tipp für mich? Wo würde ich denn eine Log-Datei finden?
Bin ein wenig ratlos, aber gehe davon aus, dass mir hier bestimmt jemand helfen kann. 🙂
VG Frank
Moin,
Ok, zweiter Versuch. Hat niemand das Problem mit auto-logout, also bei Inaktivität in der Web-GUI von Zeit x, das der Anwender nicht ausgeloggt wird?
Gruß
Andreas
error with latest version of mariadb
mariadb error log
WARN[0000] The “DzaL” variable is not set. Defaulting to a blank string.
WARN[0000] The “DzaL” variable is not set. Defaulting to a blank string.
nextcloud-db | 2022-10-26 18:28:58+02:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:10.9.3+maria~ubu2204 started.
nextcloud-db | 2022-10-26 18:28:58+02:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
nextcloud-db | command was: mariadbd –transaction-isolation=READ-COMMITTED –log-bin=ROW –innodb_read_only_compressed=OFF –verbose –help –log-bin-index=/tmp/tmp.aAJjgRXswV
Moin, ich habe zur Zeit privat und geschäftlich 2 nextclouds mit nginx als proxy laufen. Spiele aber schon seit längerem mit dem Gedanken mich eingehender mit traefik als proxy zu beschäftigen und da bin ich auf goneuland gestoßen und muss sagen, das ist die bislang beste Site die mir untergekommen ist, was den Erklär- und Lerneffekt angeht. Chapeau!
Aber dies soll nicht nur ein Lob-Post werden 😉
Ich versuch seit Beginn (Version 16) meiner Arbeit mit nextcloud in einer Docker-Umgebung das Problem mit dem Auto-logout bei inactivity des users Herr zu werden. Ich habe folgenden Parameter in alle möglichen Konstellationen in der config.php ausprobiert. Nichts hat geholfen, der User bleibt weiterhin eingeloggt.
Hier nur mal ein Beispiel auf 1 Minute:
‘remember_login_cookie_lifetime’ => 60*60*24*15,
‘session_lifetime’ => 60 * 0 * 0,
‘session_keepalive’ => false,
‘auto_logout’ => true,
Vielleicht hat einer von euch ja eine Idee/Lösung oder kann mir sagen ob es grundsätzlich mit Einsatz von Docker nicht funktioniert.
Schönes Wochenende und viel Grüße
Andreas
Hallo!
Was macht eigentlich dieser Befehl in der docker-compose Datei:
Es sieht nämlich so aus, also ob dadurch grundlos 1GB große ROW-Dateien erzeugt werden, bis die Festplatte voll ist! Das ist mir jetzt schon auf 2 Instanzen passiert, die ich nach dieser Anleitung aufgesetzt habe. Sehr unangenehm…
Ich habe die Zeile jetzt mal aus der docker-compose Datei entfernt, bislang scheint alles zu passen und es werden keine unnützen Riesenfiles mehr generiert.
Im Nextcloudforum wird auch schon gerätselt, was es damit auf sich hat?!
Auch von mir vielen Dank für das Tutorial, das ganze mit Traefik zu machen ist schon ziemlich nice 😀
Allerdings hackt es bei mir schon bei der Installation, ein ähnliches Problem wurde hier auch schon erwähnt nur wie es gelöst wurde komm ich nicht drauf 🙄
Passwort habe ich mehrfach abgeglichen aber woran hackt es nun?
Was um alles in der Welt ist mit NextCloud los?
Hab es heute mal nach der Anleitung auf meinem Root Server (Netcup) installiert. Der Aufruf ist mehr als extrem lahm. Ich warte jetzt schon geschlagene 15 Minuten, um zu den Einstellungen zu gelangen.
Ich hatte Nextcloud auch mal auf einer Synology installiert, einmal direkt auf der Diskstation und einmal in einer VM, Ubuntu Server Cleaninstall.
Und wirklich jedes Mal war es so extrem lahm, dass es echt keinen Spaß macht, dieses Produkt zu nutzen.
Dann hab ich einfach mal aus Jux und Dollerei eine kostenlose Variante auf hosting.de einrichten lassen. Läuft butterweich, geschmeidig, zügig.
Geht das nur mir so, dass NextCloud nach der Standardinstallation so dermaßen lahm und träge ist und gefühlt Jahrzehnte braucht, um die Inhalte nach einem Klick zu laden? Oder bin ich einfach zu ungeduldig?
Hallo Christian, ich habe versucht, mit dieser Anleitung Owncloud Ocis zu installieren. Dachte, vielleicht brauche ich ja die nextcloud-Einträge nur durch owncloud zu ersetzen und das Image owncloud/ocis zu nutzen. Die Container laufen, aber leider bekomme ich einen 404-Fehler beim Aufrufen der Seite. Wenn Du Zeit hast, könntest Du bitte mal prüfen, wo ich etwas ändern, statt nur ersetzen muss?
Danke Dir.
Gruß
Ronald
Hallo,
danke für die tolle Anleitung, habe es vor Monaten eingerichtet und es ist bis vor 3 Tagen perfekt gelaufen.
Jetzt ist mir leider aufgefallen, dass mein SSL Zertifikat für Nextcloud nicht automatisch erneuert wird. Ich habe auch Collabora und Grafana nach deinen Guides installiert, und hier wird das Zertifikat automatisch erneuert.
Nur bei Nextcloud mag es mir nicht gelingen, auch nachdem ich es manuell aus der acme.json gelöscht habe wird kein neues Zertifikat generiert.
Hat vllt. jemand einen Tipp woran das liegen könnte und wie ich es wieder hinbekomme?
Vielen Dank, LG
Moin Christian,
hast du schon versucht ein HPE für Files aka Client-push einzurichten?
Bisher habe ich es leider nicht zum Laufen gebracht. Ansonsten hätte ich meinen Code schon gepostet. Die Nutzung von Client-push wäre doch gerade für low-end Geräte oder starke Nutzung ein Vorteil.
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
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?
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
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
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
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
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
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!
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
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
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 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.
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
Vielen herzlichen Dank, Christian! Eine super verständliche Anleitung, die funktioniert!
Viele Grüße
Olina
in docker-compose-yml bei der nextcloud-db einfügen
command: –innodb_read_only_compressed=OFF
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
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?
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.
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
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
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
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
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
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,
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
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
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 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ß
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.
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
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 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.
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 ?
“Problem” gelöst! Sorry für soviel Unsinn. Ich habe mich zwischen “alter” und “neuer” Anleitung verirrt.
Jetzt läuft alles bestens !
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?
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?
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