Ubuntu 20.04 & 21.04 - Installation de Nextcloud avec Docker et Traefik

Article écrit par • créé le • mis à jour le 16 janvier 2024

Nextcloud est un fork du célèbre ownCloud, solution vous permettant de créer votre propre cloud auto-hébergé et ainsi de stocker et synchroniser vos fichiers, vos contacts, votre agenda et vos contenus multimédias directement sur votre serveur. Vous pourrez alors accéder à toutes ces informations directement depuis votre navigateur web ou votre mobile via une application dédiée.

Des services comme Dropbox, Microsoft OneDrive ou l’iCloud d’Apple offrent une alternative attractive et pratique au stockage local sur votre propre appareil : ordinateur, tablette ou smartphone, grâce à une accessibilité permanente et globale via Internet. Cependant, le volume de stockage gratuit n'est pas illimité et avec des données sensibles, la question de la sécurité des fichiers stockés se pose alors. Si vous désirez profiter des avantages du Cloud tout en conservant un contrôle total de l’ensemble de vos données, il est alors nécessaire d’héberger et de gérer votre propre service de stockage en ligne.

Fin avril 2016, Frank Karlitschek, cofondateur de ownCloud Inc, a annoncé son départ de la société, en mettant en cause, des dissensions internes, liées en partie à la stratégie de la société, mais également à la double licence du projet, qui ne favorise guère la participation de la communauté. Frank Karlitschek et Niels Mache, patron de Struktur AG (connu pour l’offre collaborative Spreed.ME), rebootent aujourd’hui cette initiative sous la forme d’une nouvelle société et d’un nouveau projet : Nextcloud. Alors que les utilisateurs de ownCloud peuvent utiliser certaines fonctionnalités exclusivement dans l’édition Entreprise sous licence commerciale, tous les composants Nextcloud sont eux disponibles gratuitement sous la licence libre AGPLv3. Nextcloud offre une assistance professionnelle payante en cas de besoin.

Nextcloud Les principales fonctionnalités de Nextcloud :
  • Synchronisation de fichiers entre différents ordinateurs (clients dédiés multi-plateformes)
  • Stockage sécurisé (chiffrage des fichiers) et ajout de services externes (Amazon, Google, Dropbox, NFS, FTP, SFTP, WebDAV...)
  • Authentification LDAP/Active Directory, Kerberos et Shibboleth/SAML 2.0
  • Partage de fichiers entre utilisateurs ou publiquement
  • Éditeur de documents en ligne avec la suite Collabora Online (basée sur OpenOffice)
  • Visionneuse de documents en ligne (PDF, Open document...)
  • Gestion de différents workflows
  • Calendrier (CalDAV) et gestionnaire de contacts (CardDAV)
  • Conférences audio et vidéo sécurisées (WebRTC) avec possibilité de partage d'écran
  • Galerie d'images
  • ... et de nombreuses fonctionnalités supplémentaires grâce aux applications dédiées.

À qui s'adresse ce tutoriel ?

Si vous souhaitez vous affranchir de solutions payantes ou dont le stockage est limité pour gérer vos documents, photos, agendas, contacts, mails, etc., alors cet article est fait pour vous ! Cette procédure fonctionne à la fois pour des installations en local, sur VM ou sur serveur dédié (kimsufi, dedibox, etc.). Il n'est pas obligatoire d'avoir un nom de domaine pour y accéder de l'extérieur. Toutefois, si vous en possédez un, nous verrons comment mettre en place Traefik et chiffrer vos échanges avec le protocole SSL/TLS.

Pourquoi Docker ?

Votre Nextcloud sera déployé en quelques minutes ! Docker permet en quelques commandes d'installer et d'exécuter tous les outils dont vous aurez besoin. Chaque outil (MySQL, Traefik, etc.) est isolé et possède son propre container Docker. Chaque container contient toutes les dépendances (librairies, démons, configurations, etc.) nécessaires à son exécution, sans interférer avec les autres outils ou d'autres services installés sur votre serveur. Enfin les mises à jour des outils sont simplifiées et peuvent être totalement automatisées (nous le verrons). Les images Docker sont versionnées et permettent de redéployer une version précédente très facilement.

Cependant à ce jour, l'image officielle Docker de Nextcloud n'est pas très mature. De plus, un environnement entièrement dockerisé peut présenter certaines limites et s'avère plus complexe à configurer si vous avez des besoins particuliers. Dans ce cas, je vous suggère d'installer Nextcloud de façon plus « classique » sans Docker via cette procédure.

1 - Prérequis

  • Vous devez disposer d'Ubuntu 22.04 en version Desktop, Server ou ARM (Raspberry Pi). Si vous disposez d'une version antérieure, vous pouvez mettre à jour votre système en suivant cette procédure.
  • Votre utilisateur doit avoir accès à sudo.
  • Vos dépôts APT doivent être à jour. Dans le doute, tapez la commande suivante :
    sudo apt-get update
  • Les paquets curl et software-properties-common doivent être installés sur votre système. Dans le doute, tapez la commande suivante :
    sudo apt-get install -y curl software-properties-common

