Déployer un Cloud privé souverain avec Nextcloud
Confier ses fichiers internes, ses agendas et ses contacts à des solutions SaaS tierces (Google Workspace, Microsoft 365) expose votre entreprise à des problématiques de confidentialité et d'exploitation des données. La véritable souveraineté numérique passe par l'auto-hébergement.
Ce tutoriel vous montre comment déployer Nextcloud, la plateforme de collaboration Open Source de référence, de manière moderne et performante en utilisant Docker Compose avec une base de données MariaDB et un cache mémoire Redis.
Prérequis
- Une instance Cloud VPC sous Debian ou Ubuntu avec au moins 2 vCores et 4 Go de RAM.
- Docker et Docker Compose installés sur votre serveur.
- Un nom de domaine configuré pointant vers votre serveur (ex:
cloud.votre-entreprise.com).
Étape 1 : Préparer la structure des dossiers
Pour garantir que vos données (fichiers et base de données) survivent en cas de mise à jour ou de redémarrage des conteneurs, nous devons créer des dossiers pour le montage des volumes persistants.
mkdir -p ~/nextcloud-stack
cd ~/nextcloud-stack
mkdir -p db_data nextcloud_data
Étape 2 : Le fichier Docker Compose
Créez le fichier de configuration. Cette stack inclut trois services : l'application Nextcloud (Apache/PHP), la base de données relationnelle (MariaDB) pour stocker les métadonnées, et Redis pour gérer le verrouillage des fichiers et accélérer le chargement de l'interface.
nano docker-compose.yml
Collez la configuration suivante :
version: '3.8'
services:
db:
image: mariadb:10.6
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./db_data:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=UnMotDePasseRootTrèsComplexe!
- MYSQL_PASSWORD=UnMotDePasseBddComplexe!
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
redis:
image: redis:alpine
restart: always
app:
image: nextcloud:apache
restart: always
ports:
- "8080:80"
depends_on:
- db
- redis
volumes:
- ./nextcloud_data:/var/www/html
environment:
- MYSQL_PASSWORD=UnMotDePasseBddComplexe!
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_HOST=db
- REDIS_HOST=redis
Attention : Modifiez impérativement les valeurs des mots de passe dans la section `environment` avant de lancer la stack.
Étape 3 : Déploiement et finalisation
Lancez l'environnement en arrière-plan (mode détaché) avec la commande suivante :
docker compose up -d
Patientez quelques minutes le temps que l'image télécharge les ressources et configure la base de données initiale. Vous pouvez ensuite finaliser l'installation via votre navigateur web.
Dans ce tutoriel, Nextcloud écoute sur le port 8080 de votre serveur. Pour une mise en production sécurisée, il est indispensable de placer un Reverse Proxy (comme Nginx ou Traefik) devant ce port afin de chiffrer le trafic en HTTPS avec un Certificat SSL Let's Encrypt.
Accédez à l'interface en tapant http://votre-adresse-ip:8080 (ou votre nom de domaine si votre reverse proxy est déjà configuré). Créez votre compte administrateur en remplissant le premier formulaire, et votre cloud souverain est prêt à être utilisé par vos équipes !