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 !

16 Commentaires
  1. Jean 9 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 8 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 8 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 7 mois 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 6 mois 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 🙂

  3. Tukse 6 mois ago
    Répondre

    Bonjour,

    J’ai bien suivi tout le tuto mais à partir du certificat de sécurité, il n’y a plus d’aide.
    As tu un lien qui explique comment faire ou des copies écran des paramètres à saisir pour le créer?
    J’ai essayé de continuer mais le fichier config.php n’existe pas et lorsque j’essaye de copier le paramétrage décrit dans un nouveau fichier, je n’arrive pas à sortir du fichier config.php.
    Bref j’y suis presque mais j’aurais encore besoin d’aide…
    Merci

    • raphael 6 mois ago
      Répondre

      Hello Tukse,
      Le fichier config.php se trouve dans le dossier config de l’installation de ton Nextcloud, que tu as normalement décompressé dans le dossier web de ton Synology (Mon dossier web étant dans le volume1, le chemin est donc /volume1/web/nextcloud/config).

      capture filestation

      Une fois ton fichier édité, si tu utilises Nano par exemple, tu peux sauvegarder le fichier avec contrôle + O, puis quitter l’éditeur en appuyant sur contrôle + X

      Tiens-nous au courant !

      • Tukse 6 mois ago
        Répondre

        Hello Raphael,

        ouhlala, je n’en suis pas encore là mais j’y reviendrais car j’ai un manque d’info sur les 3 dernières étapes ! :o)

        quand tu dis accèder à domaine.tld/nextcloud, tu parles dans le navigateur? car ça ne m’amène nul part cette adresse?

        Merci

        • raphael 5 mois ago
          Répondre

          En effet ! Tu as déjà déclaré un domaine ? Sinon envoi moi un message via le formulaire de contact qu’on voit ensemble comment résoudre ton problème 🙂

          • Tukse 5 mois ago

            Bonjour, bon ça fait 2 semaines que j’essaye de laisser un message via le formulaire de contact mais je ne tombe que sur une erreur 504….

  4. Flo 4 mois ago
    Répondre

    Bonjour et merci pour ce super tuto,

    j’ai deux questions :
    – avant de modifier mon config.php, je tombe bien sur mon nextcloud qui me dit que le domaine est interdit mais lorsque je modifie le config.php, je tombe sur une erreur 404. Je ne comprends pas.
    – est-ce possible d’interdire l’accès via l’IP du serveur ou de rediriger l’IP vers nextcloud (là je tombe sur une autre appli et je ne souhaite pas qu’elle soit accessible à distance.

    Pour info, par défaut nano n’est pas présent sur synology, il faut utiiliser vi : sudo vi conf.php
    N’étant pas moi même habitué à utiliser vi, quelques repères : taper i pour editer, esc pour sortir de l’édition, 😡 + entrer pour sauvegarder et quitter et :q +entrer pour quitter.

    Autre info, je pense qu’il est intéressant de configurer un serveur email dans les paramètres en cas de pertes de mots de passes.

    Merci d’avance.

    • raphael 4 mois ago
      Répondre

      Hello Flo,
      Merci pour ton message 🙂

      Comment fais-tu la modification de ton fichier config ? (Depuis quelle interface, avec quel utilisateur..?) Attention, il ne faut pas faire la modification depuis le File Station de Synology, au risque de casser les droits d’accès et le propriétaire du fichier 🙂 (Merci Syno…)
      Le propriétaire de ce fichier devrait être http:http, vérifie que c’est bien toujours le cas !

      Pour ce qui est de ne pas autoriser l’accès à ton Nextcloud depuis l’adresse IP, il suffit de supprimer cette ip dans la section ‘trusted_domains’, tu devrais alors obtenir ce message en tentant de t’y connecter via un domaine non autorisé :
      Domaine non autorisé

      • Flo 4 mois ago
        Répondre

        Bonjour et merci pour cette réponse super rapide,

        – j’édite avec vi eh ssh bien sûr.
        Les droits sont bien toujours http:http, d’ailleurs quand j’enlève la ligne
        1 => ‘documents.mondomaine.fr’,
        j’arrive bien à nouveau à l’écran « Accès à un domaine non approuvé ».
        Quand je garde la ligne j’ai un 404. (j’enlève j’ai l’écran bleu, j’ajoute, j’ai 404)

        – Ma première ligne est l’accès IP local (pour y accéder en locale) mais je n’ai pas l’ip distant dedans.
        En revanche, quand j’entre mon ip distant 109.xxx.xxx.xxx je tombe sur une autre appli que j’utilise en local. En je ne veux pas ça. Quand je n’ouvre pas le port 80, je tombe sur l’interface de connexion de mon modem, je ne veux pas ça non plus. Je présume que c’est Nginx ou Apache qu’il faut régler ici.

        Merci d’avance si tu as des pistes et encore merci pour le tuto.

        • Flo 4 mois ago
          Répondre

          – Finalement, j’ai modifié mon virtualhost, je suis passé de Nginx à Apache 2.4 et ça fonctionne à distance sans soucis.
          – Pour l’accès à l’autre application, j’ai virer l’ouverture du port 80 (plus besoin après la fin du tuto), je tombe maintenant sur l’interface de mon modem, j’ai changé le login et le mot de passe pour des trucs bien bourrins (longs et aléatoire).

          Je pense que ça ira comme ça.

          Merci encore.

  5. Flo 4 mois ago
    Répondre

    Bonjour,

    auriez vous une idée ou une solution pour avoir une synchronisation entre nextcloud et des dossiers du NAS ?
    Est-ce possible en directe ?

    Je veux faire ceci :
    Dossiers sur compte admin partagés avec différents users.
    Dossier 1 avec user 1, dossier 2 avec user 2, etc.

    Les documents à mettre dans chaque dossiers sont déjà sur le NAS que j’utilise chaque jour avec d’autre personne comme centre de données partagées.

    J’ai bien imaginé installé l’app nexcloud sur mon ordi pour synchroniser les différents dossiers sur l’ordi puis synchroniser les différents dossiers du NAS avec syncthing vers mon ordi dans le dossier nextcloud.
    C’est un peu fastidieux et générateur de conflits.

    Je souhaiterais pourvoir faire un dossier partagé sur le NAS, synchronisé dans nextcloud (sur le même NAS), et juste mettre dans les liens vers chaque dossiers au besoin.
    Ça fait moins de synchro, sans intermédiaire de l’ordi (qui peut être éteint ou en déplacement) et moins de données dupliquées inutilement.

    Merci d’avance.

  6. Flo 4 mois ago
    Répondre

    Bonjour,

    pour synchroniser le dossier nextcloud dans le NAS et ainsi pouvoir manipuler les fichiers et dossiers via l’explorer, il suffit d’utiliser l’application Nextcloud de synchro pour ordi et de synchro nextcloud dans le NAS directement \\NAS\Dossier à synchroniser.
    Ça semble marcher sans soucis et sans soucis de droits (j’avais des soucis avec syncthings)

    Bonne journée.

Leave a Comment

Votre adresse ne sera pas publiée.

Vous pourriez aussi aimer