Nextcloud n'a pas besoin d'être présenté. Il s'agit du logiciel open source le plus populaire pour l'auto-hébergement d'une suite de collaboration qui vous donne accès à la collaboration documentaire, à l'hébergement de fichiers, aux tableaux de gestion de projet et au service de chat.
Nous utilisons Nextcloud pour gérer les activités de notre équipe sur Linux Handbook et It's FOSS. Nous auto-hébergons notre instance Nextcloud avec le conteneur Docker. Cette expérience d'auto-hébergement nous a appris plusieurs leçons importantes et je vais les partager avec vous. Cela vous aidera si vous êtes un administrateur Nextcloud au quotidien.
Je suppose que vous utilisez Docker pour déployer Nextcloud. La plupart des conseils sont centrés sur cela, tandis que certains sont des conseils génériques valables pour tous les types de déploiements Nextcloud.1. Utilisez la commande occ sur Nextcloud avec Docker
La commande occ provient de ownCloud, qui est une abréviation de "ownCloud Console" principalement utilisée pour la maintenance, le diagnostic et les correctifs. Puisque Nextcloud est un fork de la base de code d'ownCloud 2016, occ
La conception de est très similaire.
Pour les administrateurs Nextcloud, la connaissance de son utilisation peut être extrêmement pratique pour les activités de maintenance et le manuel de référence est donc très utile.
Cependant, sur Docker, la syntaxe spécifique à son utilisation est assez différente et plus longue :
docker exec -u www-data -it nextcloud php occ <command>
Ici, vous utilisez docker exec
avec www-data
en tant qu'utilisateur. nextcloud
est le nom du conteneur Nextcloud Docker et php
est utilisé pour exécuter le occ
commande depuis le conteneur.
2. Ne mettez pas à jour Nextcloud juste après une nouvelle version
Une toute nouvelle version de Nextcloud peut être très tentante. Mais il a été observé à maintes reprises que le fait de procéder immédiatement à une mise à niveau à la hâte peut potentiellement rendre Nextcloud complètement inutilisable.
Je recommande d'attendre au moins la sortie du premier patch. Par exemple, la mise à niveau de 20.0.6 vers 21.0.0 peut être une expérience risquée. Une mise à niveau directe de xx.0.x vers xy.0.0 n'est PAS recommandée. Au lieu de cela, une meilleure approche serait d'attendre au moins la version xy.0.1.
3. Donnez la priorité à la sécurité et aux corrections de bugs par rapport aux fonctionnalités chaque fois que vous mettez à niveau Nextcloud
Il est facile de se laisser tenter par une nouvelle fonctionnalité disponible uniquement sur une version nouvellement publiée. Assurez-vous que la mise à niveau ne se fait pas au prix de performances réduites ou de fonctionnalités détériorées. Cela peut concerner Nextcloud dans son intégralité ou une application Nextcloud spécifique qui peut sérieusement affecter votre productivité.
4. Éléments à prendre en compte avant de mettre à niveau votre instance Nextcloud
Vérifiez soigneusement le forum officiel ainsi que le référentiel GitHub pour les problèmes les plus récents chaque fois que vous envisagez de mettre à niveau. Malheureusement, comme on le remarque ces jours-ci, il est très courant de nos jours qu'un problème ait rendu l'interface Nextcloud extrêmement lente.
Assurez-vous donc de pouvoir répliquer le scénario sur un serveur cloné et sa solution avant de le faire sur un serveur de production. Mettez la mise à niveau en attente si elle dégrade les fonctionnalités.
5. Sauvegardez toujours la base de données et le volume Nextcloud avant une mise à niveau
Au niveau du système hôte, vous ne pouvez jamais utiliser les mêmes fichiers sur un Nextcloud mis à niveau avec une version rétrogradée. Par conséquent, créez toujours une sauvegarde de votre Nextcloud et de son volume de base de données correspondant avant d'effectuer la mise à niveau. L'approche est la même que celle dont j'ai parlé pour Ghost dans un article précédent.
7 conseils utiles pour l'auto-hébergement d'un blog Ghost avec DockerUne liste de contrôle utile qui peut empêcher de nombreux problèmes de maintenance récurrents de se produire sur votre instance Ghost Docker après son déploiement.

