Project

General

Profile

Demande #2795

Mise à jour de Owncloud vers Nextcloud

Added by Frédéric Couchet almost 2 years ago. Updated 1 day ago.

Status:
En cours de traitement
Priority:
Normale
Assignee:
Category:
-
Target version:
Start date:
11/25/2017
Due date:
% Done:

0%

Difficulté:
4 Fastidieux

Description

Suite à la mise à jour de la VM lamp / valise.april.org en Debian Stretch, la version de owncloud a du être mis en hold parce que le paquet est absent de Stretch.

Notes de migration par import/export: https://pad.april.org/p/migration-owncloud-nextcloud
Anciennes notes de migration: https://pad.april.org/p/725QGORbZO

  • /var/lib/owncloud/data contient les fichiers et son volume est < 250MB
  • /var/lib/mysql/valise contient la base de donnée et son volume est < 1MB
  • Le calendrier partagé est utilisé
  • La base de contacts contient environ 1500 entrées
  • Utilisateurs actifs : egonnu, epottier, ivanni, madix

TODO:

History

#1 Updated by Quentin Gibeaux over 1 year ago

  • Assignee set to Vincent-Xavier JUMEL
  • Target version changed from Backlog to Février 2018

Ne pas toucher à la prod, tester sur une version séparée

#2 Updated by François Poulain over 1 year ago

@xv, comme discuté sur irc l'autre jour, j'ai au moins un autre owncloud qui doit subir la même migration. Donc je vais prochainement ansibler une migration de owncloud7 vers nextcloud last, sur db et vhost alternatif, avec une base de tests fonctionnels.

#3 Updated by Vincent-Xavier JUMEL over 1 year ago

Tu es sur que ça va s'ansibler ? Avec le problème qu'il faut sortir d'un paquet Debian ?

Cela dit, je viens d'ansibler du déploiment de machine et je suis plutôt partant pour le faire ainsi.

#4 Updated by Vincent-Xavier JUMEL over 1 year ago

