[gelöst] Nextcloud mit Docker Compose und Ubuntu 20.04 als VPS Host System

Hallo Forum,

was habe ich zu berĂŒcksichtigen wenn ich eine Nextcloud mit Ubuntu 20.04 Docker stellen möchte?

Mein Wunsch:

  • Nextcloud Cointainer
  • MariaDB Container
  • Datenspeicherort ist unabhĂ€ngig von beiden Docker Containern.

Hintergrundgedanke: Kommt eine neues Nextcloud Release, tausche ich nur den Nextcloud Container aus.

Was fĂŒr Ideen habe Ihr oder noch besser einen Anleitungslink?

Was haltet Ihr von dieser Anleitung?
Die ist zwar fĂŒr Debian 10 sollte doch aber auch mit Ubuntu 20.04 funktioieren?

MfG
nc-kay

Edit: 17.02.2022
unabhÀngig
un hinzugefĂŒgt, war ein Tippfehler.

Mein alter Thread:

du hast dabei sicher auch daran gedacht, dass sich mal das Datenbankschema Ă€ndern kann und/oder es Updates fĂŒr die DB gibt? Außerdem sollte auch dieser Container gebackupt werden


Also m.E. ist die Idee alles zu trennen auf den ersten Blick ganz nett
 Auf den zweiten bedeutet es dann doch mehr Arbeit - ich weiß nicht, ob es fĂŒr mich als Home- und Smallbusinessuser den Mehraufwand lohnt. Bei großen Installationen mag das dann schon wieder ganz anders aussehen.

@nc-kay
Vielleicht ist Nextcloud All-in-One was fĂŒr dich. Ich habe damit aber leider keine Erfahrung.

Nextcloud AIO
https://github.com/nextcloud/all-in-one

Nextcloud AIO möchte ich zu Zeit nicht ausprobieren.

Edit: 16.02.2022 Nextcloud All In One Beta ist beta

So richtig mit Docker, von Hand installiert interessiert mich.
Das erlernte kann man auch mit anderen Docker Containern nutzen.

Das war auch ein Versuch von mir, Ansible mag zwar gut sein, jedoch mir zu Zeit zu kompliziert.
Standardlösungen fĂŒr AnfĂ€nger möchte ich.

Die Frage ist halt, ob du fĂŒr immer AnfĂ€nger bleiben möchtest :wink:

Du wirst bei einem Softwareprodukt wie Nextcloud, nicht darumherumkommen dich zumindest oberflĂ€chlich damit zu beschĂ€ftigen, wie die beteiligten Komponenenten funktionieren und zusammenspielen. Docker kann die Sache vereinfachen, weil es keine AbhĂ€ngigkeiten zum darunterliegenden System hat, ausser die Dockerkomponententen selbst. DafĂŒr musst du dich aber mit Docker selbst und seinen Eigenheiten beschĂ€ftigen. Und auch der Nextcloud Dockercontainer selbst hat seine Eigenheiten. Auch dort wirst du dranbleiben, Doku lesen und gegebenenfalls mal etwas anpassen mĂŒssen ĂŒber die Zeit. Eine komplette “Set it and forget it” Lösung gibt es bei einem Produkt wie Nextcloud einfach nicht. Appliances wie Nextclod AIO oder Nextcloud Pi kommen dem am nĂ€chsten, sind dann aber halt auch weniger flexibel.

1 Like

Zum weiteren ĂŒben habe ich natĂŒrlich meine Standardinstallation.

Wie hÀngen Docker Container Nextcloud, MariaDB und die Daten /daten voneinander ab?
Kann ich den Nextcloud Docker Container einzelnd austauschen?

Eine Docker Nextcloud Instanz mit "ohne MariaDB und mit Integrierten Daten kann ich erstellen.

Das habe ich auch gelesen. Dabei wurde es bei Nextcloud 23 groß angekĂŒndigt. Das Feature muss wahrscheinlich erst beim Kunden reifen.

https://nextcloud.com/blog/nextcloud-hub-2-brings-major-overhaul-introducing-nextcloud-office-p2p-backup-and-more/

— Frank Karlitschek, CEO Nextcloud GmbH

In other news, Nextcloud moves to decentralize the cloud, introducing an all-in-one docker based cloud image and a peer-to-peer backup solution for small installations. Learn more here.

1 Like

Naja das sind alles Community Projekte. Und Nextcloud AIO funktioniert zumindest. Und wenn das gepflegt wird, sehe ich kein Grund, wieso es auch nicht ĂŒber die Zeit funktionieren soll.

