Azure NXT Maxscale est une solution conçue pour déployer une infrastructure Nextcloud hautement disponible, adaptée aux grandes structures et aux environnements critiques. Elle regroupe l’ensemble des services nécessaires à un déploiement complet : base de données, stockage, application, édition collaborative, cache, équilibrage de charge et certificats SSL.
L’architecture repose sur un proxy central HAProxy qui achemine le trafic vers différents services en fonction du sous-domaine demandé :
nextcloud.domaine.tld
→ Frontend Nextcloudcollabora.domaine.tld
→ Éditeur Collabora Onlinewhiteboard.domaine.tld
→ Tableau blanc collaboratif
Chaque service est déployé en mode cluster pour assurer la haute disponibilité et la montée en charge. Chaque cluster dispose de son propre réseau Docker, à l’exception de Redis qui doit impérativement être relié au réseau du cluster Nextcloud afin de permettre une communication directe entre les deux.
Les composants principaux sont :
- HAProxy : Routage des flux, gestion des certificats SSL, intégration avec Let's Encrypt
- Nextcloud (app) : Application principale
- MariaDB Galera : Base de données répliquée
- Redis : Cache distribué
- MinIO ou RustFS : Stockage d’objets distribué, répliqué localement et/ou sur site distant
- Collabora Online : Édition collaborative de documents
- Whiteboard : Tableau blanc partagé
✅ Alternative à MinIO :
Il est possible de se passer totalement de MinIO en migrant vers RustFS, une solution moderne, compatible S3 et orientée haute disponibilité. Les fichiers de configuration RustFS sont disponibles dans le dépôt et peuvent remplacer ceux de MinIO sans perte de compatibilité avec Nextcloud.
⚠️ Note importante concernant MinIOPour conserver toutes les fonctionnalités de la console Web de MinIO, utilisez impérativement l’image suivante :
bitnami/minio:2025.4.22
Les versions ultérieures peuvent désactiver ou modifier l'accès à la console.
Tous les fichiers .yml
et .sh
fournis sont conçus pour être modulables. Le nombre de nœuds dans les fichiers est donné à titre d’exemple uniquement.
L’utilisateur est libre d’ajuster ce nombre en fonction de ses besoins et des recommandations de chaque composant.
- MariaDB Galera : il est recommandé d’utiliser un nombre impair de nœuds pour assurer le quorum (ex : 3 ou 5)
- MinIO / RustFS : nécessite un nombre pair de disques/nœuds pour la parité
- Redis et Nextcloud : scalables horizontalement
Fichier / Script | Description |
---|---|
minio-cluster.yml |
Déploiement du cluster principal MinIO |
minio-replica.yml |
Déploiement du cluster MinIO de réplication vers un site distant |
minio_heal.sh |
Réparation automatique du cluster MinIO |
rustfs-cluster.yml |
Alternative à MinIO : déploiement du cluster RustFS |
nextcloud-cluster.yml |
Déploiement de Nextcloud en haute disponibilité |
mariadb-galera-cluster.yml |
Déploiement du cluster MariaDB Galera |
redis-cluster.yml |
Déploiement du cluster Redis |
collabora-cluster.yml |
Déploiement du cluster Collabora Online |
whiteboard-cluster.yml |
Déploiement du tableau blanc collaboratif |
haproxy.cfg |
Configuration de HAProxy pour routage multi-services |
backup_database.sh |
Sauvegarde de la base de données |
restore_database.sh |
Restauration de la base de données |
config.php |
Configuration Nextcloud type |
- Système Linux (Debian/Ubuntu)
- Docker et Docker Compose
- Certbot (pour SSL)
- DNS configuré pour les sous-domaines
- Accès root ou sudo
Pour toute demande de déploiement, assistance ou personnalisation :
Azure Informatique
📧 [email protected]