Nextcloud : Cloud perso (installation et configuration)

Vous souhaitez mettre en place votre propre serveur de stockage (NAS) chez vous ou sur un serveur privé. C’est tout à fait possible et Nextcloud n’a rien à envier aux plus grosses plateformes d’hébergement puisqu’il dispose de nombreuses applications que l’on peut lui greffer en plus de ses fonctionnalités de base.

Aujourd’hui nous allons voir comment déployer notre propre serveur Nextcloud sur Debian 10. Pour installer Debian 10, vous pouvez vous référer à cet article.

Il est ecommandé d’utiliser une adresse IP statique pour votre serveur.

Installation

Mettez tout d’abord votre distribution à jour avec les commandes :

apt update

apt upgrade

On installe désormais les dépendances :

apt install apache2 libapache2-mod-php mariadb-server php-xml php-cli php-cgi php-mysql php-mbstring php-gd php-curl php-zip wget unzip

Une fois ces dépendances installées, on va ensuite ensuite modifier le fichier de configuration php.ini afin de définir les règles du futur serveur en matière d’upload de fichiers :

nano /etc/php/7.3/apache2/php.ini

Attention ce chemin peut changer en fonction des versions déployées sur le serveur

Editez le fichier selon vos besoins en voici un exemple :

memory_limit = 512M
upload_max_filesize = 2G
post_max_size = 2G
max_execution_time = 600
date.timezone = Europe/Paris

Recherchez les lignes avec ctrl+w et éditez les. Enregistrez le fichier avec ctrl+o et quittez avec ctrl+x

Démarrez les services apache2 et mariadb

systemctl start apache2
systemctl start mariadb

Autorisez ensuite le démarage des services au lancement du serveur

systemctl enable apache2
systemctl enable mariadb

Nous allons maintenant configurer la base de données de Nextcloud.

mysql -u root -p

Nous voici connectés à la base de données, nous allons maintenant la configurer. Dans la ligne ci-dessous paramétrez un nom d’utilisateur à la place de nextclouduser et un mot de passe à la place de password.

CREATE USER 'nextclouduser'@'localhost' IDENTIFIED BY 'password';

Accordez ensuite les privilèges à la base de données de nextcloud (ici vous pouvez également changer le nom de la base de données) :

GRANT ALL ON nextclouddb.* TO 'nextclouduser'@'localhost';

Tapez ensuite :

FLUSH PRIVILEGES;

EXIT;

Nous pouvons maintenant télécharger la dernière version de Nextcloud via la commande :

wget https://download.nextcloud.com/server/releases/nextcloud-20.0.1.zip

Vous pouvez chercher les versions disponibles sur cette page :

https://download.nextcloud.com/server/releases/

Une fois téléchargé nous allons dézipper le programme d’installation :

unzip nextcloud-20.0.1.zip

Nous pouvons désormais déplacer ce dossier Nextcloud vers la racine du serveur web :

mv nextcloud /var/www/html/

On donne désormais les bonnes permissions sur le répertoire :

chown -R www-data:www-data /var/www/html/nextcloud/
chmod -R 755 /var/www/html/nextcloud/

Nous pouvons maintenant créer un fichier apache2 pour Nextcloud :

nano /etc/apache2/sites-available/nextcloud.conf

Collez ensuite le contenu suivant (vous pouvez l’adapter à votre besoin) :

Alias /nextcloud "/var/www/html/nextcloud/"

<Directory /var/www/html/nextcloud/>
  Require all granted
  AllowOverride All
  Options FollowSymLinks MultiViews

  <IfModule mod_dav.c>
    Dav off
  </IfModule>

</Directory>

Autorisez maintenant le site nextcloud ainsi que certains modules :

a2ensite nextcloud.conf
a2enmod rewrite
a2enmod headers
a2enmod env
a2enmod dir
a2enmod mime

Puis redémarrez le service apache pour appliquer les changements :

systemctl restart apache2

Déployer un certificat Let’s Encrypt pour une utilisation en ligne (facultatif)

apt install python-certbot-apache

Une fois installé, nous allons installer le certificat sur le domaine du serveur :

certbot --apache -d nextcloud.example.com

Une adressee-mail vous sera demandée.

Acceptez les conditions d’utilisation du service.

Choisissez ensuite l’option 2 pour rediriger le trafic en HTTPS.

Une fois terminé vous pouvez alors vous connecter au serveur via votre domaine HTTPS.

Déployer SSL pour une utilisation en local (facultatif)

Déployez le module SSL et autorisez le site :

a2enmod ssl
a2ensite default-ssl
systemctl restart apache2

Vous pouvez alors accéder à votre site via son adresse (placez votre adresse IP ici) :

https://192.168.1.55/nextcloud/

Attention cependant votre navigateur vous indiquera que le certificat n’est pas sur. Mais vous pouvez y accéder sans crainte étant donné que c’est vous même qui avez mis en place le site.

Il vous suffit d’indiquer que vous acceptez le risque :

Configuration de Nextcloud :

Rendez-vous sur la page de Nextcloud via son adresse :

https://domaineouIP/nextcloud

Dans cette fenêtre vous pouvez créer vos identifiants pour votre premier utilisateur, dans la seconde partie, indiquez les identifiants que vous avez rempli lors de la configuration de la base de données.

Vous n’êtes pas obligé d’installer les applications recommandées, vous pourrez le faire par la suite.

Cliquez enfin sur finish setup pour terminer la configuration.

Vous devriez alors arriver sur la page d’accueil de Nextcloud.

Vous pouvez désormais ajouter des utilisateurs, des applications, stocker vos fichiers, …

Sécuriser votre serveur (facultatif)

1. Mises à jour et sécurité

Vous devez mettre à jour le serveur régulièrement. Pour cela vous pouvez installer le paquet unattended upgrade sur le serveur. De cette manière les mises à jour seront automatiques, il faudra simplement penser à redémarrer le serveur de temps en temps.

apt install unattended-upgrades

Dans Paramètres, Administration,Overview vous pouvez appliquer les recommandations de sécurité et réaliser les mises à niveau de Nextcloud. Il est recommandé de s’y rendre régulièrement.

2. Changement du répertoire de données

Vous pouvez stocker vos données sur des disques autres que ceux destinés au système. Pour cela vous pouvez monter de nouveaux disques en RAID et changer par la suite le répertoire ou Nextcloud va stocker ses données :

Editez le fichier config.php

nano /var/www/html/nextcloud/config/config.php

'datadirectory' => '/var/www/nextcloud/data',

Changez le répertoire vers votre disque.

3. Pare feu

Vous pouvez configurer un pare feu pour votre serveur.

ufw enable
ufw allow http
ufw allow https

Si vous utilisez SSH ajoutez la ligne suivante :

ufw allow ssh

Vous pouvez vérifier l’état du pare feu avec :

ufw status


Sources :

HowToForge : Installation

Nextcloud : Documentation

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *