Pourquoi héberger son cloud privé sur VPS
Stocker ses fichiers chez un fournisseur grand public, c'est accepter quotas, frais de stockage croissants et incertitude sur la résidence des données. Un cloud privé auto-hébergé vous rend propriétaire de votre Drive : synchronisation desktop et mobile, partage par lien, édition collaborative de documents et calendrier/contacts via CalDAV/CardDAV, le tout sur votre matériel. Nextcloud va au-delà du simple stockage avec un app store fourni (Talk pour la visio, Office pour l'édition, Flow pour l'automatisation). ownCloud, dans sa version historique en PHP, reste un gestionnaire de fichiers robuste et plus léger ; sa nouvelle génération Infinite Scale, écrite en Go, adopte une architecture en microservices bien plus rapide et stateless. Le choix dépend de votre besoin : suite complète ou stockage performant.
Ce qu'apporte un cloud privé auto-hébergé
- Synchronisation multi-appareils sans quota imposé, limité uniquement par le disque de votre VPS.
- Données et documents hébergés localement : maîtrise complète de la résidence et de l'accès.
- Partage par lien avec mot de passe, expiration et permissions granulaires.
- Remplacement de plusieurs services (Drive, agenda, contacts, visio) par une seule plateforme.
- Chiffrement côté serveur et au repos configurable selon vos exigences.
- Coût prévisible lié au VPS plutôt qu'au volume de données stocké.
| Critère | Nextcloud | ownCloud |
|---|---|---|
| Écosystème d'apps | App store très riche (Talk, Office, Flow…) | Plus restreint, centré sur les fichiers |
| Architecture | Monolithe PHP | PHP (historique) ou Infinite Scale en Go (microservices) |
| Performance sur gros volumes | Bonne, peut alourdir avec beaucoup d'apps | Excellente avec Infinite Scale (stateless) |
| Édition collaborative | Nextcloud Office / OnlyOffice intégrés | Via intégration OnlyOffice/Collabora |
| Visioconférence | Nextcloud Talk natif | Non native |
| Base de données | MariaDB/PostgreSQL recommandés | MariaDB/PostgreSQL recommandés |
| RAM conseillée | 2 à 4 Go | 2 Go (PHP), variable pour Infinite Scale |
| Profil cible | Suite collaborative complète | Stockage performant et épuré |
Prérequis matériels et logiciels
Un cloud privé est lourd en I/O disque, c'est le facteur déterminant. Pour Nextcloud comme pour ownCloud (PHP), prévoyez un VPS de 2 vCPU et 4 Go de RAM, avec un disque NVMe et au moins 40 Go d'espace (à dimensionner selon vos fichiers). N'utilisez jamais SQLite en production : MariaDB ou PostgreSQL sont obligatoires, et Redis est fortement recommandé pour le verrouillage de fichiers et le cache. ownCloud Infinite Scale, étant stateless et en Go, tolère mieux les petites configurations CPU. Il vous faut Docker Compose v2, un domaine dédié (cloud.mondomaine.ma), un reverse proxy HTTPS, et une attention particulière à la limite d'upload (client_max_body_size, php_upload_max_filesize) pour les gros fichiers.
Déployer votre cloud privé sur VPS
Préparer la base de données et Redis
Dans le docker-compose, déclarez mariadb:11 (ou postgres:16) avec un volume persistant et des identifiants dédiés, plus un service redis:alpine. Ces conteneurs supportent la charge réelle ; SQLite vous bloquera dès quelques utilisateurs.
Configurer le conteneur applicatif
Utilisez l'image nextcloud:apache (ou owncloud/server) en pointant MYSQL_HOST, REDIS_HOST et les identifiants. Définissez NEXTCLOUD_TRUSTED_DOMAINS=cloud.mondomaine.ma, sans quoi l'instance refusera les connexions externes.
Monter le volume de données
Montez un volume dédié sur /var/www/html/data (Nextcloud) pour isoler les fichiers utilisateurs du reste du conteneur et faciliter les sauvegardes et la croissance du stockage.
Lancer et finaliser l'installation
Exécutez docker compose up -d, attendez l'initialisation, puis terminez la configuration via l'interface web ou en CLI avec occ maintenance:install. Créez le compte administrateur.
Reverse proxy, HTTPS et gros fichiers
Routez cloud.mondomaine.ma via Caddy/Traefik avec Let's Encrypt. Augmentez client_max_body_size à au moins 10G côté proxy et alignez php_upload_max_filesize pour permettre l'upload de gros fichiers sans erreur 413.
Activer le cron et les sauvegardes
Passez les tâches de fond en mode cron (et non AJAX) pour la fiabilité, via un conteneur cron dédié. Planifiez ensuite un dump base + snapshot du volume data vers un stockage externe.
Sur Nextcloud, la majorité des avertissements de l'écran d'administration viennent de réglages reverse proxy oubliés : pensez à définir overwriteprotocol => https, overwrite.cli.url et la liste trusted_proxies dans config.php, sinon les liens de partage génèrent des URLs en http cassées. Activez aussi le cache APCu en plus de Redis pour soulager la base à chaque chargement de page. Pour ownCloud, si la performance plafonne sur de gros volumes, évaluez la migration vers Infinite Scale qui élimine le goulot d'étranglement PHP.