Nextcloud (PI)

Einführung

Erstellen eines Docker Containers für Nextcloud. 

Voraussetzung

  • Raspberry Pi mit Raspbian OS
  • Docker
  • Docker-Compose
  • SWAG Setup

Container erstellen

Docker-Compose File:

version: '3'

services:
  nextcloud-db:
    image: linuxserver/mariadb
    container_name: nextcloud-db
# führt zu Fehler im linuxserver image
#    command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
    restart: unless-stopped
    volumes:
      - /sharedfolders/AppDataSD/nextcloud-mariadb-config:/config
    environment:
     - MYSQL_ROOT_PASSWORD=73SolitonSQL
     - PUID=1000
     - PGID=1000
     - TZ=Europe/Berlin
     - MYSQL_PASSWORD=73SolitonSQL
     - MYSQL_DATABASE=nextcloud
     - MYSQL_USER=nextcloud
    ports:
       - "3306:3306"

  nextcloud:
    image: linuxserver/nextcloud
    container_name: nextcloud
    environment:
      - PUID=1000
      - PGID=1000
      - TZ=Europe/Berlin
    volumes:
      - /sharedfolders/AppDataSD/nextcloud-config:/config
      - /sharedfolders/Nextcloud-Data:/data
    ports:
      - 447:443
    restart: unless-stopped
networks:
  default:
    external:
      name: nextcloud-net
 

Erstelle Docker Network (falls nicht vorhanden):

docker network create nextcloud-net

Container starten:

docker-compose -f  nextcloud_mariadb_docker-compose.yml up -d

Update Nextcloud

Nextcloud Container stoppen und löschen:

docker rm -f nextcloud

Neue images für Nextcloud herunterladen (immer nur ein Major Versionsupgrade möglich):

docker image pull nextcloud:<major current version + 1>

Docker-compose ausführen:

docker-compose -f nextcloud_mariadb_docker-compose.yml up -d

Als Admin einloggen und auf Einstellungen > Verwaltung: Übersicht gehen. Falls alte Version angezeigt wird und der Button ‚Updater‘ nicht angezeigt wird, dann im File \nextcloud-config\www\nextcloud\lib\private\Updater.php folgende Zeilen (ca. Zeile 200) suchen:

if ($currentVendor === ’nextcloud‘) {

return isset($allowedPreviousVersions[$currentVendor][$majorMinor])

&& (version_compare($oldVersion, $newVersion, ‚<=‘) ||

$this->config->getSystemValue(‚debug‘, false));

}

// Check if the instance can be migrated

return isset($allowedPreviousVersions[$currentVendor][$majorMinor]) ||

isset($allowedPreviousVersions[$currentVendor][$oldVersion]);

und jeweils ersetzen durch ‚return true;‘

Nextcloud Container erneut starten und prüfen ob ‚Updater‘ verfügbar ist. Falls ja, dann Upgrade durchführen. Während es Updates kann es mehrmals zu Fehlermeldungen kommen. Einige Minuten warten und Update fortsetzen. Falls Nextcloud im Maintenance Mode hängen bleibt, in der Datei \nextcloud-config\www\nextcloud\config\config.php die Zeile mit Maintenance löschen und Nextcloud erneut starten.