🎯 TL;DR
Tu paies 10-20€/mois pour Google Drive, Dropbox ou OneDrive ? Spoiler : tu peux héberger ton propre cloud avec Nextcloud pour 3-5€/mois sur un petit VPS.
Ce que tu vas apprendre :
- Installer Nextcloud avec Docker en 30 minutes chrono
- Configuration HTTPS automatique (Let’s Encrypt)
- Synchronisation multi-appareils (PC, mobile, tablette)
- Économiser 120-240€/an en virant tes abonnements cloud
- Garder le contrôle total de tes données (hello RGPD 🇫🇷)
Prérequis :
- Un serveur Linux (VPS ou machine chez toi)
- 2 Go RAM minimum, 4 Go recommandé
- 20 Go d’espace disque (+ ce que tu veux stocker)
- Un nom de domaine (10€/an suffit)
- 1h de ton temps
Pourquoi Nextcloud > Google Drive (et les autres)
Le calcul économique qui fâche
Google Drive :
- 100 Go : 2€/mois = 24€/an
- 200 Go : 3€/mois = 36€/an
- 2 To : 10€/mois = 120€/an
Nextcloud auto-hébergé :
- VPS 2 Go RAM : 4€/mois = 48€/an
- Domaine : 10€/an
- Total : 58€/an pour stockage illimité (dans la limite de ton VPS)
💰 Économie sur 5 ans avec 2 To : 120€ x 5 – 58€ x 5 = 310€ économisés
Et encore, si tu as déjà un serveur chez toi (Raspberry Pi, vieux PC…), c’est gratuit à part l’électricité.
Ce que tu gagnes en plus
✅ Vie privée : Tes fichiers ne partent pas aux USA
✅ Pas de limite : Tu choisis ta capacité
✅ Apps intégrées : Calendrier, contacts, notes, galerie photos, visio…
✅ Partage de fichiers : Comme WeTransfer mais à toi
✅ Conforme RGPD : Si c’est hébergé en France, tes données restent en France
Sommaire :
Avant de commencer : Choisir ton setup
Option 1 : VPS Cloud (recommandé pour débuter)
Pour qui ? Tu débutes, tu veux que ça marche vite, et tu n’as pas de serveur à la maison.
Recommandation VPS français :
- Hetzner Cloud CPX11 : 4,51€/mois HT → 2 vCPU, 2 Go RAM, 40 Go SSD, Allemagne
- Scaleway DEV1-S : 0,01€/h → 2 vCPU, 2 Go RAM, 20 Go SSD, Paris
- OVHcloud VPS Starter : 3,50€/mois HT → 1 vCPU, 2 Go RAM, 20 Go SSD, France
💡 Pourquoi un VPS ?
- Accès depuis n’importe où (pas besoin d’ouvrir ton routeur)
- IP fixe incluse
- Bande passante illimitée
- Backups automatiques disponibles
Option 2 : Homelab (gratuit mais plus technique)
Pour qui ? Tu as déjà un Raspberry Pi 4/5, un vieux PC ou un mini PC chez toi.
Avantages :
- Coût quasi nul (électricité ~10€/an pour un Raspberry Pi)
- Stockage vraiment illimité (tu branches un disque externe)
- Contrôle total physique
Inconvénients :
- Configuration réseau plus complexe (DynDNS, port forwarding)
- Dépendant de ta connexion internet maison
- Pas d’accès si ton électricité saute
💡 Mon conseil : Commence sur VPS, migre sur homelab quand tu seras à l’aise.
Installation Nextcloud avec Docker : La méthode propre
Étape 1 : Préparer le serveur
On part sur Ubuntu 24.04 LTS (ou 22.04, ça marche aussi).
# Mise à jour du système
sudo apt update && sudo apt upgrade -y
# Installation des dépendances
sudo apt install -y curl git nano
# Installation Docker (méthode officielle)
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# Ajouter ton utilisateur au groupe docker
sudo usermod -aG docker $USER
newgrp docker
# Vérification
docker --version
docker compose versionSi docker compose ne fonctionne pas, installe-le séparément :
sudo apt install docker-compose-plugin⚠️ Erreur fréquente : « Permission denied » → Tu as oublié newgrp docker ou tu n’as pas relancé ta session SSH.
Étape 2 : Créer la structure Docker Compose
On va créer un setup Nextcloud + MariaDB + Nginx Proxy Manager pour gérer facilement HTTPS.
# Créer le dossier projet
mkdir -p ~/nextcloud && cd ~/nextcloud
# Créer le docker-compose.yml
nano docker-compose.ymlColle ce fichier complet et testé en production :
services:
# Base de données MariaDB
db:
image: mariadb:11.2
container_name: nextcloud-db
restart: unless-stopped
command: --transaction-isolation=READ-COMMITTED --log-bin=binlog --binlog-format=ROW
volumes:
- ./db:/var/lib/mysql
environment:
- MYSQL_ROOT_PASSWORD=ChangeMotDePasseSuperSecure123!
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=NextcloudPassword456!
networks:
- nextcloud-network
# Redis pour améliorer les performances
redis:
image: redis:7.2-alpine
container_name: nextcloud-redis
restart: unless-stopped
command: redis-server --requirepass RedisPassword789!
networks:
- nextcloud-network
# Nextcloud
nextcloud:
image: nextcloud:28-apache
container_name: nextcloud-app
restart: unless-stopped
ports:
- "8080:80"
volumes:
- ./nextcloud:/var/www/html
- ./data:/var/www/html/data
environment:
- MYSQL_HOST=db
- MYSQL_DATABASE=nextcloud
- MYSQL_USER=nextcloud
- MYSQL_PASSWORD=NextcloudPassword456!
- REDIS_HOST=redis
- REDIS_HOST_PASSWORD=RedisPassword789!
- NEXTCLOUD_TRUSTED_DOMAINS=ton-domaine.fr
- OVERWRITEPROTOCOL=https
- OVERWRITECLIURL=https://ton-domaine.fr
depends_on:
- db
- redis
networks:
- nextcloud-network
# Cron pour les tâches de maintenance
cron:
image: nextcloud:28-apache
container_name: nextcloud-cron
restart: unless-stopped
volumes:
- ./nextcloud:/var/www/html
- ./data:/var/www/html/data
entrypoint: /cron.sh
depends_on:
- db
- redis
- nextcloud
networks:
- nextcloud-network
networks:
nextcloud-network:
driver: bridge
volumes:
db:
nextcloud:
data:💡 Explications ligne par ligne :
mariadb:11.2: Base de données performante (+ rapide que PostgreSQL pour Nextcloud)redis: Cache qui accélère drastiquement l’interfacenextcloud:28-apache: Version 28 avec Apache intégréOVERWRITEPROTOCOL=https: Force HTTPS même derrière un reverse proxycron: Container dédié qui exécute les tâches de maintenance toutes les 5 min
⚠️ CHANGE LES MOTS DE PASSE ! Remplace tous les ChangeMotDePasseSuperSecure, NextcloudPassword, RedisPassword par TES mots de passe.
Étape 3 : Lancer Nextcloud
# Lancer tous les containers
docker compose up -d
# Vérifier que tout tourne
docker psTu devrais voir 4 containers en état « Up » :
nextcloud-dbnextcloud-redisnextcloud-appnextcloud-cron
✅ Test rapide : Ouvre http://ton-ip-serveur:8080 dans ton navigateur.
Si tu vois la page d’installation Nextcloud, c’est bon ! 🎉
❌ Si ça ne marche pas :
# Voir les logs
docker compose logs -f nextcloud
# Erreur classique "Connection refused" = la DB n'est pas prête
# Solution : attends 30 secondes et recharge la page
# Erreur "Permission denied" dans les logs
sudo chown -R www-data:www-data ./nextcloud ./dataÉtape 4 : Configuration HTTPS avec Nginx Proxy Manager
Pour exposer Nextcloud en HTTPS proprement, on va utiliser Nginx Proxy Manager (interface graphique hyper simple).
# Revenir dans le home
cd ~
# Créer dossier NPM
mkdir nginx-proxy-manager && cd nginx-proxy-manager
# Créer docker-compose.yml
nano docker-compose.ymlversion: '3.8'
services:
npm:
image: 'jc21/nginx-proxy-manager:latest'
container_name: nginx-proxy-manager
restart: unless-stopped
ports:
- '80:80' # HTTP
- '443:443' # HTTPS
- '81:81' # Interface admin
volumes:
- ./data:/data
- ./letsencrypt:/etc/letsencrypt
networks:
- proxy-network
networks:
proxy-network:
external: true
name: nextcloud_nextcloud-network# Lancer NPM
docker compose up -d
# Créer le network partagé si erreur
docker network create nextcloud_nextcloud-network
docker compose up -dAccéder à l’interface NPM :
- URL :
http://ton-ip-serveur:81 - Email :
admin@example.com - Password :
changeme
⚠️ CHANGE IMMÉDIATEMENT le mot de passe admin après connexion !
Configurer le proxy Nextcloud :
- Hosts → Proxy Hosts → Add Proxy Host
- Details :
- Domain Names :
cloud.ton-domaine.fr - Scheme :
http - Forward Hostname / IP :
nextcloud-app - Forward Port :
80 - ✅ Cache Assets
- ✅ Block Common Exploits
- ✅ Websockets Support
- SSL :
- ✅ Request a new SSL Certificate
- ✅ Force SSL
- ✅ HTTP/2 Support
- Email : ton@email.fr
- Advanced (optionnel mais recommandé) :
client_max_body_size 10G;
proxy_buffering off;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Real-IP $remote_addr;Clique Save → Let’s Encrypt va automatiquement générer ton certificat HTTPS !
🎉 Tu peux maintenant accéder à https://cloud.ton-domaine.fr
Étape 5 : Configuration initiale Nextcloud
Ouvre https://cloud.ton-domaine.fr → Tu arrives sur l’assistant d’installation.
Configuration recommandée :
- Compte administrateur :
- Utilisateur :
admin(ou ton prénom) - Mot de passe : FORT (générateur aléatoire recommandé)
- Stockage & base de données :
- Dossier des données :
/var/www/html/data(déjà configuré) - Configurer la base de données : MySQL/MariaDB
- Utilisateur BDD :
nextcloud - Mot de passe BDD :
NextcloudPassword456!(celui du docker-compose) - Nom BDD :
nextcloud - Hôte BDD :
db:3306
- Applications recommandées :
- ✅ Calendrier
- ✅ Contacts
- ✅ Notes
- ✅ Photos
- ⬜ Talk (visio – gourmand en ressources)
Clique Terminer l’installation → Ça prend 1-2 minutes.
Optimisations post-installation (important !)
Activer le cache Redis
Par défaut, Nextcloud ne sait pas qu’on a Redis. Il faut l’activer manuellement.
# Se connecter au container Nextcloud
docker exec -it nextcloud-app bash
# Éditer config.php
nano /var/www/html/config/config.phpAjoute juste avant la dernière ligne ); :
'memcache.local' => '\OC\Memcache\APCu',
'memcache.distributed' => '\OC\Memcache\Redis',
'memcache.locking' => '\OC\Memcache\Redis',
'redis' => array(
'host' => 'redis',
'port' => 6379,
'password' => 'RedisPassword789!',
),Sauvegarde (Ctrl+O, Enter, Ctrl+X) et quitte le container (exit).
# Redémarrer Nextcloud
docker restart nextcloud-app✅ Vérification : Dans Nextcloud → Paramètres → Vue d’ensemble → Tu ne dois plus voir d’alerte sur le cache.
Augmenter la limite d’upload
Par défaut, les fichiers > 2 Go ne passent pas. On va corriger ça.
# Créer un fichier de config PHP custom
nano ~/nextcloud/nextcloud/uploads.iniupload_max_filesize = 10G
post_max_size = 10G
max_execution_time = 3600
max_input_time = 3600
memory_limit = 512M# Modifier le docker-compose pour monter ce fichier
cd ~/nextcloud
nano docker-compose.ymlDans la section nextcloud → volumes, ajoute :
volumes:
- ./nextcloud:/var/www/html
- ./data:/var/www/html/data
- ./nextcloud/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini# Relancer
docker compose down
docker compose up -d🎉 Tu peux maintenant envoyer des fichiers jusqu’à 10 Go !
Sécuriser avec fail2ban (optionnel mais recommandé)
Si ton Nextcloud est accessible publiquement, protège-le contre le bruteforce.
# Installation fail2ban
sudo apt install fail2ban -y
# Créer un filtre Nextcloud
sudo nano /etc/fail2ban/filter.d/nextcloud.conf[Definition]
failregex = ^{"reqId":".*","level":2,"time":".*","remoteAddr":"<HOST>","user":".*","app":"core","method":".*","url":".*","message":"Login failed:
^{"reqId":".*","level":2,"time":".*","remoteAddr":"<HOST>","user":".*","app":"no app in context","method":".*","url":".*","message":"Login failed:
ignoreregex =# Créer la jail
sudo nano /etc/fail2ban/jail.d/nextcloud.local[nextcloud]
enabled = true
port = http,https
protocol = tcp
filter = nextcloud
maxretry = 5
bantime = 3600
findtime = 600
logpath = /home/ton-user/nextcloud/data/nextcloud.logRemplace /home/ton-user/nextcloud/data/nextcloud.log par le chemin réel.
# Redémarrer fail2ban
sudo systemctl restart fail2ban
# Vérifier le statut
sudo fail2ban-client status nextcloudSynchronisation multi-appareils
Desktop (Windows/Mac/Linux)
- Télécharge le client : https://nextcloud.com/install/#install-clients
- Lance l’installeur
- URL du serveur :
https://cloud.ton-domaine.fr - Identifiants : ton compte Nextcloud
- Choisis les dossiers à synchroniser
💡 Astuce : Ne synchronise pas TOUT au début. Commence par quelques dossiers importants.
Mobile (Android/iOS)
- Télécharge l’app officielle :
- Android : Play Store
- iOS : App Store
- Connexion : Entre ton URL et tes identifiants
- Upload auto des photos :
- Ouvre l’app → Paramètres → Auto Upload
- ✅ Activer pour les photos
- Choisis si tu veux en Wi-Fi uniquement (recommandé)
🎉 Tes photos de vacances s’uploadent automatiquement chez toi au lieu de chez Google !
Cas d’usage réels : Qui utilise Nextcloud ?
Scénario 1 : Famille (4 personnes)
Setup :
- VPS 4 Go RAM – 8€/mois
- 500 Go de stockage
- Comptes séparés pour chacun
Usages :
- Papa : Documents de travail (20 Go)
- Maman : Photos de famille (150 Go)
- Ado 1 : Cours + projets scolaires (10 Go)
- Ado 2 : Musique + vidéos persos (50 Go)
Économie :
Au lieu de 4 x Google One 200 Go = 144€/an → Nextcloud = 96€/an
💰 Gain : 48€/an + données privées
Scénario 2 : Freelance / Entrepreneur Solo
Setup :
- Homelab Raspberry Pi 5 (8 Go RAM)
- Disque SSD externe 1 To
- DynDNS (gratuit)
Usages :
- Devis, factures, contrats (chiffrés localement)
- Galerie de travaux clients
- Calendrier pro intégré
- Partage de fichiers sécurisé avec clients
Économie :
Au lieu de Dropbox Business 12€/mois = 144€/an → Nextcloud = 0€/an (déjà le Pi)
💰 Gain : 144€/an
Scénario 3 : Petite asso (15 membres)
Setup :
- VPS 8 Go RAM – 15€/mois
- 1 To de stockage
- Comptes par équipe
Usages :
- Documents partagés (statuts, procès-verbaux)
- Calendrier d’événements commun
- Galerie photos des activités
- Collaboratif avec OnlyOffice intégré
Économie :
Au lieu de Google Workspace 15 x 6€ = 1080€/an → Nextcloud = 180€/an
💰 Gain : 900€/an pour l’asso !
Backup & Restauration
Stratégie de backup recommandée
Ce qu’il faut sauvegarder :
/home/ton-user/nextcloud/data(tous tes fichiers)/home/ton-user/nextcloud/db(base de données)/home/ton-user/nextcloud/nextcloud/config(config Nextcloud)
Méthode 1 : Backup manuel
#!/bin/bash
# Script de backup Nextcloud
# À placer dans ~/backup-nextcloud.sh
BACKUP_DIR="/home/backups/nextcloud"
DATE=$(date +%Y-%m-%d_%H-%M)
# Créer dossier backup
mkdir -p $BACKUP_DIR
# Mettre Nextcloud en mode maintenance
docker exec nextcloud-app php occ maintenance:mode --on
# Backup base de données
docker exec nextcloud-db mysqldump -u nextcloud -pNextcloudPassword456! nextcloud > $BACKUP_DIR/nextcloud-db-$DATE.sql
# Backup fichiers (compression)
tar -czf $BACKUP_DIR/nextcloud-data-$DATE.tar.gz ~/nextcloud/data
tar -czf $BACKUP_DIR/nextcloud-config-$DATE.tar.gz ~/nextcloud/nextcloud/config
# Désactiver mode maintenance
docker exec nextcloud-app php occ maintenance:mode --off
# Garder seulement les 7 derniers backups
find $BACKUP_DIR -type f -mtime +7 -delete
echo "✅ Backup terminé : $DATE"# Rendre exécutable
chmod +x ~/backup-nextcloud.sh
# Tester
./backup-nextcloud.sh
# Automatiser avec cron (tous les jours à 2h du matin)
crontab -eAjoute :
0 2 * * * /home/ton-user/backup-nextcloud.sh >> /home/ton-user/backup.log 2>&1Méthode 2 : Backup vers cloud externe (paranoia niveau ++)
# Installer rclone (sync vers S3, Backblaze, etc.)
curl https://rclone.org/install.sh | sudo bash
# Configurer une destination (exemple : Backblaze B2)
rclone config
# Suis l'assistant interactif
# Modifier le script de backup pour envoyer ailleurs
rclone sync /home/backups/nextcloud remote-b2:nextcloud-backupsRestauration depuis backup
En cas de crash total :
# 1. Réinstaller Docker + Docker Compose
curl -fsSL https://get.docker.com -o get-docker.sh
sudo sh get-docker.sh
# 2. Recréer la structure
mkdir -p ~/nextcloud && cd ~/nextcloud
# 3. Copier le docker-compose.yml (tu l'as sauvegardé à part, hein ?)
# 4. Extraire les backups
tar -xzf nextcloud-data-XXXX.tar.gz -C ~/
tar -xzf nextcloud-config-XXXX.tar.gz -C ~/nextcloud/nextcloud/
# 5. Restaurer la base de données
docker compose up -d db # Lancer juste la DB d'abord
sleep 10
docker exec -i nextcloud-db mysql -u nextcloud -pNextcloudPassword456! nextcloud < nextcloud-db-XXXX.sql
# 6. Lancer Nextcloud
docker compose up -d
# 7. Réparer les permissions si nécessaire
docker exec nextcloud-app chown -R www-data:www-data /var/www/html🎉 Tu as récupéré toutes tes données !
Problèmes courants & Solutions
❌ « Trusted domain error »
Symptôme : Message d’erreur « Vous accédez au serveur depuis un domaine non approuvé ».
Cause : Nextcloud refuse les connexions depuis un domaine non configuré.
Solution :
docker exec -it nextcloud-app bash
nano /var/www/html/config/config.phpDans 'trusted_domains', ajoute ton domaine :
'trusted_domains' =>
array (
0 => 'localhost',
1 => 'ton-ip-serveur',
2 => 'cloud.ton-domaine.fr',
),❌ Nextcloud lent / Timeouts
Symptôme : L’interface rame, les uploads échouent après 30 secondes.
Causes possibles :
- Redis pas activé → Voir section « Optimisations »
- VPS sous-dimensionné (< 2 Go RAM)
- PHP mal configuré
Solution PHP :
# Éditer la config
nano ~/nextcloud/nextcloud/uploads.iniAugmente les valeurs :
max_execution_time = 7200
max_input_time = 7200
memory_limit = 1Gdocker compose restart nextcloud❌ « 502 Bad Gateway » après restart
Symptôme : Erreur 502 dans le navigateur.
Cause : Nextcloud n’a pas fini de démarrer.
Solution :
# Attends 30-60 secondes (MariaDB est lente à démarrer)
# Si ça persiste, check les logs
docker compose logs -f nextcloud
docker compose logs -f dbSouvent c’est juste que la DB n’était pas prête. Relance :
docker compose restart nextcloud❌ Espace disque plein
Symptôme : No space left on device
Solution :
# Vérifier l'espace
df -h
# Nettoyer les anciennes images Docker
docker system prune -a
# Nettoyer les versions de fichiers Nextcloud (garde 5 versions)
docker exec nextcloud-app php occ versions:cleanup
# Supprimer les fichiers en corbeille
docker exec nextcloud-app php occ trashbin:cleanup --all-users
# Dernière option : augmenter le VPS ou ajouter un volumePour aller plus loin
Si tu veux pousser ton setup plus loin, consulte ces guides complémentaires :
🔒 Sécuriser ton serveur Linux → Firewall, SSH, fail2ban, mises à jour automatiques
🐳 Docker pour débutants → Si tu veux mieux comprendre Docker et créer d’autres services
🌐 Nginx : Optimiser les headers HTTP → Pour renforcer la sécurité de ton reverse proxy
Conclusion : Reprends le contrôle de tes données
Tu viens de mettre en place ton propre cloud perso en moins d’1h. Nextcloud avec Docker, c’est :
✅ Économique (58€/an vs 120€+ pour les clouds commerciaux)
✅ Privé (tes données chez toi, pas chez Google/Microsoft)
✅ Puissant (calendrier, contacts, notes, galerie, visio…)
✅ Scalable (tu ajoutes de l’espace quand tu veux)
Prochaines étapes suggérées :
- Configurer les apps : Calendrier, Contacts, Notes, Deck (kanban)
- Installer OnlyOffice : Éditer des documents Word/Excel directement dans Nextcloud
- Activer 2FA : Paramètres → Sécurité → Authentification à deux facteurs
- Partager avec tes proches : Créer des comptes pour ta famille
- Automatiser les backups : Utilise le script fourni + cron
Et surtout, dis adieu aux 10-20€/mois de Google Drive. 🎉
💬 Questions, galères, ou réussites ? Balance tout en commentaire, je réponds à tout le monde !




Laisser un commentaire