Projet-SoluCloud

1. Contexte et Objectifs

Déploiement du service SoluCloud (Nextcloud) pour l'entreprise Solutech-Horizon dans le cadre d'un projet d'équipe géré en méthode Agile. L'objectif était de livrer une infrastructure cloud fonctionnelle, sécurisée et documentée, en travaillant à trois via GitLab avec un Board Kanban, des scripts automatisés et une recette de validation finale.

2. Besoins identifiés

Mise en place d'un outil de stockage cloud interne (Nextcloud) accessible et sécurisé, industrialisation des déploiements via des scripts Bash, sécurisation des secrets et des flux de données (HTTPS, .gitignore, .creds), résilience des sauvegardes selon la règle du 3-2-1 (transfert vers le cloud via WebDAV), et validation de la conformité par un audit technique (recette).

3. Solution technique

Utilisation de Nextcloud comme service cloud auto-hébergé sur une stack LAMP, gestion de projet via GitLab et Board Kanban, automatisation par scripts Bash (install_plugins.sh, glpi_to_cloud.sh), sécurisation des accès par HTTPS (Apache SSL + redirection port 80 → 443), séparation des secrets via .gitignore et fichier .creds, et vérification d'intégrité des sauvegardes par empreintes MD5.

4. Réalisation

  • Pilotage Agile : création et suivi d'un Board Kanban GitLab avec 11 tickets labellisés et assignés aux membres de la Squad (A, B et C), déplacés de Backlog à Closed au fil du sprint.

  • Déploiement de l'infrastructure : installation et configuration de Nextcloud sur stack LAMP, avec mise en place des comptes utilisateurs et du répertoire backups_glpi.

  • Automatisation Résilience (Étudiant C) : script glpi_to_cloud.sh chargeant les credentials depuis ~/.nextcloud.creds, transférant les archives SQL et tar.gz vers Nextcloud via curl (WebDAV), journalisant les résultats et générant des empreintes MD5 pour chaque fichier.

  • Industrialisation Services (Étudiant B) : script install_plugins.sh installant les plugins Passwords et Draw.io via occ, activant le module SSL Apache, et forçant la redirection permanente HTTP vers HTTPS via sed.

  • Durcissement Admin (Étudiant A) : application d'un quota de 1 Go sur le compte prenom_srv_backup et personnalisation de la page de connexion avec le logo et le slogan Solutech.

  • Validation et Clôture : rédaction d'un README.md unifié, cartographie réseau réalisée sur Draw.io (topologie en étoile), et validation par un Procès-Verbal de Recette signé avec verdict GO.

5. Preuves de réalisation

Board Kanban initial

Board Kanban

Tableau GitLab montrant les 11 tickets créés, labellisés et correctement assignés aux membres de la Squad (A, B et C).


Dashboard Nextcloud

Dashboard Nextcloud

Interface d'accueil Nextcloud après installation de la stack LAMP et configuration initiale.


Automatisation Résilience — script glpi_to_cloud.sh

Script glpi_to_cloud

Code du script glpi_to_cloud.sh montrant la gestion des logs, le transfert WebDAV et la génération des empreintes MD5.


Industrialisation Services — script install_plugins.sh

Script install_plugins

Code du script install_plugins.sh montrant l'injection des apps Passwords et Draw.io ainsi que la configuration HTTPS avec redirection sed.


Durcissement Admin — Quota utilisateur

Quota utilisateur

Interface d'administration Nextcloud montrant le quota de 1 Go appliqué au compte prenom_srv_backup.


Identité Visuelle — Page de connexion

Page de connexion

Page de connexion Nextcloud personnalisée avec le logo Solutech et le slogan de l'entreprise.


Documentation Unifiée — README.md

README

README

Capture du fichier README.md final sur GitLab, fusionnant les procédures d'installation et de sauvegarde.


Cartographie Industrielle — Schéma réseau Draw.io

Schéma réseau

Schéma réseau réalisé sur Draw.io représentant la topologie en étoile avec Switch, Routeur, GLPI, SoluCloud et leurs adresses IP.


Procès-Verbal de Recette

Recette

Figure 9 : Fichier RECETTE.md complété et signé avec le verdict GO, validant la conformité de l'infrastructure livrée.


Clôture de Sprint — Board Kanban final

Kanban final

Figure 10 : Board Kanban final montrant tous les tickets dans la colonne Closed, attestant de la clôture complète du sprint.