Des solutions telles que Dropbox offrent un accès aisé à vos fichiers sur divers appareils. Toutefois, il est possible que vous souhaitiez une maîtrise plus poussée. En moins d’une demi-heure, il est envisageable de mettre en place votre propre service de synchronisation infonuagique sur un serveur dont vous avez le contrôle via Nextcloud.
Qu’est-ce que Nextcloud ?
Nextcloud est un logiciel libre qui vous permet de synchroniser vos fichiers entre votre ordinateur et d’autres dispositifs, à l’instar de Dropbox, OneDrive ou Google Drive. De surcroît, Nextcloud dispose d’un écosystème d’applications dynamique qui vous donne la possibilité de réaliser bien plus que de simples synchronisations de fichiers. Vous pouvez utiliser Nextcloud pour la gestion de calendriers et de contacts, ou pour faire fonctionner un client de messagerie IMAP accessible via le web. Il est même envisageable de configurer un système de chat en direct destiné exclusivement à vous et à toute autre personne ayant accès à votre serveur.
Cependant, avant d’entrer dans les détails, une mise en garde s’impose. Dès l’instant où vous commencez à utiliser Nextcloud, la responsabilité de la maintenance du serveur vous incombe. Cela implique, outre la gestion du logiciel Nextcloud, que vous veilliez à ce que le système d’exploitation du serveur sous-jacent soit à jour avec les correctifs nécessaires. Les serveurs Nextcloud fonctionnent généralement sans accroc, mais en cas de problème, il est de votre ressort de le résoudre.
L’avantage, c’est qu’il existe une multitude de blogs, de forums et de pages d’aide pour vous accompagner en cas de dépannage. Si vous rencontrez une difficulté, il y a fort à parier qu’elle a déjà été rencontrée par d’autres et qu’une solution existe.
Ce dont vous aurez besoin
L’interface Web par défaut de Nextcloud.
Trois éléments sont indispensables pour débuter avec Nextcloud :
- Un serveur virtuel exécutant Ubuntu 18.04
- Le shell Bash sur le bureau de votre ordinateur.
- Un nom de domaine.
Dans le cadre de nos exemples, nous allons générer différents noms d’utilisateur et mots de passe, notamment :
- Le nom d’utilisateur et le mot de passe root de votre serveur.
- Un nom d’utilisateur et un mot de passe de serveur standard disposant de privilèges administratifs.
- Un nom d’utilisateur et un mot de passe Nextcloud.
Pour ce tutoriel, nous emploierons un serveur virtuel exécutant Ubuntu 18.04 fourni par DigitalOcean. Vous êtes toutefois libre d’utiliser le prestataire de votre choix, parmi lesquels figurent Linode ou AWS. Quel que soit le service que vous sélectionnez, l’élément clé est d’utiliser Ubuntu 18.04 (la version actuelle avec support à long terme) afin d’éviter tout problème potentiel.
Chaque fournisseur de serveur virtuel présente des particularités, mais tous ont pour objectif de rendre un serveur opérationnel en quelques clics de souris. Pour démarrer, nous vous suggérons d’utiliser un serveur de base à des fins de test jusqu’à ce que vous soyez familiarisé avec Nextcloud. Un Droplet Digital Ocean à 5 $ offre 1 Go de RAM, 1 cœur de processeur, 1 To de transfert de données et 25 Go de stockage. Linode propose une offre VPS similaire au même tarif.
À moins que vous ne soyez à l’aise avec les clés SSH, demandez à votre fournisseur des informations de connexion root basées sur un mot de passe pour commencer. Une fois votre serveur opérationnel et que vous êtes à l’aise avec l’interface en ligne de commande, vous pouvez consulter les pages d’aide de votre fournisseur pour apprendre à ajouter des clés SSH pour une connexion plus sécurisée.
Si votre ordinateur fonctionne sous Windows 10, vous devrez installer le sous-système Windows pour Linux et vous procurer un shell Bash avec des outils Linux pour continuer. Si vous utilisez Linux ou macOS, le programme Terminal sera suffisant. La plupart des terminaux Bash sont fournis avec SSH installé, mais si ce n’est pas le cas, il vous suffit de taper sudo apt-get install ssh dans la fenêtre du terminal pour l’installer.
Lorsque vous achetez un nom de domaine, il n’est pas impératif que ce soit une adresse .COM. Seuls vous, vos proches et votre famille l’utiliseront. Par exemple, nous avons trouvé un nom de domaine .XYZ pour seulement 1 $ par an, ce qui est tout à fait satisfaisant.
Préparer votre serveur
Pour préparer votre serveur à l’action, il est nécessaire de configurer un compte d’utilisateur standard avec des privilèges administratifs. Il est fortement déconseillé de se connecter en tant qu’utilisateur root tout-puissant après la configuration initiale.
À ce stade, vous devriez avoir une adresse IP et un mot de passe root fournis par votre serveur. L’adresse IP sert de point d’accès au serveur, tandis que le mot de passe est la clé pour y entrer.
Pour commencer, tapez la commande suivante (en remplaçant les X par l’adresse IP de votre serveur) puis appuyez sur Entrée :
ssh root@XXX.XX.XX.XXX
Notre adresse IP est 165.22.81.172, c’est donc celle que nous avons saisie dans notre commande. Si tout se déroule correctement, le serveur distant (sur lequel vous installerez Nextcloud) vous demandera un mot de passe. Saisissez le mot de passe que votre fournisseur de serveur vous a communiqué.
Ensuite, il vous sera demandé de définir un nouveau mot de passe pour root. Choisissez un mot de passe de votre choix, mais prenez soin de ne pas le perdre ou l’oublier !
Vous êtes à présent à l’intérieur de votre serveur distant et il est temps de se mettre au travail. Appuyez sur Entrée après chaque commande de cet article pour l’exécuter.
Tout d’abord, tapez ce qui suit pour ajouter un nouvel utilisateur au serveur :
adduser ian
Remplacez « ian » par le nom d’utilisateur de votre choix. Après l’exécution de cette commande, il vous sera demandé de fournir un mot de passe au nouvel utilisateur. Les informations suivantes demandées par le serveur sont facultatives ; si vous ne souhaitez pas les fournir, continuez à appuyer sur Entrée.
Ensuite, tapez la commande suivante pour accorder à notre nouvel utilisateur les privilèges administratifs :
usermod -aG sudo ian
Encore une fois, remplacez « ian » par le nom d’utilisateur que vous avez choisi précédemment.
Ouvrez à présent une seconde fenêtre de terminal et saisissez ce qui suit pour vous assurer que les nouveaux comptes d’utilisateurs fonctionnent correctement :
ssh ian@165.22.81.172
Une fois de plus, remplacez ce qui précède par votre nom d’utilisateur et l’adresse IP de votre serveur. Saisissez le mot de passe que vous avez créé pour ce compte utilisateur lorsque vous y êtes invité. Si tout fonctionne, retournez à la fenêtre du terminal dans laquelle vous êtes connecté en tant que root.
Tapez maintenant la commande ci-dessous pour vous assurer que le pare-feu Ubuntu est correctement configuré :
ufw allow OpenSSH
ufw enable
ufw status
Cette dernière commande de statut devrait afficher un résultat similaire à l’image ci-dessous, confirmant que le pare-feu ne bloquera pas SSH.
Vous ne verrez pas encore la partie « 80, 443/tcp », mais nous y reviendrons plus tard. Pour le moment, fermons la fenêtre racine et retournons à la deuxième fenêtre de terminal avec l’utilisateur standard.
Installation de Nextcloud
Autrefois, vous deviez configurer et installer le logiciel Nextcloud, PHP, le logiciel de serveur web et la base de données de manière distincte.
L’utilisation du package Snap officiel est bien plus simple, car il s’occupe de tout avec une seule commande. Plus de problème avec la base de données, ni à se soucier de savoir si c’est Apache ou Nginx qui dessert votre site.
Si vous souhaitez examiner en détail ce que le package Snap installe (spoiler : il s’agit du reste de la pile LAMP, plus Redis), consultez le Dépôt Snap Nextcloud sur GitHub.
Tapez la commande suivante :
sudo snap install nextcloud
Le « sudo » au début permet d’élever le compte d’utilisateur normal afin qu’il bénéficie de droits administratifs temporaires. Il vous sera demandé de saisir votre mot de passe pour effectuer cette opération. Si tout se déroule bien, Nextcloud sera installé et (presque) prêt à l’emploi d’ici une ou deux minutes.
Saisissez ensuite la commande ci-dessous afin de créer un nouveau compte d’utilisateur Nextcloud qui pourra se connecter à notre site :
sudo nextcloud.manual-install ianpaul correctHorseBatteryStaple
Remplacez « ianpaul » par le nom d’utilisateur que vous souhaitez utiliser pour vous connecter à Nextcloud. Le morceau « correctHorseBatteryStaple » est notre mot de passe. Ne l’utilisez pas, il provient d’une célèbre bande dessinée XKCD et n’est qu’un exemple.
Gestion des noms de domaine
Pour vous faciliter la tâche, il est préférable de ne pas utiliser constamment une adresse IP pour accéder à notre serveur. Nous utiliserons un nom de domaine à la place, que vous pouvez obtenir pour seulement 1 $ par an. Pour notre exemple, nous utilisons HowToGeekTest.xyz.
Une fois que vous avez un nom de domaine, vous devrez gérer les paramètres DNS de votre bureau d’enregistrement de domaine (l’endroit où vous avez acheté le domaine) et les diriger vers votre fournisseur de serveur. Si vous optez pour DigitalOcean, par exemple, ces paramètres seraient ns1.digitalocean.com, ns2.digitalocean.com et ns3.digitalocean.com.
Ensuite, accédez à votre fournisseur de serveur (par exemple, DigitalOcean, Linode ou le prestataire de votre choix) et ajoutez le nouveau nom de domaine à votre compte. Il faudra ajouter un enregistrement A qui pointe vers votre adresse IP, un enregistrement CNAME si vous ne voulez pas utiliser « www » systématiquement, et des enregistrements NS si ceux-ci n’ont pas été ajoutés automatiquement.
L’image ci-dessous montre un exemple chez DigitalOcean.
Techniquement, il peut falloir jusqu’à 24 heures avant que votre nom de domaine ne soit disponible, mais il commence généralement à fonctionner en quelques minutes.
Retour à Nextcloud
Une fois le nom de domaine configuré, nous pouvons revenir aux étapes finales de Nextcloud dans le terminal. Si vous vous êtes déconnecté du serveur avec votre compte utilisateur habituel (ian@165.22.81.172 dans notre exemple), reconnectez-vous.
Tapez maintenant la commande suivante pour ajouter notre nouveau nom de domaine à Nextcloud :
sudo nextcloud.occ config:system:set trusted_domains 1 –value=howtogeektest.xyz
Après « –value= », saisissez votre nom de domaine au lieu du nôtre (howtogeektest.xyz).
Ensuite, tapez ce qui suit afin de vous assurer que notre nouveau nom de domaine a été correctement ajouté :
sudo nextcloud.occ config:system:get trusted_domains
Le terminal devrait afficher un résultat similaire à l’image ci-dessous.
Tapez ensuite la commande suivante pour vous assurer que nous pouvons utiliser les ports souhaités en les autorisant à traverser le pare-feu :
sudo ufw allow 80,443/tcp
Le port 80 est utilisé par le trafic HTTP non chiffré, tandis que le port 443 est destiné à SSL/TLS.
À ce propos, nous allons avoir besoin d’un certificat SSL/TLS gratuit de Let’s Encrypt, tapez donc la commande suivante :
sudo nextcloud.enable-https lets-encrypt
Une fois que le générateur Let’s Encrypt démarre, il vous demande une adresse e-mail et votre nom de domaine Nextcloud. Suivez simplement les instructions et vous devriez obtenir un certificat de site web sécurisé en un rien de temps. Si Let’s Encrypt a fonctionné, il est temps de tester votre configuration.
Accédez à votre nouveau nom de domaine (comme notre howtogeektest.xyz). Vous devriez voir une page de connexion Nextcloud (voir ci-dessous) avec une icône de verrouillage dans la barre d’adresse.
Si vous voyez la page de connexion, vous êtes prêt à partir. Dans le cas contraire, patientez quelques heures et réessayez. Si vous souhaitez résoudre les problèmes immédiatement, vous pouvez vérifier si le serveur répond via l’adresse IP.
Pour que cela fonctionne, nous devons saisir la commande ci-dessous, afin d’ajouter l’adresse IP à nos noms de domaines de confiance :
sudo nextcloud.occ config:system:set trusted_domains 2 –value=165.22.81.172
Notez que nous avons utilisé « trusted_domains 2 » et non « trusted_domains 1 ». Si vous répétez systématiquement « trusted_domains 1 », vous écraserez votre véritable nom de domaine dans la liste des domaines de confiance et ne pourrez plus l’utiliser.
Une fois cela fait, tapez l’adresse IP dans la barre d’adresse de votre navigateur et vous devriez voir la page de connexion mentionnée ci-dessus. Si ce n’est pas le cas, un problème est survenu lors de l’installation.
Étant donné que nous n’avons pas de certificat SSL pour l’adresse IP, elle ne pourra pas se connecter en toute sécurité. Il est donc recommandé de supprimer l’adresse IP de la liste des domaines de confiance après avoir confirmé que le serveur fonctionne. Pour ce faire, tapez la commande suivante :
sudo nextcloud.occ config:system:delete trusted_domains 2
Amélioration des performances
Si votre serveur Nextcloud ne fonctionne pas correctement, il peut être nécessaire d’augmenter la limite de mémoire. Par défaut, elle est de 128 Mo. Pour la porter à 512 Mo, connectez-vous au serveur à l’aide du terminal et tapez la commande suivante :
sudo snap set nextcloud php.memory-limit=512M
Maintenant que Nextcloud est opérationnel, vous pouvez vous connecter, parcourir les applications disponibles, partager des fichiers avec d’autres personnes et installer Nextcloud sur votre ordinateur et vos appareils mobiles pour la synchronisation multi-appareils. Nextcloud propose des outils de synchronisation de bureau et des applications mobiles pour Windows, Mac, Linux, iPhone, iPad et Android.
Bienvenue dans votre espace de stockage personnel !