dream team

Auto-héberger son cloud perso pour quelques watts

Pas de changement dans la méthodologie pour cette troisième partie, on suit toujours scrupuleusement la documentation officielle d’installation de Nextcloud.

Navigation

Installation de Nextcloud

Il faut tout d’abord télécharger l’archive contenant les fichiers de l’application, et la décompresser dans le répertoire /var/www .

cd /var/www

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

unzip nextcloud-21.0.0.zip

chown www-data:www-data -R nextcloud

rm -f nextcloud-21.0.0.zip

Juste avant de passer la main à l’installateur PHP de Nextcloud, on va s’assurer de ne pas se heurter à  un timeout d’exécution PHP côté php-fpm ou côté nginx pendant l’installation de Nextcloud, en éditant tout d’abord le fichier représentant notre virtual host nginx /etc/nginx/sites-enabled/nextcloud.conf pour y ajouter à la rubrique location ~ \.php(?:$|/) { } la directive suivante:

fastcgi_read_timeout 300;

On fait de même dans la configuration php du module php-fpm : /etc/php/7.3/fpm/php.ini pour y modifier la valeur de la directive max_execution_time pour la caler sur la même valeur que pour nginx:

max_execution_time = 300

Il faut également s’assurer que la directive request_terminate_timeout dans le fichier de configuration du pool /etc/php/7.3/fpm/pool.d/www.conf ne viendra pas contredire la configuration ci-dessus : dans la configuration proposée par défaut avec le paquet Debian, cette directive est à zéro ce qui désactive le timeout php au niveau du pool.

Il faut recharger les deux démons pour prendre en compte les nouveaux paramètres:

systemctl reload php7.3-fpm.service nginx

Ensuite, on pointe la navigateur d’un ordinateur du même réseau que notre machine vers l’url de l’application:

https://minicloud

Le navigateur se plaint à juste titre qu’il ne peut pas faire confiance à la sécurité du serveur web, car son certificat est auto-signé. On peut passer outre, car c’est quand même nous qui l’avons généré ! 🙂

installation Nextcloud

Il suffit de remplir les différents champs : création du compte administrateur de l’application, choisir le type de base de données (ici on n’a pas le choix, seul le connecteur mariadb pour php a été installé). Il reste à indiquer le nom d’utilisateur et le mot de passe pour la base de données, ainsi que le nom de celle-ci. On prend également soin de cocher la case « installer les applications recommandées« ,  on installera certaines d’entre elles manuellement plus tard.

L’installation à proprement parler est terminée. Moyennant la création des comptes utilisateurs pour toute la famille, on pourrait dors-et-déjà commencer à utiliser l’application, au moins pour synchroniser des fichiers.

Dans le panneau de configuration de l’application, il y a déjà quelques avertissements à corriger pour améliorer la configuration de l’application; c’est par là qu’il faut commencer.

a corriger apres installation

Les points à corriger varient d’une installation à une autre. En ce qui concerne cette installation, il y a les points suivants:

Limite mémoire PHP trop basse

En effet, le minimum recommandé par Nextcloud est 512Mo. On le paramètre dans le fichier /etc/php/7.3/fpm/php.ini : la directive à modifier est la suivante:

memory_limit = 512M

On recharge php-fpm et nginx pour prendre en compte le changement:

systemctl reload php7.3-fpm.service nginx

Il suffit de recharger la page « vue d’ensemble » de la rubrique « administration » pour constater que le premier message d’avertissement a disparu.

Votre installation n’a pas de préfixe de région par défaut

Ici c’est un paramètre plus fonctionnel que technique, pour permettre à l’application de valider les formats de numéro de téléphone.

Cette fois-ci on va éditer le fichier de configuration de l’application Nextcloud: /var/www/nextcloud/config/config.php

Pour y ajouter dans le tableau de paramètres la directive suivante:

'default_phone_region' => 'FR',

edition config.php

Aucun cache mémoire n’est configuré

L’application nous fait remarquer que nous n’utilisons pas de système permettant de mettre en cache mémoire les données. Ce système ne doit pas être confondu avec l’OPcache de PHP, que nous avons activé précédemment. La documentation sur le cache mémoire indique que cette fonctionnalité est optionnelle et qu’on peut ignorer l’avertissement si on le souhaite. C’est ce que je vais tenter pour commencer ici, toujours par souci d’économie de RAM. Si à l’usage, la quantité de RAM s’avère tout à fait suffisante, je reviendrai dessus pour tenter d’utiliser le cache APCu qui est celui recommandé pour une petite instance de cloud perso.

Le module php-imagick n’a aucun support SVG dans cette instance

Cet avertissement semble apparaitre avec la version 21 de Nextcloud (j’ai une autre instance de Nextcloud, très ancienne et pour l’instant encore en version 20 qui ne remonte pas cette alerte). Après consultation de cette page du forum d’aide de Nextcloud, il s’avère qu’installer un paquet supplémentaire résoud le problème:

apt install libmagickcore-6.q16-6-extra

Une poignée de paquets supplémentaires seront également installés par dépendance.

ATTENTION, DANS MON CAS CE PAQUET A RENDU L’INSTANCE HYPER INSTABLE ET DONC INUTILISABLE.

Je ne sais pas vraiment pourquoi, ou si il y a un bug avec la version arm 32 bits du paquet. Je l’ai donc désinstallé, son absence, bien que provoquant l’avertissement mentionné ci-dessus n’induit pas de perte de fonctionnalité essentielle.

L’en-tête HTTP « Strict-Transport-Security » n’est pas configurée à au moins « 15552000 » secondes

Le meilleur pour la fin. Le HSTS est un système tendant à rendre la navigation sur internet plus sûre en incitant les utilisateurs (et les administrateurs de serveurs) à n’utiliser que du HTTPS et à ne pas outrepasser les avertissements envoyés par le navigateur quand le site utilise un certificat de sécurité invalide. N’oublions pas qu’ici, pour l’instant, on utilise un certificat auto-signé. Donc on va bien se garder d’activer le HSTS, et on va gentiment ignorer l’avertissement. Par ailleurs, en cas d’utilisation d’un reverse proxy devant notre instance Nextcloud, c’est ce reverse proxy qui portera le certificat de sécurité, et c’est également sur lui que devra être paramétré le HSTS; par sur l’instance Nextcloud.

Ajouter quelques applis

Oui, pour rappel, à l’installation initiale on avait fait le choix de ne pas installer automatiquement les applications recommandées; on va donc le faire à présent. Le choix d’applications est vaste, je ne vais parler que de celles que j’utilise personnellement. Les installations se font en quelques clics, depuis la rubrique applications du menu de l’administrateur. La plupart de celles que l’on va ajouter sont accessibles par la rubrique applications mises en avant.

Calendar

Pour proposer aux utilisateurs de gérer un ou plusieurs agendas, synchronisables avec n’importe quel périphérique compatible avec le protocole caldav, comme android ou thunderbird.

Contacts

Pour permettre aux utilisateurs de gérer un carnet d’adresse, synchronisable avec n’importe quel périphérique compatible avec le protocole carddav, comme android ou thunderbird.

Autres

Edition de documents bureautiques : OnlyOffice ou Collabora

Le processeur de la plateforme utilisée ici étant 32 bits, il ne sera pas possible d’intégrer l’un des deux serveurs permettant l’édition en ligne de documents bureautique : OnlyOffice Document Server et Collabora Online,  car ceux-ci ne supportent que les architectures 64 bits. Ca ne veut pas dire que notre minicloud ne pourra pas offrir ce genre de service à ses utilisateurs, mais si on souhaite le faire, il faudra utiliser un serveur tiers supplémentaire. On s’éloigne donc un peu du projet minicloud dans un seul tout petit ordinateur économe en énergie; mais c’est tout à fait faisable, et relativement facile.

Chat, visio : talk

Nextcloud propose l’application talk, qui permet de faire des sessions de chat et de visio. Dans une optique d’utilisation purement textuelle, pas de souci particulier, notre plateforme minicloud va suffir. Par contre, si le but est de faire de la visio, outre le fait de disposer d’une grosse bande passante sur sa connexion internet personnelle (en particulier en upload), il faudra probablement envisager l’installation d’un serveur STUN, voir également d’un serveur TURN, sur une machine supplémentaire dédiée. Là aussi, on s’éloigne de la philosophie du projet, mais ça se fait très bien si on le souhaite, et c’est facile car Debian fourni tous les packages nécessaires.

Paramétrer le cron pour les tâches planifiées

Nextcloud propose plusieurs méthodes pour planifier les tâches, ici je propose d’utiliser la bonne vieille méthode cron, qui a fait ses preuves. Pour cela, on va créer le fichier /etc/cron.d/nextcloud, dans lequel on va insérer la ligne suivante:

*/2 * * * * www-data php -f /var/www/nextcloud/cron.php

Ensuite, dans l’administration de Nextcloud, à la rubrique paramètres de base, il faut choisir la méthode cron pour les tâches de fond.

cron nextcloud

Avant la publication

Que reste-t-il à faire ? Plus grand chose au niveau de l’application elle-même, à part sans doute créer les utilisateurs et paramétrer un serveur de relais de mail pour que l’application puisse envoyer des alertes et des notifications à ses administrateurs ainsi qu’à ses utilisateurs.

Le reste des paramètres sera à la préférence de l’administrateur et cet article n’a pas pour but d’être exhaustif là-dessus.

Il reste néanmoins des choses importantes à faire, et avant tout : publier l’application, ça se passe à la page suivante.

Laisser un commentaire

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