Comment créer votre propre synchronisation de fichiers cloud avec Nextcloud
Des services comme Dropbox vous permettent d'accéder facilement à vos fichiers sur plusieurs appareils. Cependant, vous voudrez peut-être plus de contrôle sur eux. En moins de 30 minutes, vous pouvez avoir votre propre service de synchronisation dans le cloud opérationnel sur un serveur que vous contrôlez via Nextcloud.
Sommaire
Qu'est-ce que Nextcloud?
Nextcloud est un logiciel open source qui vous permet de synchroniser des fichiers entre votre PC et d'autres appareils, comme vous le feriez avec Dropbox, Onedrive ou Google Drive. De plus, Nextcloud dispose d'un écosystème d'applications dynamique qui vous permet de faire plus que simplement synchroniser des fichiers. Vous pouvez utiliser Nextcloud pour la gestion du calendrier et des contacts ou pour exécuter un client de messagerie IMAP basé sur le Web. Vous pouvez même configurer un programme de chat en direct exclusivement pour vous et toute autre personne pouvant accéder à votre serveur.
Avant d'entrer dans les détails, cependant, il y a un avertissement. Une fois que vous commencez à utiliser Nextcloud, c'est à vous de maintenir le serveur. Cela signifie qu'en plus de gérer le logiciel Nextcloud, vous devez vous assurer que le système d'exploitation du serveur sous-jacent reste à jour avec les correctifs. Les serveurs Nextcloud sont généralement sans problème, mais si quelque chose ne va pas, c'est à vous de le réparer.
La bonne nouvelle est qu'il existe des tas de blogs, de forums et de pages d'aide pour vous aider à résoudre les problèmes. Si vous rencontrez un problème, il est probablement arrivé à quelqu'un d'autre et il existe une solution.
Ce dont vous aurez besoin
Vous aurez besoin des trois éléments suivants pour commencer avec Nextcloud:
- Un serveur virtuel exécutant Ubuntu 18.04
- Le shell Bash sur le bureau de votre ordinateur.
- Un nom de domaine.
Pour nos exemples, nous allons créer plusieurs noms d'utilisateur et mots de passe, notamment les suivants:
- Nom d'utilisateur et mot de passe root de votre serveur.
- Un nom d'utilisateur et un mot de passe de serveur standard avec des privilèges administratifs.
- Un nom d'utilisateur et un mot de passe Nextcloud.
Pour les besoins de ce didacticiel, nous utilisons un serveur virtuel exécutant Ubuntu 18.04 à partir de DigitalOcean. Vous pouvez cependant utiliser n'importe quel fournisseur de votre choix, y compris Linode ou AWS. Quel que soit le service que vous choisissez, la clé est d'exécuter Ubuntu 18.04 (la version de support à long terme actuelle au moment d'écrire ces lignes) pour éviter tout problème potentiel.
Chaque fournisseur de serveur virtuel est un peu différent, mais ils visent tous à mettre en place un serveur opérationnel en quelques clics de souris. Pour commencer, nous vous conseillons d'utiliser un serveur de niveau de base à titre d'essai jusqu'à ce que vous vous habituiez à Nextcloud. La gouttelette de 5 $ de Digital Ocean offre 1 Go de RAM, 1 cœur de processeur, 1 To de transfert de données et 25 Go de stockage. Linode propose un VPS similaire pour le même prix.
À moins que vous ne soyez à l'aise avec les clés SSH, demandez à votre fournisseur des informations de connexion root par mot de passe pour commencer. Une fois que votre serveur est en cours d'exécution et que vous êtes à l'aise avec la ligne de commande, vous pouvez consulter les pages d'aide de votre fournisseur pour savoir comment ajouter des clés SSH pour une connexion plus sécurisée.
Si votre ordinateur exécute Windows 10, vous devrez installer le sous-système Windows pour Linux et obtenir un shell Bash avec les utilitaires Linux pour continuer. Si vous utilisez Linux ou macOS, le programme Terminal est tout ce dont vous avez besoin. La plupart des terminaux Bash sont livrés avec SSH installé, mais sinon, tapez simplement 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 nécessaire que ce soit une adresse .COM. Seuls vous, vos amis proches et votre famille l'utiliserez. Par exemple, nous avons trouvé un nom de domaine .XYZ pour seulement 1 $ par an qui fonctionnera très bien.
Préparer votre serveur
Pour préparer votre serveur à l'action, vous devez configurer un compte d'utilisateur normal avec des privilèges administratifs. C'est une très mauvaise idée de se connecter en tant qu'utilisateur root tout-puissant après la configuration initiale.
À présent, vous devriez avoir une adresse IP et un mot de passe root de votre fournisseur de serveur. L'adresse IP est la façon dont vous vous connectez au serveur, et le mot de passe vous permet d'entrer.
Pour commencer, tapez ce qui suit (remplacez 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, nous l'avons donc saisie dans notre commande. Si tout se passe comme prévu, le serveur distant (où vous placerez Nextcloud) vous demandera un mot de passe. Tapez le mot de passe que votre fournisseur de serveur vous a donné.
Vous serez ensuite invité à définir un nouveau mot de passe pour root. Choisissez ce que vous voulez, ne l’oubliez pas et n’oubliez pas!
Vous êtes maintenant à 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, nous tapons ce qui suit pour ajouter un nouvel utilisateur au serveur:
adduser ian
Remplacez «ian» par le nom d'utilisateur que vous souhaitez utiliser. Une fois que vous avez exécuté cette commande, vous êtes invité à donner un mot de passe au nouvel utilisateur. Après cela, le reste des informations demandées par le serveur est facultatif; si vous ne voulez pas le fournir, continuez à appuyer sur Entrée.
Ensuite, nous tapons ce qui suit pour donner à nos nouveaux utilisateurs des privilèges administratifs:
usermod -aG sudo ian
Encore une fois, remplacez «ian» par le nom d'utilisateur que vous avez choisi précédemment.
Maintenant, nous ouvrons une deuxième fenêtre de terminal et saisissons ce qui suit pour nous assurer que les nouveaux comptes d'utilisateurs fonctionnent:
ssh ian@165.22.81.172
Encore une fois, remplacez ce qui précède par votre nom d'utilisateur et l'adresse IP de votre serveur. Tapez le mot de passe que vous avez créé pour ce compte d'utilisateur lorsque vous y êtes invité. Si cela fonctionne, revenez à la fenêtre du terminal dans laquelle vous êtes connecté en tant que root.
Maintenant, nous tapons ce qui suit pour nous assurer que le pare-feu Ubuntu fonctionne correctement:
ufw allow OpenSSH
ufw enable
ufw status
Cette dernière commande d'état devrait renvoyer quelque chose comme 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. Maintenant, fermons la fenêtre racine et revenons à la deuxième fenêtre de terminal avec l'utilisateur normal.
Installer Nextcloud
Il fut un temps où vous deviez configurer et installer le logiciel Nextcloud, PHP, le logiciel de serveur Web et la base de données tous séparément.
Il est beaucoup plus facile d'utiliser le package officiel Snap, qui s'occupe de tout avec une seule commande. Il n'y a pas de problème avec la base de données ou vous devez vous inquiéter si Apache ou Nginx dessert votre site.
Si vous voulez voir exactement ce que le package Snap installe (spoiler: c'est le reste de la pile LAMP, plus Redis), consultez le référentiel snap Nextcloud sur GitHub.
Nous tapons ce qui suit:
sudo snap install nextcloud
Le «sudo» au début élève le compte d'utilisateur régulier de sorte qu'il dispose de droits administratifs temporaires. Il vous sera demandé votre mot de passe pour effectuer cette opération. Si tout se passe bien, dans une minute ou deux, Nextcloud sera installé et (presque) prêt à l'action.
Ensuite, nous tapons ce qui suit pour créer un nouveau compte d'utilisateur Nextcloud qui peut se connecter à notre site:
sudo nextcloud.manual-install ianpaul correctHorseBatteryStaple
Au lieu de «ianpaul», saisissez le nom d'utilisateur que vous souhaitez utiliser pour vous connecter à Nextcloud. Le bit «correctHorseBatteryStaple» est notre mot de passe. Ne l'utilisez pas – il s'agit d'une bande dessinée XKCD très connue et n'est qu'un exemple.
Gérer les domaines
Pour vous faciliter la vie, nous ne voulons pas utiliser une adresse IP tout le temps pour accéder à notre serveur. Au lieu de cela, nous utiliserons un nom de domaine que vous obtiendrez à nouveau pour aussi peu que 1 $ par an. Pour notre exemple, nous utilisons HowToGeekTest.xyz.
Une fois que vous avez un domaine, vous devez gérer les paramètres DNS de votre registraire de domaine (où vous avez acheté le domaine) et les diriger vers votre fournisseur de serveur. Si vous avez choisi 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 tout ce que vous avez choisi) et ajoutez le nouveau domaine à votre compte. Vous devrez ajouter un enregistrement A qui pointe vers votre adresse IP, un enregistrement CNAME si vous ne souhaitez pas utiliser "www" tout le temps et des enregistrements NS s’ils n’ont pas été ajoutés automatiquement.
L'image ci-dessous montre un exemple de DigitalOcean.
Techniquement, cela peut prendre jusqu'à 24 heures avant que votre domaine soit disponible, mais il commence généralement à fonctionner en quelques minutes.
Retour à Nextcloud
Avec le domaine configuré, nous pouvons revenir à la fin de Nextcloud dans le terminal. Si vous vous êtes déconnecté du serveur avec votre compte d'utilisateur normal (ian@165.22.81.172 dans notre exemple), reconnectez-vous.
Maintenant, nous tapons ce qui suit pour ajouter notre nouveau domaine à Nextcloud:
sudo nextcloud.occ config:system:set trusted_domains 1 --value=howtogeektest.xyz
Après «–value =», tapez votre domaine plutôt que le nôtre (howtogeektest.xyz).
Ensuite, nous tapons ce qui suit pour nous assurer que notre nouveau domaine a été ajouté correctement:
sudo nextcloud.occ config:system:get trusted_domains
Le terminal doit imprimer quelque chose comme l'image ci-dessous.
Ensuite, nous tapons ce qui suit pour nous assurer que nous pouvons utiliser les ports que nous voulons en les laissant passer par le pare-feu:
sudo ufw allow 80,443/tcp
Le port 80 est utilisé par le trafic HTTP non chiffré, tandis que 443 est pour SSL / TLS.
En parlant de cela, nous allons avoir besoin d'un certificat SSL / TLS gratuit de Let’s Encrypt, nous tapons donc ce qui suit:
sudo nextcloud.enable-https lets-encrypt
Une fois que le générateur Let’s Encrypt démarre, il demande une adresse e-mail et votre nom de domaine Nextcloud. Suivez simplement les instructions et vous devriez avoir 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 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 à commencer. Sinon, attendez quelques heures et réessayez. Si vous souhaitez dépanner immédiatement, vous pouvez voir si le serveur répond via l'adresse IP.
Pour que cela fonctionne, nous devons taper ce qui suit, pour ajouter l'adresse IP à nos 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 simplement "trusted_domains 1", vous écraserez votre nom de domaine réel dans la liste des domaines de confiance et ne pourrez pas l'utiliser.
Une fois cela fait, saisissez l'adresse IP dans la barre d'adresse de votre navigateur et vous devriez voir la page de connexion ci-dessus. Sinon, il y a eu un problème avec l'installation.
Comme nous n'avons pas de certificat SSL pour l'adresse IP, il ne pourra pas se connecter en toute sécurité. Pour cette raison, nous vous suggérons de supprimer l'IP de la liste des domaines approuvés après avoir confirmé que le serveur fonctionne. Pour ce faire, tapez ce qui suit:
sudo nextcloud.occ config:system:delete trusted_domains 2
Accroître les performances
Si votre serveur Nextcloud ne fonctionne pas bien, vous devrez peut-être augmenter la limite de mémoire. Par défaut, c'est 128 Mo. Pour augmenter ce nombre à 512 Mo, vous devez vous connecter au serveur à l'aide du terminal et saisir ce qui suit:
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 et installer Nextcloud sur votre bureau et vos appareils mobiles pour une 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 propre boîte de dépôt personnelle!