====== nextcloud mit Docker Compose ====== Dafür gibt es mehrere Wege: * [[https://github.com/nextcloud/all-in-one#nextcloud-all-in-one|Docker all-in-one-Image der Nextcloud GmbH]] * [[https://hub.docker.com/_/nextcloud|Docker Official nextcloud Image]] * ... und wahrscheinlich viele weitere Wege mehr. -> Wir nutzen hier im Beispiel das "Docker Official Image", das ist aber keine Empfehlung in die eine oder andere Richtung. ===== Pakete ===== * Debian (12): ''pwgen'' ===== Nextcloud Docker Compose vorbereiten ===== mkdir -p /srv/docker/nextcloud/ cd /srv/docker/nextcloud/ MYSQL_ROOT_PASSWORD=$(pwgen 20 1) MYSQL_PASSWORD=$(pwgen 20 1) cat < docker-compose.yml version: '2' services: db: image: mariadb:10.6 restart: always command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW volumes: - ./db:/var/lib/mysql environment: - MYSQL_ROOT_PASSWORD=$MYSQL_ROOT_PASSWORD - MYSQL_PASSWORD=$MYSQL_PASSWORD - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud app: image: nextcloud:27.1.1 #image: nextcloud:27.1.6 #image: nextcloud:28.0.2 #image: nextcloud:latest restart: always ports: - 8080:80 links: - db volumes: - ./nextcloud:/var/www/html environment: - MYSQL_PASSWORD=$MYSQL_PASSWORD - MYSQL_DATABASE=nextcloud - MYSQL_USER=nextcloud - MYSQL_HOST=db COMPOSE ===== Container starten ===== docker compose up -d docker compose logs -f -> Nextcloud einrichten unter http://localhost:8080 ===== Nextcloud Update ===== TODO: besser docker volumes in BTRFS nutzen statt Backup mit tar -> http://localhost:8080/settings/admin/overview Aktuellere Minor- oder Major-Version suchen: curl -L -s 'https://registry.hub.docker.com/v2/repositories/library/nextcloud/tags?page_size=1024' | jq '."results"[]["name"]' docker compose down tar cf db-27.1.1.tar.zstd --use-comp=zstd db tar cf nextcloud-27.1.1.tar.zstd --use-comp=zstd nextcloud/ -> ''docker-compose.yml'' bearbeiten docker compose up -d docker compose logs -f