Libre Linux Synology

Installer Nextcloud sur son NAS Synology en une poignée de minutes ! (Sur DSM 6)

Vous avez un Nas Synology, mais comme moi, vous souhaitez aller plus loin que CloudStation, la solution maison de Synology.
Vous avez certainement entendu parler de Nextcloud, un fork d’Owncloud qui a bien grandi et évolué !

Des clients destkop (Windows, Mac, Linux) et mobile (Android, iOS, Windows 10) sont disponibles, permettant d’arriver au niveau d’un Google Drive, Onedrive, Dropbox etc. sans sourciller. Malheureusement, le paquet n’existe pas nativement sur Synology, imposant une installation manuelle, loin d’être irréalisable mais qui demande quelques tours de passe-passe.

PRÉREQUIS

Commençons par installer et activer les paquets nécessaires, en passant par le Centre de paquets de Synology :

  • WebStation
  • Serveur Apache 2.4
  • PHP 7.0
  • MariaDB 10
  • phpMyAdmin

Créons dès à présent le dossier dans lequel les données de votre Nextcloud seront stockées : il est préférable que celui-ci soit séparé hors du dossier web, et différent du dossier d’installation de Nextcloud.

Rendez-vous dans File Station ou directement dans le Panneau de Configuration de Synology pour créer un nouveau dossier partagé, « Nextcloud » ou « Nextcloud Data » par exemple. Sélectionnez l’emplacement de ce dossier sur vos volumes, puis appliquez pour finaliser la création. Vous pouvez choisir de chiffrer ou non le dossier, de cacher le dossier des utilisateurs sans droits etc.

CONFIGURATION PRÉALABLE

Si vous utilisez déjà des bases de données sur votre NAS, vous pouvez passer directement à la partie Installation de cet article.

Base de données

Une fois MariaDB 10 installé et activé, il faut ajouter un mot de passe, ce dernier étant vide par défaut. Lancez MariaDB 10 puis cliquez sur « Changer le mot de passe MariaDB », et ajoutez-le à votre gestionnaire de mots de passe préféré 😉

Connectez-vous à phpMyAdmin pour créer un utilisateur dédié à votre Nextcloud à l’aide de l’identifiant ‘root’ et du mot de passe choisi précédemment (soit en cliquant sur l’icône de l’interface web du Synology, soit en vous rendant directement sur domaine.tld/phpMyAdmin). Dans l’onglet Comptes d’utilisateurs, cliquez sur « Ajouter un compte d’utilisateur ».

Entrez le nom de l’utilisateur voulu, sélectionnez « localhost » et choisissez un mot de passe fort. Cochez également la case « Créer une base portant son nom et donner à cet utilisateur tous les privilèges sur cette base. »

WEBSTATION

Ouvrez WebStation, sélectionnez dans les paramètres généraux Apache 2.4 et PHP 7.0, et activez « Site Web personnel » si ça n’est pas le cas

Rendez-vous dans l’onglet Paramètres PHP, puis double-cliquez sur PHP 7.0 pour modifier le profil.

Nous allons commencer par modifier le champ open_basedir en ajoutant le chemin du dossier Data de Nextcloud (Le dossier créé précédemment), précédé de  » : « , soit « :/volume2/Nextcloud », en choisissant bien le volume de votre dossier partagé.

Vérifiez également que les extensions curl, gd, mysqli, openssl, pdo_mysql et zip sont bien activées.

Dans l’onglet Cœur, configurez les lignes suivantes pour utiliser MariaDB 10 :

  • mysqli.default_port          3307
  • mysqli.default_socket     /run/mysqld/mysqld10.sock

INSTALLATION

DÉPLOIEMENT DE NEXTCLOUD

Première étape, télécharger Nextcloud depuis le site officiel

Déposez le fichier zip dans votre dossier /web via FileStation, puis dézippez son contenu à la racine de /web. Vous devriez obtenir un dossier /nextcloud.

