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.
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
-
Installez Docker :
sudo apt-get install -y docker.io
-
Vérifiez que Docker est correctement installé avec la commande :
La commande doit retourner la version installée de Docker.docker -v Docker version 19.03.8, build afacb8b7f0
3 - Installation de Docker Compose
-
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
-
Ajoutez les droits d'exécution sur le binaire de Docker Compose :
sudo chmod +x /usr/local/bin/docker-compose
-
Vérifiez l'installation de Docker Compose avec la commande :
Si l'installation s'est correctement effectuée, cette commande doit vous renvoyer la version de Docker Compose.docker-compose -v docker-compose version 1.27.4, build 8a1c60f6
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.
-
Créez un utilisateur nextcloud :
sudo adduser nextcloud
-
Ajoutez-le au groupe docker :
sudo adduser nextcloud docker
5 - Création des volumes Docker
-
Connectez-vous sous l'utilisateur nextcloud :
su nextcloud
-
Déplacez-vous dans le répertoire personnel de cet utilisateur :
cd
-
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
-
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:
-
Démarrez l'ensemble des containers :
docker-compose up -d
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.
Ubuntu Server 20.04 LTS
Edouard WATTECAMPS
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
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é 🙂