Quelques infos en vrac résultants entre autre de ma propre expérience :
- la migration n'est possible qu'à partir de OC 8 vers NC 8 (https://help.nextcloud.com/t/migrating-from-owncloud-to-nextcloud/551)
- il vaut mieux faire les migration mineures par mineures et mettre à jour les applis au fur et à mesure
- on peut s'inspirer de cette procédure : https://lacavernedemanu.fr/articles/migration-d'owncloud-vers-nextcloud-sous-debian

#5 Updated by Quentin Gibeaux over 1 year ago

  • Target version changed from Février 2018 to Mars 2018

#6 Updated by Vincent-Xavier JUMEL over 1 year ago

  • Difficulté changed from 2 Facile to 4 Fastidieux

J'ai profité de l'April Camp : http://pad.april.org/p/725QGORbZO

#7 Updated by Vincent-Xavier JUMEL over 1 year ago

Contacter Isabella, Benj et Elsa pour vérifier l'usage de Owncloud/Nextcloud.

Prévoir une à deux journée en présentiel au local pour la recette.

#8 Updated by Quentin Gibeaux over 1 year ago

  • Target version changed from Mars 2018 to Avril 2018

#9 Updated by Quentin Gibeaux over 1 year ago

  • Target version changed from Avril 2018 to Mai 2018

Poursuite des travaux en mai

#10 Updated by Quentin Gibeaux over 1 year ago

  • Target version changed from Mai 2018 to Juin 2018

#11 Updated by Quentin Gibeaux about 1 year ago

  • Target version changed from Juin 2018 to Été 2018

#12 Updated by Quentin Gibeaux about 1 year ago

  • Target version changed from Été 2018 to Septembre 2018

#13 Updated by Quentin Gibeaux 12 months ago

  • Target version changed from Septembre 2018 to Backlog

#14 Updated by Loïc Dachary 7 days ago

  • Description updated (diff)

#15 Updated by Loïc Dachary 7 days ago

  • Description updated (diff)

#16 Updated by Loïc Dachary 7 days ago

  • Status changed from Nouveau to En cours de traitement
  • Assignee changed from Vincent-Xavier JUMEL to Loïc Dachary

#17 Updated by Loïc Dachary 7 days ago

  • Description updated (diff)

#18 Updated by Loïc Dachary 7 days ago

  • Description updated (diff)

#19 Updated by Loïc Dachary 7 days ago

  • Description updated (diff)

#20 Updated by Loïc Dachary 7 days ago

Etant donné que:

  • Il y a 4 utilisateurs actifs, tous permanents de l'April
  • Qu'il y a très peu de documents (quelques dizaines de photos, une douzaine de fichiers) et pas de partage de document par lien public
  • Que seuls les applications calendrier et contact sont utilisées

Une migration pourrait se faire avec:

  • Export des calendriers et contacts
  • Import dans un Nextcloud tout neuf
  • Création des groupes et des comptes manuellement
  • Copie manuelle des fichiers qui doivent l'etre
  • Passer le temps qu'il faut avec chaque utilisateur pour s'assurer que les accès aux contacts et calendrier sur la nouvelle valise sont fonctionels

Autrement dit on export/import au lieu de migrer. A ce stade c'est juste une idée, si quelqu'un voit une raison pour laquelle ça ne marcherait pas ou serait beaucoup plus long que la migration, c'est le moment.

#21 Updated by François Poulain 7 days ago

C'est pas une mauvaise stratégie. J'ai pas d'avis sur qui d'une migration ou un upgrade est le plus rapide. Dans tous les cas, passer en revue les confs avec l'utilisateur final est un bon plan.

#22 Updated by Christian P. Momon 7 days ago

Cette procédure semble le faire bien.

De plus le Owncloud installé est la version 7 alors que les procédures de migration de Nextcloud prennent en charge à partir de la version 8.2 :

(April) root@lamp:~# dpkg -l |grep owncloud
hi  owncloud                       7.0.4+dfsg-4~deb8u4                          all          cloud storage for files, music, contacts, calendars and many more

https://nextcloud.com/migration/
The Nextcloud migration tool
The easiest way to migrate is using our migration tool. This tool supports ownCloud 8.2 to ownCloud 10, migrating to the appropriate Nextcloud release automatically.

#23 Updated by Loïc Dachary 6 days ago

  • Description updated (diff)

#24 Updated by Loïc Dachary 6 days ago

La machine lamp a php 7.0. Il faut au minimum php 7.1 (7.2 ou 7.3 recommandés) pour installer Nextcloud. Trois possibilités:

- Installer Nextcloud 16 sur une machine séparée
- Upgrader lamp à 7.3
- Installer Nextcloud 15

#25 Updated by Loïc Dachary 6 days ago

Un consensus se dégage pour installer Nextcloud 15 qui est compatible php 7.0.

#26 Updated by Loïc Dachary 6 days ago

Sauf que en fait non parce que... lamp fait tourner php5 et non php7. Activer php7 c'est prendre le risque de créer des problèmes dans un nombre indeterminé de services qui en dépendent. Une idée pour avancer ?

#27 Updated by Loïc Dachary 6 days ago

Quentin propose:

configurer un php-fpm en php7 et garder du php-apache en php5
un truc genre :

<FilesMatch ".+\.ph(p[3457]?|t|tml)$">
    SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost" 
</FilesMatch>

directement dans le <directory></directory> de nextcloud

si tu installes le paquet php7.0-fpm, suffit de regarder /etc/apache/conf-available/php7.0-fpm.conf et dupliquer son contenu au sein de la conf site-enabled/nextcloud

#28 Updated by Loïc Dachary 6 days ago

https://admin.april.org/doku.php?id=sysadm:applications:photos.april.org est une VM qui a une configuration lamp avec php7, isolée en raison d'une vulnérabilité https://agir.april.org/issues/2996

#29 Updated by Loïc Dachary 5 days ago

mv /var/www/valise-new.april.org /var/www/valise-new.april.org /var/www/valise-new.april.org.remove-me-december-2019
cd /var/www
wget https://download.nextcloud.com/server/releases/nextcloud-15.0.11.tar.bz2
tar -xvf nextcloud-15.0.11.tar.bz2
mv nextcloud valise-new.april.org
mkdir valise-new.april.org/data
chown -R www-data:www-data valise-new.april.org
apt-get install php7.0-fpm php-curl
a2enmod proxy_fcgi
cat /etc/apache2/sites-available/valise-new.april.org.conf 
<VirtualHost *:80>
        ServerName valise-new.april.org

        DocumentRoot /var/www/valise-new.april.org
        ErrorLog /var/log/apache2/valise.april.org/valise-new.april.org-error.log
        CustomLog /var/log/apache2/valise.april.org/valise-new.april.org-access.log combined-proxy

        <Directory /var/www/valise-new.april.org>
           SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1
           <FilesMatch ".+\.ph(p[3457]?|t|tml)$">
                SetHandler "proxy:unix:/run/php/php7.0-fpm.sock|fcgi://localhost" 
           </FilesMatch>
        </Directory>

    DirectoryIndex index.php

</VirtualHost>
    sudo mysql -u root
    CREATE DATABASE nextcloud_db;
    CREATE USER nextcloud_db IDENTIFIED BY 'xxx';
    GRANT ALL PRIVILEGES ON nextcloud_db.* TO 'nextcloud_db';
    flush privileges;
cd /var/www/valise-new.april.org
php occ maintenance:install --database-host=127.0.0.1 --database "mysql" --database-name "nextcloud_db"  --database-user "nextcloud_db" --database-pass "xxxx" --admin-user "admin" --admin-pass "xxxx" 
chown -R www-data:www-data .
sudo -u www-data php -f occ config:system:set trusted_domains 1 --value valise-new.april.org
sudo -u www-data php -f occ config:system:set trusted_domains 2 --value valise.april.org
sudo -u www-data php occ app:install calendar
sudo -u www-data php occ app:install contacts
sudo -u www-data php occ app:install impersonate
sudo -u www-data php occ config:system:set mail_domain --value=april.org --type string
sudo -u www-data php occ config:system:set mail_from_address --value=noreply --type string
sudo -u www-data php occ config:system:set mail_smtphost --value=127.0.0.1 --type string
sudo -u www-data php occ config:system:set mail_smtpmode --value=php --type string
sudo -u www-data php occ config:system:set mail_smtpport --value=25 --type int
sudo -u www-data php occ group:add 'dotproject'
sudo -u www-data php occ group:add 'CA'
sudo -u www-data php occ group:add 'permanents'
sudo -u www-data php occ user:add -g permanents -g dotproject -g admin madix
sudo -u www-data php occ user:setting madix settings email fcouchet@april.org
sudo -u www-data php occ user:add -g permanents -g dotproject egonnu
sudo -u www-data php occ user:setting egonnu settings email egonnu@april.org
sudo -u www-data php occ user:add -g permanents -g dotproject epottier
sudo -u www-data php occ user:setting epottier settings email epottier@april.org
sudo -u www-data php occ user:add -g permanents -g dotproject ivanni
sudo -u www-data php occ user:setting ivanni settings email ivanni@april.org

#30 Updated by Loïc Dachary 5 days ago

  • Description updated (diff)

#31 Updated by Loïc Dachary 5 days ago

En raison du reverse proxy il faut ajouter dans /var/www/valise-new.april.org/config/config.php

  'overwriteprotocol' => 'https',

#32 Updated by Loïc Dachary 5 days ago

  • Description updated (diff)

#33 Updated by Loïc Dachary 1 day ago

Pour archive remote.php (caldav endpoint) ne fonctionait pas (erreur 401 not authorized) parce que php7 FPM n'avait pas la variable d'environnement contenant les crédentials. C'est pour cela que SetEnvIfNoCase ^Authorization$ "(.+)" HTTP_AUTHORIZATION=$1 a été ajouté.

#34 Updated by Loïc Dachary 1 day ago

  • Description updated (diff)

Also available in: Atom PDF