Il s’agit maintenant d’attribuer les bonnes permissions aux différents fichiers et dossiers : il va vous falloir personnaliser le script ci-dessous en fonction des dossiers dans lesquels vous avez installé Nextcloud et le dossier choisi pour les data, puis enregistrez le fichier sur votre serveur dans un fichier « script.sh » que vous stockerez sur votre serveur, afin de l’exécuter en SSH (vous pouvez aussi exécuter commande après commande directement en SSH)

#!/bin/bash

chown -R http:http /volume1/web/nextcloud/
chown -R http:http /volume1/web/nextcloud/apps/
chown -R http:http /volume1/web/nextcloud/config/
chown -R http:http /volume1/web/nextcloud/themes/

chown -R http:http /volume2/Nextcloud/

chown http:http /volume1/web/nextcloud/.htaccess

find /volume1/web/nextcloud/ -type f -print0 | xargs -0 chmod 777

find /volume1/web/nextcloud/ -type d -print0 | xargs -0 chmod 777
find /volume2/Nextcloud/ -type d -print0 | xargs -0 chmod 777

chmod 777 /volume1/web/nextcloud/.htaccess

Il suffit maintenant d’exécuter le script depuis son dossier :

ssh user@mon-domaine.tld

### Entrer mot de passe user

sudo -i

### Entrer mot de passe user

sh /chemin/du/script/mon-script.sh

CONFIGURATION DE NEXTCLOUD

Et voilà ! il ne vous reste plus qu’à accéder à l’adresse domaine.tld/nextcloud, et remplir les champs avec les infos suivantes :

Attention ! il faut absolument que l’utilisateur créé soit « admin » pour le premier utilisateur créé, un bug empêchant d’accéder à l’utilisateur / de configurer une adresse mail ou de changer le mot de passe si vous choisissez un autre nom d’utilisateur.

  • Username : admin
  • Mot de passe : un mot de passe fort 😉
  • Data folder : /VolumeX/Nextcloud

Database :

  • Choisir MariaDB
  • Database user : celui que vous avez créé
  • Database password : celui que vous avez créé
  • Database name : normalement le même que le user
  • Adress : 127.0.0.1:3307 si vous êtes sur MariaDB 10 (et non localhost !)

Il n’y a plus qu’à cliquer sur Finish Setup !

Une fois l’installation terminée, accédez à l’onglet Utilisateurs pour créer votre utilisateur, entrer votre mot de passe et votre email, voire ajouter l’utilisateur dans le groupe admin.

CONFIGURER VOTRE CLOUD SUR UN SOUS-DOMAINE

Première étape, déclarer le sous-domaine dans la zone DNS de votre fournisseur de nom de domaine (ou registrar) et effectuer une redirection CNAME vers le domaine pointant sur votre NAS.

Dans Web Station, onglet Virtual Host, cliquer sur Créer puis entrer le nom de domaine souhaité dans le champ « Nom d’hôte », « cloud.domaine.tld » par exemple.

  • Les ports par défaut (80 / 443) devraient convenir (sauf en cas de configuration particulière).
  • Dans le champ « Racine du document », cliquer sur « Parcourir », puis sélectionner le dossier nextcloud dans le dossier web.
  • Activez le HSTS, optionnellement le HTTP/2, et sélectionnez Nginx en serveur web, ainsi que le profil PHP 7.0.

Rendez-vous ensuite dans le panneau de configuration pour créer un certificat de sécurité, puis le configurer sur le sous-domaine nouvellement créé.

Par sécurité, Nextcloud empêche l’accès depuis des domaines non déclarés. Il va donc falloir ajouter votre sous-domaine au fichier de configuration.

Connectez-vous à nouveau en SSH à votre serveur (en super utilisateur) comme précédemment, puis rendez-vous dans le dossier /volume1/web/nextcloud/config/

Ajoutez votre sous-domaine en éditant le fichier « config.php » :

<?php

 [...]
  
  'trusted_domains' =>
  array (
    0 => 'domaine.tld',
    1 => 'cloud.domaine.tld',
  ),
  
  [...]
  
);

Sauvegardez votre fichier puis quittez.

Vous pouvez maintenant accéder à  votre Nextcloud depuis votre sous-domaine en toute sécurité 🙂