Die Backup App ist imho unbrauchbar im jetzigen Zustand und ich frage mich ernstahaft ob das nicht vielleicht ein konzeptionelles Problem ist, und ob das jemals zuvervelĂ€ssig und performant funktionieren kann. FĂŒr zuverlĂ€ssige tĂ€gliche Backups taugt es jedenfalls nicht, wenn man viele Daten hat, die man auf ein offsite Storage wie Backblaze backupen will und die Nextcloud dabei nicht die HĂ€lfte des Tages im Maintainance Mode sein soll. Ja ich ĂŒbrtreibe ein wenig. :wink: Trotzdem macht so eine App imho vorallem auf einem VPS Sinn und dort hat man in der Regel nicht nochmal mindestens gleich viel Speicher “lokal” ĂŒbrig, wie man Daten drauf hat.

Du kannst die Container unabhĂ€ngig updaten im Rahmen der ĂŒblichen KompatibilitĂ€ten (aktuell besser nicht höher als MariaDB 10.5 gehen). zB Nextcloud sehr oft und MariaDB nicht/selten. Speziel fĂŒr die backend Container wie DB ist der Druck diese aktuell zu halten nicht soo gross weil sie keinen Kontakt zu Aussenwelt, nciht mal zu host haben
 Die Inhalte der Container hĂ€ngen aber weiterhin zusammen, d.h. Daten und Datenbank passen zu einem bestimmten Zeitpunkt zusammen und mĂŒssen zusammen gesichert/wiederhergestellt werden, aber das ist nicht anders als bei jeder anderen Art der Installation (wobei mit NC23 und Backup App ist jetzt ein grosser Schritt getan Backups zu vereinfachen).

Ich habe viele positive Feebacks bzgl AiO gelesen und eine ausfĂŒhrliche Diskussion mit dem Author gehabt - es hat meine Meinung zu AiO deutlich verbessert - fĂŒr einen AnfĂ€nger oder einen Benutzer der “just works” sucht ist es eine super Sache. Wenn man mit dem Projekt wachsen möchte, die Technologien dahinter verstehen und etwas lernen ist es meiner Meinung nach nicht das richtige, weil (im Moment) kaum Anpassungen/Erweiterungen möglich sind. hier ist docker-compose (podman/k8s) deutlich im Vorteil.

Ich betreibe NC als docker-compose (vergleichbar mit dem referenzierten Tutorial) seit 1,5 Jahren. Habe in dieser Zeit 3 Major Updates, einen HW Wechsel und einen Restore â€œĂŒberlebt”. Die Anleitung ist auf den ersten Blick Ok, ich wĂŒrde noch eine vernĂŒnftige Backup Prozedur (getestet) dranbauen und dann sollte es laufen. Wie man sieht glaubt jeder an “seine” Technologie, fĂŒr mich ist Docker (oder generell Container) aktuell die beste Art ein System zu Hause zu betreiben (ab einer bestimmten User Anzahl kann es anders aussehen).

3 Likes

Ist dein Stand noch aktuell, der Bug in MariaDB 10.6 ist behoben?

Hast Du fĂŒr deinen Aufbau eine Dokumentation?

Damit meinst Du den Link von goneuland.de ?

Der Bug ist mit 10.6.7 behoben. Trotzdem muss man nicht jedes Major Release von MariaDB mitmachen. Jedes MariaDB Release erhĂ€lt fĂŒr 5 Jahre Security und Bugfixes. Solange die Software, die du nutzt nicht zwingend ein Feature in einer neueren Version benötigt, kannst du das entspannt angehen.

ach ja, 10.6 hatte den Bug.

10.6.6 um genau zu sein :wink:

Major Releases sind 10.5, 10.6 usw
 Security und Bugfix Releases sind 10.6.1, 10.6.2 etc


10.3 erhÀlt z.B. immer noch Updates und die aktuelle Version ist 10.3.34

https://endoflife.date/mariadb

https://mariadb.org/about/#maintenance-policy

1 Like

Worauf beziehst Du deine Empfehlung?

Aus den Empfehlungen der Entwickler

http s : / /docs. nextcloud. com/ server/latest/admin_manual/installation/system_requirements.html

MySQL 8.0+ or MariaDB 10.2/10.3/10.4/10.5 (recommended)

c-rieger nutzt “13. Februar 2022: Anpassung der Datenbankquellen (Mariadb 10.6.7+)”, das nur zur Info.

es war AFAIK kein bug in MariaDB, sondern ein Setting dass NC braucht und ab 10.6 nicht (per default) verfĂŒgbar ist
 Ich habe die Diskussionen verfolgt war aber zu faul den aktuellen Stand zu prĂŒfen

