Docs Administration Système Cloud Souverain Nextcloud
Intermédiaire Docker / Souveraineté

Déployer un Cloud privé souverain avec Nextcloud

D
Par Dylan Pacques

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.

Terminal - Serveur
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 :

docker-compose.yml
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.

Mise en production (Reverse Proxy)

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 !