Sommaire
🎯 TUTORIEL PAS À PAS
☁️ Installation de Nextcloud avec Docker Compose
Ce tutoriel vous guide pas à pas dans l'installation de Nextcloud avec Docker Compose. Vous déploierez une stack complète avec MariaDB (base de données), Redis (cache) et Nextcloud (interface web). Nous utiliserons également Traefik en reverse-proxy pour exposer Nextcloud avec HTTPS.
📌 Prérequis :
- Un serveur avec Docker et Docker Compose installés (voir le tutoriel Docker).
- Un nom de domaine ou sous-domaine pointant vers l'IP du serveur (ex:
nextcloud.mon-domaine.fr). - Les ports 80 et 443 ouverts.
1 Préparation du projet
Étape 1 – Créer le répertoire du projet
Créez un répertoire dédié pour le projet Nextcloud.
$ mkdir -p ~/nextcloud && cd ~/nextcloud
Étape 2 – Créer les répertoires de données
Créez les dossiers qui seront montés comme volumes pour persister les données.
$ mkdir -p data db redis
📂 Organisation :
data/: fichiers de Nextcloud (documents, photos, etc.).db/: données de la base de données MariaDB.redis/: données du cache Redis.
2 Création du fichier docker-compose.yml
Étape 1 – Créer le fichier
docker-compose.ymlCréez le fichier de composition avec les services Nextcloud, MariaDB et Redis, en utilisant la syntaxe moderne sans
version.
$ nano docker-compose.yml
---
services:
db:
image: mariadb:11.6
container_name: nextcloud-db
restart: always
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
MYSQL_ROOT_PASSWORD: root_password
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: nextcloud_password
networks:
- nextcloud-network
redis:
image: redis:7.4-alpine
container_name: nextcloud-redis
restart: always
volumes:
- ./redis:/data
networks:
- nextcloud-network
nextcloud:
image: nextcloud:30-fpm
container_name: nextcloud-app
restart: always
depends_on:
- db
- redis
volumes:
- ./data:/var/www/html
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=nextcloud_password
- REDIS_HOST=redis
networks:
- nextcloud-network
web:
image: nginx:alpine
container_name: nextcloud-web
restart: always
depends_on:
- nextcloud
volumes:
- ./data:/var/www/html:ro
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
ports:
- "8080:80"
networks:
- nextcloud-network
networks:
nextcloud-network:
driver: bridge
📌 Syntaxe moderne : La directive
version n'est plus obligatoire. On utilise --- en début de fichier pour indiquer le début du document YAML.
⚠️ Modifications nécessaires :
- Remplacez
root_passwordetnextcloud_passwordpar des mots de passe forts. - La version
30-fpmcorrespond à la dernière version stable de Nextcloud (ajustez si nécessaire).
Étape 2 – Créer le fichier de configuration Nginx
Créez le fichier
nginx.conf pour servir Nextcloud.
$ nano nginx.conf
server {
listen 80;
server_name _;
root /var/www/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
fastcgi_pass nextcloud:9000;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ \.(js|css|png|jpg|svg|ico)$ {
expires 1y;
log_not_found off;
add_header Cache-Control "public, immutable";
}
}
🔍 Explication : Ce fichier configure Nginx pour servir les fichiers statiques et forwarder les requêtes PHP vers le conteneur Nextcloud (FPM).
3 Démarrage de la stack
Étape 1 – Lancer les conteneurs
$ docker compose up -d
✅ Les conteneurs
nextcloud-db, nextcloud-redis, nextcloud-app et nextcloud-web sont démarrés.
Étape 2 – Vérifier l'état des conteneurs
$ docker compose ps
✅ Les 4 conteneurs doivent être
Up.
Étape 3 – Accès à Nextcloud
Depuis un navigateur, accédez à
http://IP_DU_SERVEUR:8080.http://IP_DU_SERVEUR:8080
Vous devriez voir la page de bienvenue de Nextcloud.
4 Configuration initiale de Nextcloud
Étape 1 – Créer un compte administrateur
Depuis l'interface web, créez un compte administrateur en renseignant :
- Nom d'utilisateur : choisissez un nom (ex:
admin). - Mot de passe : un mot de passe fort.
- Chemin des données : par défaut (
/var/www/html/data). - Base de données : sélectionnez MySQL/MariaDB.
- Hôte de la base de données :
db(nom du conteneur). - Nom de la base de données :
nextcloud. - Utilisateur de la base de données :
nextcloud. - Mot de passe de la base de données : celui défini dans
docker-compose.yml.
Étape 2 – Vérifier la configuration
Une fois connecté, Nextcloud vous proposera peut-être des ajustements (ex: configurer une adresse de courriel, installer des applications). Ne vous en préoccupez pas pour l'instant.
5 (Optionnel) Sécuriser avec HTTPS via Traefik
Pour exposer Nextcloud en HTTPS avec un certificat Let's Encrypt, vous pouvez utiliser Traefik comme reverse-proxy. Cette section suppose que vous avez déjà installé Traefik (voir le tutoriel Traefik).
Étape 1 – Ajouter les labels Traefik au service web
Modifiez le service
web dans docker-compose.yml pour ajouter les labels Traefik.
web:
image: nginx:alpine
container_name: nextcloud-web
restart: always
depends_on:
- nextcloud
volumes:
- ./data:/var/www/html:ro
- ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
networks:
- nextcloud-network
labels:
- "traefik.enable=true"
- "traefik.http.routers.nextcloud.rule=Host(`nextcloud.mon-domaine.fr`)"
- "traefik.http.routers.nextcloud.entrypoints=websecure"
- "traefik.http.routers.nextcloud.tls.certresolver=le"
- "traefik.http.services.nextcloud.loadbalancer.server.port=80"
⚠️ Modifications nécessaires : Remplacez
nextcloud.mon-domaine.fr par votre domaine réel.
Étape 2 – Relancer la stack avec Traefik
Si vous utilisez Traefik en bare-metal (comme dans le tutoriel dédié), assurez-vous que Traefik est en cours d'exécution sur le même réseau ou qu'il peut accéder aux conteneurs via le réseau
nextcloud-network.
# Pour utiliser le réseau de Traefik, vous pouvez connecter votre stack :
$ docker compose down
$ docker compose up -d
$ docker compose down
$ docker compose up -d
Étape 3 – Accéder à Nextcloud en HTTPS
https://nextcloud.mon-domaine.fr
✅ Nextcloud est maintenant accessible en HTTPS !
✅ Test de validation
🎉 Installation réussie si :
- Les 4 conteneurs sont
Up(docker compose ps). - La page d'accueil de Nextcloud est accessible sur
http://IP:8080. - Vous avez créé un compte administrateur et vous êtes connecté.
- (Optionnel) Nextcloud est accessible en HTTPS avec un certificat Let's Encrypt valide.
📚 Ressources complémentaires
- Documentation officielle Nextcloud
- Image Docker Nextcloud officielle
- Documentation Traefik
- Tutoriel – Installation de Docker sur Debian 13
Suis ta progressionConnecte-toi pour marquer les ressources comme terminées et retrouver ton avancement.
Se connecter