Créer un espace de stockage cloud chez soi avec Nextcloud et Docker

Des produits tels que Google Drive et Dropbox sont très utilisés aujourd’hui car ils sont pratiques. Ils donnent accès à des fichiers depuis n’importe quel appareil disposant d’une connexion internet. Cependant, ces services ont leurs limites:

  • La capacité de stockage est limitée, cela peut amener l’utilisateur à payer pour disposer de plus d’espace

  • La disponibilité de vos fichiers dépend de la disponibilité des fournisseurs de services, une panne peut toujours survenir

  • On peut se demander où sont stockés nos fichiers, les problématiques de gouvernance des données à l’heure du RGPD sont de plus en plus débattues

Nextcloud se positionne ainsi comme un remplaçant de ces services. Nous allons voir dans cet article comment installer Nextcloud à l’aide de Docker et Docker-Compose, puis comment exploiter ses fonctionnalités principales.

  • Open-source: le code source est disponible sur Github et la documentation est très bien rédigée
  • Polyvalent: en plus d’héberger vos fichiers, Nextcloud peut servir d’agenda, de point de synchronisation de contacts, de plateforme de streaming vidéo…
  • Personnalisable: Nextcloud possède une marketplace permettant d’installer de nombreuses applications
  • Collaboratif: vous pouvez gérer de multiples utilisateurs et groupes dans le cadre d’un espace de stockage partagé

Prérequis

Pour pouvoir suivre ce tutoriel, voici ce dont vous aurez besoin :

Configuration

Docker-Compose

Pour démarrer ce projet, vous aurez besoin de créer un premier fichier : docker-compose.yml qui va définir les différents conteneurs faisant fonctionner Nextcloud :

Nextcloud est donc ici réparti en 5 conteneurs Docker :

  • nextcloud-db : base de données MariaDB
    • Stockage d’un état persistant des fichiers hébergés et de données applicatives (utilisateurs, versions de fichiers…)
  • nextcloud-redis : service de caching de fichier Redis
    • Mise à disposition plus rapide des données stockées
  • nextcloud-app : serveur PHP qui exécute le code de Nextcloud
  • nextcloud-web : serveur NginX frontal
    • Un reverse-proxy pour gérer les requêtes HTTP
  • nextcloud-cron : service d’exécution de tâches de routine
    • Tâches régulières ne nécessitant pas une action humaine (ex : nettoyage de la base de donnée)

Il faut noter que le conteneur nextcloud-app créé un volume partagé entre Docker et votre système d’exploitation hôte. Cela permet d’accéder à des fichiers de configuration générés par Nextcloud ainsi qu’aux données que vous y stockerez.

 

Environnement

Nous devons aussi configurer un fichier de variables d’environnement .env :

 

Pour une configuration pérenne, il est bien-sûr nécessaire de créer des mots de passe robustes pour votre base de données.

La variable MY_DOMAIN correspond au nom de domaine qui va pointer vers le conteneur NginX.

Ce conteneur reçoit la configuration nginx.conf que vous pourrez récupérer ici.

Installation

Pour démarrer Nextcloud, lancez la commande :

docker-compose up

Patientez quelques instants le temps que Nextcloud initialise son environnement. Dès que cette initialisation est terminée, accédez dans votre navigateur à l’adresse http://localhost:8888. Vous verrez alors cette page :

installation

Renseignez un nom et un mot de passe pour le compte administrateur de votre instance et cliquez sur “Terminez l’installation”.

Après quelques secondes de mise en route, vous arriverez sur la page Tableau de bord de Nextcloud. Félicitations !

Démarrage

Pour bien commencer avec Nextcloud, nous pouvons déjà définir un compte utilisateur personnel :

  • Cliquez sur la bulle en haut à droite de l’écran et cliquez sur la section “Utilisateurs”
  • Créez un groupe “utilisateur” qui ne sera pas privilégié
  • Créez un utilisateur qui sera votre compte principal pour utiliser Nextcloud

C’est toujours une bonne pratique d’utiliser un compte non-privilégié pour effectuer vos opérations de tous les jours, il n’y a pas de raison de ne pas le faire ici non plus !

Déconnectez-vous du compte administrateur et connectez-vous avec votre nouveau compte utilisateur.

Vous pouvez maintenant accéder à votre espace de stockage !

L’interface web vous permettra d’explorer tous vos fichiers ainsi que d’en charger et télécharger.

Voici une démonstration de l’utilisation de l’interface web de Nextcloud :

interface

Nous avons installé Nextcloud avec Docker, ce qui nous a épargné de nombreuses étapes d’installation par rapport à une mise en place classique. Cette installation est tout à fait fonctionnelle, mais si vous souhaitez en avoir le même usage que Dropbox, de nombreux guides existent afin de rendre votre application accessible depuis internet et grâce à cela, synchroniser vos fichiers à travers tous vos appareils.

Vous pourrez donc profiter de votre espace de stockage cloud sans perdre le contrôle de vos données !

Terence Chateigné

Terence Chateigné

Térence est SRE (Site Reliability Engineer) chez Padok. Archer à ses heures perdues, Térence est passionné de cloud et d'open-source.

Qu'en pensez-vous ? Laissez vos commentaires ici !