6. Surveillez régulièrement la section "Aperçu" dans les paramètres de Nextcloud

Savez-vous qu'il existe une section de présentation sous les paramètres ? Cette section vous avertit de tout problème de sécurité et de configuration.
Vous pouvez y accéder en vous rendant dans le coin supérieur droit de votre tableau de bord et en vous rendant dans les paramètres.

Vous verrez l'option Vue d'ensemble dans la section Administration.

C'est là que vous pouvez avoir une idée de tout problème de performance ou de sécurité sur votre Nextcloud grâce aux rapports pertinents sur le tableau de bord.
7. Assurer des contrôles de sécurité réguliers

Nextcloud fournit un outil Web gratuit pour vérifier les vulnérabilités connues sur votre serveur Nextcloud. La meilleure chose ici est que vous n'avez même pas besoin d'installer quoi que ce soit sur votre serveur. Entrez simplement l'URL de votre instance.
De temps en temps, il est fortement recommandé de scanner l'URL de votre instance pour avoir une idée des paramètres de sécurité de votre déploiement Nextcloud.
8. Gardez un œil sur les applications que vous utilisez
De nombreuses applications sur Nextcloud sont connues pour avoir rendu toute l'interface Nextcloud complètement inutilisable. Gardez un œil sur les forums et les problèmes GitHub des applications individuelles que vous utilisez sur votre instance Nextcloud.
9. Clonez votre serveur de production pour tester les mises à jour
Si vous utilisez un serveur cloud comme Linode, vous avez la possibilité de cloner facilement l'intégralité de votre serveur.
Linode | Le cloud ouvert indépendant pour les développeursNotre mission est d'accélérer l'innovation en rendant le cloud computing simple, abordable et accessible à tous.

