Nextcloud LogoCela faisait quelques temps que je voulais installer Nextcloud sur mon serveur NAS Synology DS713+. J'utilisais jusqu'à présent Owncloud grâce à un paquet proposé par la communauté et j'attendais un paquet Nextcloud mais celui-ci ne venant pas, j'ai décidé de sauter le pas en suivant les différents tutoriels trouvé sur le Net.

Voici ma source principale : https://luvis.se/software/install-nextcloud-on-synology-dsm-6/

Source plus récente à privilégier : https://www.cachem.fr/synology-nextcloud/

Autres sources :

Rajouté le 20/01/2021 : lien vers un pas à pas détaillé https://www.hebergeurcloud.com/installer-nextcloud-sur-synology-nas/

Rajouté le 19/10/2019 : lien vers la nouvelle section Nextcloud de Sébastien Sauvage https://sebsauvage.net/wiki/doku.php?id=nextcloud

Remarque :
Après avoir modifié le fichier de configuration /config/config.php, Nextcloud refusait absolument de démarrer !!! Panique à bord : va-t-il falloir que je réinstalle tout ?
Merci à l'auteur du site ci-dessus pour l'astuce : en fait, il faut redonner les droits de lecture/écriture aux fichiers lors d'une mise à jour !!!

Pour débloquer des fichiers bloqués, voir ici (je n'ai pas testé) : https://help.nextcloud.com/t/file-is-locked-how-to-unlock/1883/8

Pour rescanner tous les fichiers (et éventuellement les débloquer) :

sudo -u http php56 occ files:scan --all

 Pour se mettre (ou s'enlever) en mode "Maintenance" :

sudo -u http php56 occ maintenance:mode --on

Au 23/12/2018, Nextcloud fonctionne parfaitement notamment les mises à jour automatiques : je viens de passer à la version 14.0.4 sans aucun problème (il faut juste attendre que les sauvegardes se fassent puis continuer la MAJ en la relançant une 2e fois).

Au 5/07/2019, la mise à jour de Nextcloud 14.0.4 vers 15.0.9 ne se fait pas (heureusement qu'on peut réinstaller le backup). Info pour update ici : http://blog.viking-studios.net/en/your-own-cloud-nextcloud-update-on-a-synology-diskstation-and-dsm-6/ (non testé).
Au 10/07/2019, lors de la mise à jour via l'updater, il faut relance plusieurs fois l'update en appuyant sur le bouton "Retry Update" notamment durant la partie "Backup". Par contre, on arrive à un message d'erreur à l'étape 9 "Delete Old file", indiquant qu'il manque le fichier "core/shipped.json". Qu'à cela ne tienne on crée le dossier core :

mkdir /volume1/web/nextcloud/core

Puis le fichier shipped.json :

touch /volume1/web/nextcloud/core/shipped.json

Pour finir, on leur donne comme propriétaire "http" :

sudo chown -R http:http /volume1/web/nextcloud/core

Il ne reste plus qu'à relancer l'updater et là la mise à jour se poursuivra "normalement" jusqu'à un message d'erreur final sans incidence car en attendant un peu, Nextcloud redeviendra accessible (au départ on a une page en erreur 504, puis une indication que le site est en maintenance). Du coup, j'en ai profité pour passer de la version 14.0.2 à la 15.0.10 puis j'ai recommencé pour arriver à la version 16.0.3.

Pour lancer la commande "occ" dans le répertoire "nextcloud", il faut saisir une commande du style :

sudo -u http php72 occ db:add-missing-indices

 

Après une tentative de mise à jour automatique de la version 16 à la 17, mon installation a planté mais heureusement que lors du processus, un backup avait été quand même effectué (ainsi que le éléchargement de la nouvelle version de Nextcloud... Il a donc fallu que je passe par une mise à jour manuelle en suivant ces indications : https://docs.nextcloud.com/server/16/admin_manual/maintenance/manual_upgrade.html

 

Installation de Nextcloud Hub 18.0.4 (le 24/05/2020)

J'ai dû réinstaller Nextcloud suite à une défaillance du disque dur en me servant des tutoriels ci-dessus et de cette page https://lofurol.fr/joomla/electronique/220-nas-syno-acces-a-son-nas-et-d-autres-machines-astuces. Pour optimiser et éviter les messages d'erreurs, j'ai dû :

  • installer le module php Imagik, ce qui n'est pas une sinécure. Aussi bizarre cela soit-il, la version PHP 7.3 de Synology ne comporte pas le module "Imagick", il faut donc bidouiller en suivant ce tutoriel ici (attention en copiant les lignes de commandes, il y a 1 erreur sur un dossier après extraction de php, il faut remplacer les -- dans les lignes de commandes) : https://mariushosting.com/how-to-add-php-imagick-extension-on-synology-nas/
  • à la racine du web station, /volume2/web/, pour me débarrasser des erreurs "/.well-known/carddav", (voir documentation) j'ai créé un fichier .htaccess dans lequel on trouve ces lignes :
    <IfModule mod_rewrite.c>
     RewriteEngine on
    RewriteRule ^\.well-known/host-meta /nextcloud/public.php?service=host-meta [QSA,L]
    RewriteRule ^\.well-known/host-meta\.json /nextcloud/public.php?service=host-meta-json [QSA,L]
    #RewriteRule ^\.well-known/webfinger /nextcloud/public.php?service=webfinger [QSA,L]
    RewriteRule ^\.well-known/carddav /nextcloud/remote.php/dav [R=301,L]
    RewriteRule ^\.well-known/caldav /nextcloud/remote.php/dav [R=301,L]
    RewriteRule ^\.well-known/nodeinfo /nextcloud/index.php/.well-known/nodeinfo [R=301,L]
    RewriteRule ^\.well-known/webfinger /nextcloud/index.php/.well-known/webfinger [R=301,L] </IfModule>
  • dans le fichier /volume2/web/nextcloud/config/config.php, j'ai rajouté cette ligne :
    'memcache.local' => '\OC\Memcache\APCu'
  • activer HSTS en rajoutant dans le fichier /volume2/web/nextcloud/.htacces, juste au-dessous de la 1ère ligne <IfModule mod_headers.c>, en laissant 2 espaces, cette ligne :
    Header always set Strict-Transport-Security "max-age=15768000; includeSubDomains; preload"
  • En cas de problème pour réparer une installation :
    sudo -u http php80 /occ maintenance:repair