Migrazione da Owncloud a Nextcloud
La migrazione è possibile da Owncloud 10.13 a Nextcloud 25, poi si aggiorna.
La migrazione verrà fatta da una installazione in OS ad una con container Docker
Usare il docker-compose.yml:
services:
nextcloud-cro-db:
image: mariadb:10.6
container_name: nextcloud-cro-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./mysql:/var/lib/mysql
- ./docker-entrypoint-initdb.d:/docker-entrypoint-initdb.d
environment:
- TZ=Europe/Rome
- MYSQL_ROOT_PASSWORD=rootnext
- MYSQL_PASSWORD=6MtE2Dmq
- MYSQL_DATABASE=owncloud
- MYSQL_USER=owncloud
nextcloud-cro-redis:
image: redis:alpine
container_name: nextcloud-cro-redis
restart: unless-stopped
nextcloud-cro-app:
container_name: nextcloud-cro-app
image: nextcloud:25
restart: always
ports:
- 8182:80
#links:
depends_on:
- nextcloud-cro-db
- nextcloud-cro-redis
volumes:
- ./www:/var/www/html
- ./data:/var/www/html/data
- ./custom_apps:/var/www/html/custom_apps
- ./config:/var/www/html/config
environment:
- TZ=Europe/Rome
#- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.croalliance.com
- APPIMAGE_EXTRACT_AND_RUN=1
#- TRUSTED_PROXIES=192.168.10.125
#- OVERWRITEHOST=nextcloud.croalliance.com
#- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=6MtE2Dmq
- MYSQL_DATABASE=owncloud
- MYSQL_USER=owncloud
- MYSQL_HOST=nextcloud-cro-db
- REDIS_HOST=nextcloud-cro-redis
nextcloud-cro-cron:
image: nextcloud:25
container_name: nextcloud-cro-cron
restart: unless-stopped
environment:
- TZ=Europe/Rome
#- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.croalliance.com
- APPIMAGE_EXTRACT_AND_RUN=1
#- TRUSTED_PROXIES=192.168.10.125
#- OVERWRITEHOST=nextcloud.croalliance.com
#- OVERWRITEPROTOCOL=https
- MYSQL_PASSWORD=6MtE2Dmq
- MYSQL_DATABASE=owncloud
- MYSQL_USER=owncloud
- MYSQL_HOST=nextcloud-cro-db
volumes:
- ./www:/var/www/html
- ./data:/var/www/html/data
- ./custom_apps:/var/www/html/custom_apps
- ./config:/var/www/html/config
entrypoint: /cron.sh
depends_on:
- nextcloud-cro-app
# nextcloud-cro-phpmyadmin:
# image: phpmyadmin
# container_name: nextcloud-cro-phpmyadmin
# restart: always
# ports:
# - 8888:80
# environment:
# - PMA_ARBITRARY=1
# - MYSQL_ROOT_PASSWORD=rootnext
# - PMA_HOST=nextcloud-cro-db
Esportare il DB da owncloud 10.13:
mysqldump --databases owncloud > owncloud.sql
Prepararlo per il caricamento automatico nel container docker:
mkdir docker-entrypoint-initdb.d/
mv owncloud.sql docker-entrypoint-initdb.d/
Copiare la config di Owncloud e cambiare il DB Host:
mkdir config cp /var/owncloud/config/config.php /home/docker/nextcloud.croalliance.com/config/config.php
cambiare
vi config/config.php
'dbhost' => 'nextcloud-cro-db',
Verificare in config.php i valori di:
'dbname' => 'owncloud', 'dbuser' => 'theusername', 'dbpassword' => 'thepassword',
Impostare docker-compose.yml per nextcloud 25 e parametri mysql uguali a Owncloud, tranne MYSQL_HOST
nextcloud-cro-app: image: nextcloud:25 environment: MYSQL_HOST=nextcloud-cro-db MYSQL_USER=theusername MYSQL_PASSWORD=thepassword MYSQL_DATABASE=owncloud # ...nextcloud-cro-cron: image: nextcloud:25 environment: MYSQL_HOST=nextcloud-cro-db MYSQL_USER=theusername MYSQL_PASSWORD=thepassword MYSQL_DATABASE=owncloud # ...nextcloud-cro-db: MYSQL_USER=theusername MYSQL_PASSWORD=thepassword MYSQL_DATABASE=owncloud
Per poter accedere senza reverse proxy, disabilitare i settaggi in conig.php e i docker-compose.yml per accedere direttamente come http://ip.of.docker.host:8182
vi docker-compose.yml
nextcloud-cro-app:
environment:
#- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.example.com
#- TRUSTED_PROXIES=192.168.10.125
#- OVERWRITEHOST=nextcloud.example.com
#- OVERWRITEPROTOCOL=https
vi config/config.php
#'forcessl' => true, #'overwriteprotocol' => 'https',
Avviare solo il DB per caricare i dati:
docker compose up nextcloud-cro-db
Attendere il completamento di entrypoint-initdb.d
Spegnere il DB
docker compose down
Avviare lo stack
docker compose up
Attendere che si avvi, loggandosi all apgina http://ip.of.docker.host:8182 dove viene richiesto di fare upgrade. Se non chiede upgrade, interrompere ed indagare.
Lanciare l'upgrade manualmente
docker compose exec -u www-data nextcloud-cro-app php occ upgrade -v
Sistemare il DB:
docker compose exec -u www-data nextcloud-cro-app php occ db:convert-filecache-bigint docker compose exec -u www-data nextcloud-cro-app php occ db:add-missing-indices docker compose exec -u www-data nextcloud-cro-app php occ db:add-missing-columns docker compose exec -u www-data nextcloud-cro-app php occ db:add-missing-primary-keys
Disabilitare la maintenance e testare:
docker compose exec -u www-data nextcloud-cro-app php occ maintenance:mode --off
Accedere http://ip.of.docker.host:8182
Aggiornare i files:
docker compose exec -u www-data nextcloud-cro-app php occ files:scan --all
Impostare i parametri in docker-compose.yml:
nextcloud-cro-app:
environment:
- NEXTCLOUD_TRUSTED_DOMAINS=nextcloud.example.com
- TRUSTED_PROXIES=192.168.10.125
- OVERWRITEHOST=nextcloud.example.com
- OVERWRITEPROTOCOL=https
Configurare il reverse proxy di frontend, e verificare i check dalla pagina "Administration".
Proseguire aggiornando di una versione alla volta da docker-compose.yml cambiando il tag dell'image di un versione alla volta nei container -app e -cron