Introduction
Dans ce tutoriel, tu vas installer une instance de Nextcloud sur un serveur Linux à l’aide de Docker.
L’objectif est d’obtenir une installation :
simple à déployer fonctionnelle immédiatement évolutive (reverse proxy + HTTPS possible)
Ce tutoriel part du principe que :
- Tu as un serveur VPS Chez Echo-Host
- Tu veux une installation propre avec MariaDB et Redis et de Nextcloud
Étape 0 : Installer Docker
Installe Docker + Docker Compose en une commande :
curl -fsSL https://get.docker.com | sh
Active et démarre Docker :
sudo systemctl enable docker
sudo systemctl start docker
Vérifie l’installation :
docker --version
docker compose version
Étape 1 : Créer le dossier du projet
mkdir ~/nextcloud
cd ~/nextcloud
Étape 2 : Créer le fichier Docker Compose
nano docker-compose.yml
Colle :
services:
db:
image: mariadb:11
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --binlog-format=ROW
environment:
MYSQL_ROOT_PASSWORD: MotDePasseRoot
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: MotDePasseDB
volumes:
- db:/var/lib/mysql
redis:
image: redis:7-alpine
container_name: nextcloud-redis
restart: unless-stopped
nextcloud:
image: nextcloud:latest
container_name: nextcloud
restart: unless-stopped
depends_on:
- db
- redis
ports:
- "8080:80"
environment:
MYSQL_HOST: db
MYSQL_DATABASE: nextcloud
MYSQL_USER: nextcloud
MYSQL_PASSWORD: MotDePasseDB
REDIS_HOST: redis
volumes:
- nextcloud:/var/www/html
volumes:
db:
nextcloud:
Étape 3 : Télécharger les images
docker compose pull
Étape 4 : Démarrer les conteneurs
docker compose up -d
Vérifie :
docker ps
Étape 5 (OPTIONNEL MAIS RECOMMANDÉ) : Installer un Reverse Proxy
Si tu veux accéder à Nextcloud :
- avec un nom de domaine
- en HTTPS (certificat SSL)
- depuis Internet proprement
on utilise un reverse proxy.
Le plus simple : Nginx Proxy Manager
5.1 Ajouter le reverse proxy au docker-compose
Ajoute ce service :
proxy:
image: jc21/nginx-proxy-manager:latest
container_name: nginx-proxy
restart: unless-stopped
ports:
- "80:80"
- "81:81"
- "443:443"
volumes:
- proxy_data:/data
- proxy_letsencrypt:/etc/letsencrypt
Et ajoute à la fin :
proxy_data:
proxy_letsencrypt:
5.2 Redémarrer Docker
docker compose up -d
5.3 Accéder au panel
Dans ton navigateur :
http://IP_DU_SERVEUR:81
Creer votre utilisateur Admin a la premier connexion
5.4 Ajouter Nextcloud dans le proxy
Dans l’interface :
- Domain : ton domaine ou IP
- Forward Hostname :
nextcloud.monsupernomdedomaine.me - Forward Port :
8080
5.5 Activer HTTPS
Dans Nginx Proxy Manager :
- “Request SSL Certificate”
- coche “Force SSL”
C’est un message classique de Nextcloud
Ça veut dire : tu essaies d’accéder à ton Nextcloud via une IP ou un domaine qui n’est pas “autorisé” dans la config.
Solution simple pour corrigé l'erreur "Accès à partir d'un domaine non approuvé"
1. Aller dans le conteneur Nextcloud
docker exec -it nextcloud bash
2. Aller dans le dossier de config
cd /var/www/html/config
3. Modifier config.php
Ouvre le fichier :
apt update && apt install nano -y
nano config.php
4. Trouver cette partie :
'trusted_domains' =>
array (
0 => 'localhost',
),
5. Ajouter ton IP ou domaine
Exemple :
'trusted_domains' =>
array (
0 => 'localhost',
1 => '192.168.1.50',
2 => 'IP_DU_SERVEUR',
3 => 'ton-domaine.com',
),
6. Sauvegarder
CTRL + O- Entrée
CTRL + X
7. Quitter le conteneur
exit
8. Redémarrer Nextcloud
docker restart nextcloud
Étape 6 : Ouvrir Nextcloud
Sans proxy :
http://IP_DU_SERVEUR:8080
Avec proxy :
https://ton-domaine.com
Étape 7 : Créer le compte administrateur
- Nom : admin
- Mot de passe : celui que tu veux
Clique sur Installer
Étape 8 : Vérifier le fonctionnement
Nextcloud :
- Avatar → Paramètres admin → Vue d’ensemble
Étape 9 : Ajouter un utilisateur
Paramètres → Utilisateurs → Ajouter
Étape 10 : Déposer des fichiers
- Onglet Fichiers
- Glisser-déposer
- Créer dossiers
Commandes utiles
Arrêter
docker compose down
Redémarrer
docker compose restart
Logs
docker compose logs -f
Mise à jour
docker compose pull
docker compose up -d
Données
Docker crée :
nextcloud→ fichiersdb→ base MariaDBproxy_*→ reverse proxy
Résultat
Tu as maintenant une instance Nextcloud complète avec :
- MariaDB
- Redis
- Docker
- Accès IP direct ou HTTPS
- Reverse proxy optionnel via Nginx Proxy Manager