A vous la gestion autonome de vos données, l’installation d’extensions, des applications mobiles et pour ordinateur et mettre en place la synchronisation de vos données !

5 Commentaires
  1. Jean 3 mois ago
    Répondre

    Hello superbe source d’informations.!!!

    Je ne comprend pas une chose: Pourquoi passer sur NEXTCLOUD??? DSM de synology propose déja ces fonctionnalités:
    drive, calendar, contact, note apps, serveur mails, client mail …
    pourquoi passer sur next cloud ? j’esssaie de comprendre ce que nextcloud a de plus plus que synodsm( derniere version)

    • Benoît 2 mois ago
      Répondre

      Merci !
      Il y a plusieurs raisons pour lesquelles utiliser Nextcloud à la place ou en plus de DSM :
      – Nexcloud est plus simple à utiliser : tout est dans une seule interface, bien plus légère et ergonomique (ok, c’est personnel).
      – il est open-source et libre, donc installable sur n’importe quelle machine (même un serveur en ligne). DSM n’est pas open-source, et impose ainsi d’utiliser un serveur Synology. Si demain vous décidez de changer de machine, vous pouvez transférer les données du premier, mais pas du second (à moins de racheter chez eux).
      – il bénéficie d’une large communauté, à laquelle vous pouvez participer pour demander des fonctionnalités, voir sur http://github.com/nextcloud/
      – il possède bien plus de fonctionnalités (voir Spreed, pour faire de la visio / partage d’écran), a un mécanisme de fédération pour échanger des fichiers facilement avec un autre utilisateur de Nextcloud, un payer vidéo bien plus léger et efficace que DSM vidéo, etc.

      L’essayer, c’est l’adopter 🙂

      • Jean 2 mois ago
        Répondre

        Merci pour ta réponse.
        Effectivement pour l’open source et les valeurs je dis oui .
        Le tout dans une seul interface est aussi cool je dois le reconnaitre. La ou DSM conjugue mail peut lier mail et contact sans les mettre sous lameme interface. Tu peux aussi te créer un Bureeau virtuel personalisé pour accéder à tes appli. Ou te faire une web pages avec des liens direct. Ou des urls Direct.
        Sud SM si vous décidez de changer de machine vous avez accès a vos données . Dsm a 2 type de sauvegarde, une sauvegarde propriétaire SYNO qui a l’avantage de donner une réinstallation complète rapide sur un nouveau serveur et une sauvegarde brute des fichiers sur disque usb ou via rsync sur le réseau.
        DSM donne la possibilité d’installer d’autre application de sa bdd ou des aplli web via un serveur web ou du docker.
        Chez DSM on a aussi tout l’ avantage des outils de sauvegarde auto (brut incrementiel ..) et maintenance réseau …
        je ne suis pas pro DSM. je me questionne… je compare…
        L’interface tout en un de nextcloud est un vrai plus tout en un et des outils de visio, DECK ( trello) … sont de vrai plus.

  2. Agibi 2 semaines ago
    Répondre

    Salut mec, merci pour le tuto jsui pas un noob de l’informatique mais pour installer qqch sur un syno en ligne de commande j’avais besoin d’aide, j’ai réussi à gérer en installant putty et en suivant tes propositions mais j’ai toujours un soucis de « No input file specified » comme si php voyais pas les fichiers de démarrage de l’index nextcloud, une idée? J’ai vérifié les : dans webstation et les commandes j’ai réussi à aller en root en démarrant admin par putty mais je ne vois pas l’execution des commandes est-ce normal? Une idée? C’est un peu l’erreur 404 de php je le conçois mais bon…

    • raphael 2 semaines ago
      Répondre

      Salut Agibi,
      Pour commencer, est ce que tu as bien configuré l’open_basedir du profil PHP utilisé sur ton Syno ? Tu devrais avoir /tmp:/var/services/tmp:/var/services/web: au minimum dans le champ open_basedir pour pouvoir exécuter ton php 🙂

Leave a Comment

Votre adresse ne sera pas publiée.

Vous pourriez aussi aimer