
Sommaire
Introduction
Dans cet article, nous allons vous guider à travers l’installation de NextCloud en utilisant docker compose, tout en configurant un stockage externe SMB sur mon NAS qui hébergera mes fichiers.
NextCloud est une solution de cloud personnel puissante et flexible qui permet de gérer et de partager des fichiers de manière sécurisée. Docker, quant à lui, simplifie le déploiement de services en isolant les applications dans des conteneurs légers.
Cette solution est une excellente alternative aux solutions propriétaire comme Google Drive, Dropbox, OneDrive ou iCloud.
Fonctionnalités et avantages
Voici une liste des fonctionnalités principales de NextCloud :
- Hébergement personnel et contrôle des données
NextCloud vous permet de stocker vos données sur vos propres serveurs, vous offrant un contrôle total sur vos fichiers et votre vie privée.
- Partage et collaboration facile
Partagez des fichiers et des dossiers avec des utilisateurs internes ou externes, définissez des permissions spécifiques et collaborez en temps réel avec des outils comme NextCloud Talk et OnlyOffice.
- Synchronisation multiplateforme
NextCloud propose des clients pour Windows, macOS, Linux, Android et iOS, permettant une synchronisation automatique de vos fichiers sur tous vos appareils.
- Extensions et applications modulaires
Une vaste bibliothèque d’applications permet d’ajouter des fonctionnalités telles que la gestion de calendrier, la synchronisation des contacts, la prise de notes, et bien plus encore.
- Sécurité avancée
Chiffrement des données en transit et au repos, authentification à deux facteurs, et intégration avec des systèmes de sécurité tels que LDAP et Active Directory.
- Intégration avec des services externes
NextCloud supporte l’intégration avec des services de stockage externes comme SMB/CIFS, FTP, S3, et WebDAV, facilitant la gestion centralisée de vos fichiers.
- Gestion des versions et récupération de fichiers
NextCloud conserve un historique des versions de vos fichiers, vous permettant de restaurer des versions précédentes en cas de besoin.
Installation de NextCloud avec Docker Compose
Le prérequis principale pour réaliser l’installation de NextCloud avec docker compose est l’installation de docker compose sur un serveur linux de préférence.
Dans mon cas, je crée un dossier pour stocker le fichier de configuration de docker compose et les volumes liés à NextCloud
sudo mkdir -p docker/nextcloud
Et on se place dans le dossier fraichement crée
cd docker/nextcloud
On crée et édite notre fichier docker-compose.yml
sudo nano docker-compose.yml
services:
nextcloud:
image: nextcloud:apache
restart: always
ports:
- 8080:80
volumes:
- nextcloud_data:/var/www/html
networks:
- redisnet
- dbnet
environment:
- REDIS_HOST=redis
- MYSQL_HOST=db
- MYSQL_DATABASE=bdd_name #A changer
- MYSQL_USER=user #A changer
- MYSQL_PASSWORD= password #A changer
redis:
image: redis:alpine
restart: always
networks:
- redisnet
expose:
- 6379
db:
image: mariadb:latest
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
restart: always
volumes:
- db_data:/var/lib/mysql
networks:
- dbnet
environment:
- MYSQL_DATABASE=bdd_name #A changer
- MYSQL_USER=user #A changer
- MYSQL_ROOT_PASSWORD=password #A changer
- MYSQL_PASSWORD= password #A changer
expose:
- 3306
volumes:
db_data:
nextcloud_data:
networks:
dbnet:
redisnet:
On lance ensuite la stack docker compose avec cette commande :
sudo docker compose up -d
Une fois terminé, on peut vérifier que les differents conteneurs sont bien démarrés :
sudo docker ps

On peut désormais se connecter à NextCloud sur l’adresse suivante : http://votre-ip:8080
La première action sera de définir notre compte administrateur avec le mot de passe de notre choix

Configuration du stockage externe
Nous allons connecter un lecteur distant à notre serveur nextcloud
Dans l’onglet « Applications désactivées » de l’onglet « Applications », vous devrez activer « External storage support »

On se rend dans « Paramètres d’administration » > « Stockage Externe » de la partie « Administration », nous allons ajouter notre lecteur distant.
Il est possible que vous rencontre une erreur indiquant que le client smb « smcblient » n’est pas installée

Si c’est le cas, il faut exécuter cette suite de commande :
sudo docker exec -it nextcloud-nextcloud-1 bash
apt update
apt install smbclient libsmbclient-dev libsmbclient-php
pecl install smbclient
En redémarrant les différents conteneurs, je peux ajouter ensuite mon stockage externe et l’erreur disparait

Pour ajouter mon lecteur distant, je sélectionne « SMB/CIFS »

On sélectionne ensuite les informations nécessaires telles que le nom DNS (ou l’adresse IP), le nom du partage, le sous-dossier si vous le souhaitez et les identifiants pour se connecter au partage
Assurez-vous d’avoir un utilisateur dédié au droit d’accès sur votre espace distant, dans mon cas il s’agira de l’utilisateur nommé « nextcloud »

Après validation, le stockage externe est bien connecté à NextCloud !

Conclusion
Nous venons de voir comment installer NextCloud en utilisant Docker Compose et à configurer un stockage externe SMB pour héberger vos fichiers. NextCloud vous permet de contrôler vos données personnelles tout en facilitant le partage et la collaboration grâce à ses nombreuses fonctionnalités. Cette solution offre une alternative plus que crédible aux solutions propriétaires sur le marché.