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 !

Leave a Comment

Votre adresse ne sera pas publiée.

Vous pourriez aussi aimer