leider nichts was ich rausgeben kann. Ich habe schon lange vor meine Gedanken niederzuschreiben und zu veröffentlichen, habe es angefangen aber noch nicht abgeschlossen weil mein Ansatz eher ein unfangreiches “Buch” ist mit grundsĂ€tzlichen Ideen was man beim Design und Betrieb bedenken sollte statt einfach den aktuellen Status quo zu beschreiben
 gute Tutorials gibt’s wie Sand am Meer die meisten enden aber wenn man sich an der Cloud anmelden konnte - aber gerade als AnfĂ€nger weiss man nciht sofort was gut ist


finde ich super
 ich wĂŒrde sagen deckt sich zu 80% oder mehr mit meinem Design
 Punkt 6.2 sollte mit dem Apache Proxy nicht notwendig sein. Ich selbst verwende definierte Versionen z.B. image: mariadb:10.5.6 oder image: nextcloud:22.2 - damit weisst du was du bekommst auch wenn du in 3 Monaten deine Container schrottest und neu bauen musst (die sind immer noch ein wenig anders sollte aber vernachlĂ€ssigbar sein) - zumindest grosse VersionssprĂŒnge kommen nicht einfach so zustande weil du selbst oder ein Tool wie Watchtower Portainer oder so dachte es wĂ€re gut ein Update zu machen.

ansonsten starte damit und finde raus ob es gut fĂŒr dich ist, indem du es einige Tage mit Test-Daten nutzt. Aber bevor du mit Produktion startest probiere unbedingt aus was passiert wenn du deine Container und config brutal mit rm -rflöschst und ob dein Backup alle Daten und Einstellungen (zB Versionen, Calender und Kontakte) wieder her zaubert
 nachdem du das ausprobiert hast bist du ready und hast ein gutes GefĂŒhl.

1 Like

Ah ok. MariaDB selbst hatte eben kĂŒrzlich auch ein kritischen Bug, der sie dazu veranlasst hat 10.6.6 zurĂŒckzuziehen. Mit dem am Sonntag erscheinenen 10.6.7 Release wurde dieser Bug dann behoben.

@wwe
Tja mit der Doku ist immer so eine Sache, wenn ich
das Projekt hier weiter verfolgen, schaust Du hier ab und zu?
Dann hast Du die Doku und ich auch? :slight_smile:

ich bin fast tÀglich da
 kannst mich auch per PM anschreiben. hier noch ein Tipp was helfen kann:

image

ich habe bei mir 2 komplett unabhĂ€ngige Nextclouds am laufen - eine verwende ich um neue Versionen zu testen oder etwas potentiell destruktives (oder auch Backup/Restore ĂŒben). collabora ist geshared - dann hat man das Monster nur einmal am Laufen


1 Like

Die Backup sieht ja vielversprechend aus.
Eigentlich genau das, was mir immer fehlte.

@wwe
Die Diagramm gefÀllt mir, super.
Wobei dein System nach High_End aussieht mit Coturn und Collabora.

Ein kleiner feiner pi-hole ist auch dabei. :slight_smile:

Wo hast Du dein /data, deine Daten?
Warum hast Du die nicht auf einer extra HDD, evtl. sogar auf einem extra Raid-HDD-System?

MfG
nc-kay

Heute ist Freitag

Auf meinen neue VPS mit Ubuntu 20.04 kann ich per ssh zugreifen.

|Betriebssystem: |Linux 5.11.0-1028-oracle aarch64|
4 Arm-basierte Ampere A1-Kerne und 24 GB Speicher
cat /etc/lsb-release 
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=20.04
DISTRIB_CODENAME=focal
DISTRIB_DESCRIPTION="Ubuntu 20.04.3 LTS"

ssh Terminal:

sudo apt
sudo apt dist-upgrade

Meine Vorlage:

Nextcloud Server – mit Docker Compose und Traefik installieren | goNeuland

sudo -s

Grundordner Anlegen:

mkdir -p /opt/containers/nextcloud/{database,app,daten}

Docker Compose anlegen:

cd /opt/containers/nextcloud/
nano docker-compose.yml
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.testbereich.net`)"
      - "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.testbereich.net`)"
      - "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
  1. MySQL Root Passwort Àndern
    
  2. MySQL User Kennwort Àndern
    
  3. MySQL User fĂŒr Nextcloud Ă€ndern
    
  4. 2x eure Domain bei Traefik anpassen („nextcloud.euredomain.de“)