Pour celles et ceux qui souhaitent garder un contrôle total sur leurs données, Nextcloud offre une puissante solution open source pour mettre en place un système de stockage cloud privé. La plateforme permet non seulement la synchronisation sécurisée de fichiers entre différents appareils, mais aussi l’hébergement du stockage sur votre propre serveur, sans dépendre de fournisseurs tiers.
Dans ce guide, nous allons suivre étape par étape l’installation de Nextcloud en utilisant des conteneurs Docker isolés, ce qui simplifie grandement le déploiement et la gestion. Nous configurerons également le chiffrement automatique du trafic grâce aux certificats SSL de Let’s Encrypt afin d’assurer une transmission sécurisée des données.
Vous aurez besoin de :
Un serveur cloud Hostman avec Linux Ubuntu 24.04 préinstallé.
Un nom de domaine.
Docker et Docker Compose installés.
Pour le serveur, choisissez une configuration comprenant 1 cœur CPU, 2 Go de RAM et une adresse IPv4 publique, que vous pouvez demander lors de la création du serveur ou plus tard dans la section « Network ».
Le serveur sera prêt en quelques minutes. L’adresse IPv4 ainsi que les identifiants SSH seront disponibles dans le tableau de bord.
Nextcloud nécessite plusieurs composants essentiels :
Base de données : ici MariaDB, un système de gestion de base de données performant et fiable.
Certificat SSL : nous utiliserons les certificats gratuits de l’autorité Let’s Encrypt.
Reverse proxy : nous ajouterons Nginx Proxy Manager, qui acheminera le trafic HTTP et HTTPS vers les conteneurs appropriés.
Commencez par créer un dossier destiné à stocker les fichiers de configuration et accédez-y :
mkdir nextcloud && cd nextcloud
Ce fichier caché contiendra les variables de mots de passe :
nano .env
Contenu du fichier :
NEXTCLOUD_ROOT_PASSWORD=secure_root_password_123
NEXTCLOUD_DB_PASSWORD=secure_nextcloud_db_password_456
NPM_ROOT_PASSWORD=secure_npm_root_password_789
NPM_DB_PASSWORD=secure_npm_db_password_012
N’oubliez pas de remplacer les valeurs par les vôtres.
Créez le fichier :
nano docker-compose.yml
Ajoutez la configuration suivante (non traduite selon votre demande) :
volumes:
nextcloud-data:
nextcloud-db:
npm-data:
npm-ssl:
npm-db:
networks:
frontend:
backend:
services:
nextcloud-app:
image: nextcloud:31.0.8
restart: always
volumes:
- nextcloud-data:/var/www/html
environment:
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=nextcloud-db
- MYSQL_PORT=3306
networks:
- frontend
- backend
nextcloud-db:
image: mariadb:12.0.2
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- nextcloud-db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=${NEXTCLOUD_ROOT_PASSWORD}
- MYSQL_PASSWORD=${NEXTCLOUD_DB_PASSWORD}
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
networks:
- backend
npm-app:
image: jc21/nginx-proxy-manager:2.12.6
restart: always
ports:
- "80:80"
- "81:81"
- "443:443"
environment:
- DB_MYSQL_HOST=npm-db
- DB_MYSQL_PORT=3306
- DB_MYSQL_USER=npm
- DB_MYSQL_PASSWORD=${NPM_DB_PASSWORD}
- DB_MYSQL_NAME=npm
volumes:
- npm-data:/data
- npm-ssl:/etc/letsencrypt
networks:
- frontend
- backend
npm-db:
image: jc21/mariadb-aria:10.11.5
restart: always
environment:
- MYSQL_ROOT_PASSWORD=${NPM_ROOT_PASSWORD}
- MYSQL_DATABASE=npm
- MYSQL_USER=npm
- MYSQL_PASSWORD=${NPM_DB_PASSWORD}
volumes:
- npm-db:/var/lib/mysql
networks:
- backend
Lancez :
docker compose up -d
Si une erreur liée aux limites de téléchargement Docker Hub apparaît :
Connectez-vous à votre compte Docker Hub ou créez-en un.
Allez dans Account settings → Personal access tokens.
Cliquez sur Generate new token.
Donnez une description, définissez une date d’expiration et choisissez les permissions : Read, Write, Delete.
Cliquez sur Generate et copiez le token (il ne sera affiché qu’une seule fois).
Sur le serveur, connectez-vous avec :
docker login -u dockeruser
Remplacez dockeruser par votre nom d’utilisateur et collez le token comme mot de passe.
Redémarrez ensuite les conteneurs :
docker compose up -d
Vérifiez leur état :
docker ps
Tous les conteneurs doivent être marqués Up.
Ouvrez dans votre navigateur :
http://<server-IP>:81
Identifiants par défaut :
Login : admin@example.com
Mot de passe : changeme
Lors de la première connexion :
Mettez à jour le nom complet, pseudonyme et e-mail.
Changez le mot de passe :
Current Password : changeme
New Password : votre nouveau mot de passe
Confirm Password : répétez le mot de passe
Accédez à Hosts → Proxy Hosts.
Cliquez sur Add Proxy Host et remplissez :
Domain Names : le domaine de votre instance Nextcloud
Scheme : http
Forward Hostname/IP : nextcloud-app
Forward Port : 80
Dans l’onglet SSL :
Sélectionnez Request a new SSL Certificate
Activez :
Force SSL
HTTP/2 Support
HSTS Enabled
Saisissez votre e-mail pour Let’s Encrypt et acceptez les conditions. Enregistrez.
Accédez maintenant à votre domaine. Si tout est correctement configuré, l’interface web de Nextcloud s’ouvrira et un certificat SSL Let’s Encrypt sera automatiquement émis.
Créez un nouveau compte administrateur.
Installez les applications recommandées si vous le souhaitez.
L’installation et la configuration de base sont terminées.
Dans cet article, nous avons montré comment déployer Nextcloud avec Docker et obtenir un certificat SSL gratuit via Let’s Encrypt.
Cette méthode est l’une des plus fiables, sécurisées et évolutives. Docker garantit une bonne isolation des applications, simplifie les mises à jour et facilite les migrations. Utiliser un certificat SSL n’est pas seulement recommandé : c’est essentiel pour protéger les données sensibles et assurer un trafic chiffré.