Il s'agit d'une étape extrêmement utile pour réduire au minimum les temps d'arrêt (le cas échéant) chaque fois que vous envisagez de mettre à niveau votre instance Nextcloud. Il garantit également une copie de sauvegarde en direct de votre instance Nextcloud disponible à intervalles réguliers chaque fois que vous clonez votre serveur.
Une fois que vous vous êtes assuré qu'il s'agit d'une mise à niveau stable, continuez à la surveiller pendant un certain temps sur le serveur cloné. Lorsque vous êtes absolument sûr qu'il s'agit d'une transition stable, enregistrez votre expérience dans une documentation complète du processus de mise à niveau et des étapes que vous avez pu suivre pour résoudre les problèmes après la mise à niveau. Plus tard, vous pouvez poursuivre et répliquer les mêmes étapes sur le serveur de production en suivant votre propre documentation.
10. Rechercher les problèmes signalés sur les forums
Nextcloud fournit généralement un processus par étapes pour résoudre les problèmes qu'il signale sur les paramètres d'aperçu. Si cela devient insuffisant, vous pouvez copier et coller les problèmes signalés sur "GitHub issues" ou sur le forum Nextcloud.
Il y a de fortes chances que le problème soit connu et que le correctif ait déjà été fourni. Sans attendre le prochain correctif, vous pouvez d'abord tester le correctif sur un serveur cloné et l'atténuer vous-même.
Astuce bonus
De manière générale, Nextcloud recommande de passer en mode maintenance lorsque des commandes spécifiques sont nécessaires.
Par exemple, occ db:convert-filecache-bigint
cela implique que des identifiants BigInt (64 bits) sont suggérés après une mise à niveau.
Mais je préférerais toujours passer en mode maintenance avant d'exécuter une commande occ suggérée dans la "Section Système et sécurité".
Suite à l'exemple de commande mentionné au point 1, la commande correspondante serait :
docker exec -u www-data -it nextcloud php occ maintenance:mode --on
Exécutez maintenant la commande comme suggéré. Par exemple, supposons que vous remarquiez ce message :
Some indices are missing in the database. Because adding indexes to large tables may take some time, they have not been added automatically. By executing "occ db: add-missing-indices", missing indexes can be added manually while the instance is running. Once the indexes have been added, queries to these tables are usually faster.
Ici, la suggestion est d'exécuter occ db: add-missing-indices
. Mais comme discuté au point 1, cette recommandation est insuffisante; surtout si vous utilisez Nextcloud avec Docker. Par conséquent, la commande complète requise ici est :
docker exec -u www-data -it nextcloud php occ db: add-missing-indices
[email protected]:~$ docker exec -u www-data -it nextcloud php occ db:add-missing-indices
Check indices of the share table.
Check indices of the filecache table.
Check indices of the twofactor_providers table.
Check indices of the login_flow_v2 table.
Check indices of the whats_new table.
Check indices of the cards table.
Check indices of the cards_properties table.
Check indices of the calendarobjects_props table.
Adding calendarobject_calid_index index to the calendarobjects_props table, this can take some time...
calendarobjects_props table updated successfully.
Check indices of the schedulingobjects table.
Adding schedulobj_principuri_index index to the schedulingobjects table, this can take some time...
schedulingobjects table updated successfully.
Désactivez maintenant le mode maintenance :
docker exec -u www-data -it nextcloud php occ maintenance:mode --off
Matière à réflexion
Tous les 10 pointeurs ci-dessus sont le résultat d'une expérience sur un système de production en direct pendant plus d'un an. Pendant ce temps, le triangle suivant a été un guide très important pour moi afin de maintenir un équilibre délicat entre la sécurité, la convivialité et la fonctionnalité et de le corréler avec le fonctionnement de Nextcloud.
Cela s'applique à tous les systèmes de déploiement et pas seulement à Nextcloud. Ce sont sans aucun doute les piliers fondateurs de tout déploiement basé sur DevOps.

En ce qui concerne Nextcloud, vous devez toujours garder à l'esprit la principale différence entre Nextcloud et Nextcloud Hub. Nextcloud lui-même est principalement un service d'hébergement de fichiers, tandis que Nextcloud Hub est une plate-forme de collaboration de contenu (un sous-ensemble de Nextcloud).
Comment pouvez-vous relier ce scénario à la fonctionnalité et à la facilité d'utilisation ? Dans la discussion ci-dessus, j'ai mentionné Collabora Online, qui fait partie de Nextcloud Hub et qui peut clairement être corrélé à la facilité d'utilisation.
Si l'ensemble du tableau de bord Nextcloud se bloque à cause d'une nouvelle version de Collabora Online, sa fonctionnalité se détraque complètement. Collabora Online a été fourni avec Nextcloud Hub en gardant à l'esprit la facilité d'utilisation de la gestion des documents en ligne. Mais si cela a pour effet de ralentir considérablement l'ensemble de l'interface graphique et de la rendre complètement inutilisable, cela va complètement à l'encontre de son objectif principal ! Par conséquent, il est toujours très nécessaire de veiller à maintenir cet équilibre délicat entre fonctionnalité et convivialité (avec un œil prudent sur la sécurité bien sûr).
Chaque application est différente et, par conséquent, la façon dont vous calibrez chacune de ces 3 métriques peut être extrêmement cruciale, selon le cas par cas.
J'espère vraiment que ces conseils et réflexions vous aideront à gérer votre instance Nextcloud au quotidien, surtout si vous êtes un administrateur qui gère un service Nextcloud auto-hébergé avec Docker. Si vous avez des commentaires, des suggestions ou un nouveau point à partager, veuillez le faire dans la section ci-dessous.