2 - Installation de Docker

  1. Installez Docker :
    sudo apt-get install -y docker.io
  2. Vérifiez que Docker est correctement installé avec la commande :
    docker -v
    Docker version 19.03.8, build afacb8b7f0
    La commande doit retourner la version installée de Docker.

3 - Installation de Docker Compose

  1. Téléchargez Docker Compose avec la commande suivante en modifiant, si besoin, la version avec la dernière release du repository officiel de Docker :
    sudo curl -L https://github.com/docker/compose/releases/download/1.27.4/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
  2. Ajoutez les droits d'exécution sur le binaire de Docker Compose :
    sudo chmod +x /usr/local/bin/docker-compose
  3. Vérifiez l'installation de Docker Compose avec la commande :
    docker-compose -v
    docker-compose version 1.27.4, build 8a1c60f6
    Si l'installation s'est correctement effectuée, cette commande doit vous renvoyer la version de Docker Compose.

4 - Création de l'utilisateur nextcloud

Il est recommandé, pour des raisons de sécurité, de créer un utilisateur dédié à la gestion des volumes et de ne pas les lancer sous votre super-utilisateur.

  1. Créez un utilisateur nextcloud :
    sudo adduser nextcloud
  2. Ajoutez-le au groupe docker :
    sudo adduser nextcloud docker

5 - Création des volumes Docker

  1. Connectez-vous sous l'utilisateur nextcloud :
    su nextcloud
  2. Déplacez-vous dans le répertoire personnel de cet utilisateur :
    cd
  3. Créez le fichier /home/nextcloud/.env et modifiez les valeurs en fonction de votre configuration :
    MYSQL_DATABASE=nextcloud
    MYSQL_USER=mysql_user
    MYSQL_PASSWORD=mysql_password
  4. Créez le fichier /home/nextcloud/docker-compose.yml avec le contenu suivant (copiez le contenu tel quel sans rien modifier) :
    version: '3.7'
    services:
      database:
        image: mariadb
        container_name: nextcloud_database
        restart: unless-stopped
        command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
        environment:
          - MYSQL_RANDOM_ROOT_PASSWORD=yes
          - MYSQL_DATABASE=${MYSQL_DATABASE}
          - MYSQL_USER=${MYSQL_USER}
          - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        networks:
          - lan
        volumes:
          - db:/var/lib/mysql
    
      nextcloud:
        depends_on:
          - database
        image: nextcloud
        container_name: nextcloud_app
        restart: unless-stopped
        ports:
          - 8080:80
        environment:
          - MYSQL_HOST=database
          - MYSQL_DATABASE=${MYSQL_DATABASE}
          - MYSQL_USER=${MYSQL_USER}
          - MYSQL_PASSWORD=${MYSQL_PASSWORD}
        networks:
          - lan
        volumes:
          - html:/var/www/html
    
    volumes:
      db:
      html:
    
    networks:
      lan:
  5. Démarrez l'ensemble des containers :
    docker-compose up -d
  6. Si vous êtes en local, votre Nextcloud est désormais accessible via http://localhost:8080.

    Ne lancez pas la configuration pour le moment. Si vous êtes en local, rendez-vous directement à la page 3 du tutoriel.

    Suite du tutoriel ➔

    Testé sur
    Ubuntu Server 20.04 LTS
    Auteur
    Edouard WATTECAMPS

2 réflexions au sujet de “Ubuntu 20.04 & 21.04 - Installation de Nextcloud avec Docker et Traefik”

  1. Bonjour,
    Lorsque je lance la commande « docker-compose -v », j’ai le message suivant :
    « /usr/local/bin/docker-compose: line 1: Not: command not found »
    La version de Docker est la suivante : Docker version 19.03.13, build 4484c46
    Merci de votre aide

    Répondre
  2. Bonjour!
    Attention, depuis les versions récentes dun conteneur de Collabora, la variable d’environnement domain= n’est plus acceptée. Si je reprend l’exemple de ce guide, dans docker-compose.yml il faut remplacer « domain=${NEXTCLOUD_URL_ESCAPED} » par « aliasgroup1=${NEXTCLOUD_URL_ESCAPED} »
    Puis dans le fichier .env il faut remplacer NEXTCLOUD_URL_ESCAPED=cloud\.mondomaine\.com par NEXTCLOUD_URL_ESCAPED=https://cloud.mondomaine.com:443,https://cloud\.mondomaine\.com,https://cloud\.mondomaine\.com:443
    Voilà, j’espère avoir aidé 🙂

    Répondre

Laisser un commentaire