Apache Guacamole

PHP MariaDB Linux Docker

Infrastructure personnelle d'expérimentation, d'apprentissage et de veille technologique

traefik image

Contexte

Dans le cadre de mon évolution vers les métiers de l'administration systèmes, réseaux, sécurité et DevOps, j'ai mis en place un laboratoire personnel (Homelab) auto-hébergé.
Cette infrastructure a pour objectif de me permettre d'expérimenter des technologies utilisées dans les environnements professionnels tout en construisant une plateforme capable d'héberger différents projets personnels.
Contrairement à un environnement de production, ce laboratoire est conçu pour favoriser :

  • l'apprentissage
  • les tests
  • l'expérimentation
  • l'amélioration continue
Cette documentation présente l'architecture actuelle ainsi que les différents projets qui y sont déployés.


Objectifs du laboratoire

L'objectif principal est de disposer d'un environnement permettant de travailler sur plusieurs domaines :

Administration Système

  • Linux
  • Gestion des services
  • Gestion des utilisateurs
  • Sécurisation des systèmes

Réseau

  • VPN
  • Routage
  • Reverse Proxy
  • DNS
  • Firewall

Conteneurisation

  • Docker
  • Docker Compose
  • Réseaux Docker
  • Volumes Docker
  • Vmware

DevOps

  • Déploiement de services
  • Automatisation
  • Gestion centralisée des accès
  • Gestion des certificats TLS

Cybersécurité

  • Durcissement des accès
  • Surveillance
  • Protection contre les attaques automatisées
  • Analyse des journaux

Infrastructure et Architecture actuelle

Déploiement d’un VPN WireGuard auto-hébergé

Documentation complète du déploiement d’un VPN WireGuard auto-hébergé avec Docker et reverse proxy, incluant l’architecture, les commandes utilisées, les ajustements de configuration et les corrections apportées au fil des tests.

Schéma WireGuard

Cette documentation présente l’architecture mise en place, les commandes utilisées, les difficultés rencontrées ainsi que les solutions appliquées pour obtenir un service fonctionnel.

Mis à jour le
Architecture du laboratoire Windows Server 2022

À propos du projet

Ce projet constitue un environnement d'expérimentation autour de Windows Server 2025.

Il permet d'aborder progressivement différents services utilisés dans une infrastructure d'entreprise.

Objectifs

Domaine Objectif
Identité : Active Directory, utilisateurs et groupes
PKI : Découverte et administration d'AD CS
Réseau : DNS, DHCP et services réseau

Projets liés :

Sélectionnez un des projets ci-dessus pour afficher sa documentation.
Mis à jour le
Tableau de bord GLPI

Tableau de bord GLPI après une installation réussie

Contexte du projet

Ce projet présente le déploiement conteneurisé de GLPI, une plateforme de gestion des services IT (ITSM). L’application, sa base MariaDB et les tâches planifiées sont orchestrées avec Docker Compose, en séparant les services et en assurant la persistance des données.

L’image du projet fournit GLPI, mais pas sa base de données, le service Cron réutilise cette même image. Traefik et CrowdSec peuvent être ajoutés en option selon les besoins d’exposition et de protection.

Public visé et contexte d’utilisation

GLPI peut convenir aux TPE, PME, associations et petites équipes qui souhaitent gérer leur parc, les incidents et les demandes de service. Son édition open source évite un coût de licence, mais les ressources d’hébergement dépendent notamment du nombre d’utilisateurs, des équipements et des extensions.

Le déploiement direct convient à un usage local ou sur réseau privé. Pour une exposition contrôlée, Traefik et CrowdSec sont des options : leur pertinence dépend de l’environnement et des besoins de sécurité.

Objectifs du projet

Déployer GLPI dans un conteneur personnalisé basé sur Apache et PHP.
Séparer les services et limiter leur exposition grâce aux réseaux Docker.
Assurer la persistance des données, de la configuration et des journaux.
Exécuter les tâches planifiées avec un conteneur Cron séparé
Présenter un mode d’accès direct et un mode d’intégration avec Traefik et CrowdSec.
Documenter les prérequis et le dimensionnement nécessaire selon l’usage prévu.
Publier le projet et son image sur GitHub et Docker Hub.

Architecture de déploiement

Le schéma présente deux configurations possibles : un déploiement direct de GLPI, adapté à un usage local ou sur réseau privé, et une configuration intégrant Traefik et CrowdSec, à ajouter selon les besoins d'exposition et de sécurité.

Comparatif des architectures GLPI

flowchart TB %% ========================================================= %% MODE 1 : DÉPLOIEMENT DIRECT %% ========================================================= subgraph DIRECT["Mode 1 - Déploiement direct sans reverse proxy"] USER1["Utilisateur
Navigateur"] HOST1["Hôte Docker
Port publié 8080 → 80"] subgraph PUBLIC1["Réseau app
Bridge"] GLPI1["GLPI
Apache + PHP
Port interne : 80"] end subgraph BACKEND1["Réseau backend
internal: true"] DB1["MariaDB
Port : 3306
Non exposé"] CRON1["GLPI Cron"] end VOL_GLPI1[("Volumes GLPI
/etc/glpi
/var/lib/glpi
/var/log/glpi")] VOL_DB1[("Volume MariaDB
/var/lib/mysql")] USER1 -->|"HTTP :8080"| HOST1 HOST1 --> GLPI1 GLPI1 -->|"SQL :3306"| DB1 CRON1 -->|"Tâches automatiques"| GLPI1 GLPI1 --> VOL_GLPI1 CRON1 --> VOL_GLPI1 DB1 --> VOL_DB1 end %% ========================================================= %% MODE 2 : TRAEFIK + CROWDSEC %% ========================================================= subgraph SECURE["Mode 2 - Déploiement avec Traefik + CrowdSec"] INTERNET["Internet
HTTPS"] subgraph PROXY["Réseau proxy / traefik"] TRAEFIK["Traefik
Reverse Proxy
:80 / :443"] GLPI2["GLPI
Apache + PHP
Port interne : 80"] end subgraph SECURITY["Réseau CrowdSec"] CROWDSEC["CrowdSec
Analyse des événements"] end subgraph BACKEND2["Réseau backend
internal: true"] DB2["MariaDB
Port : 3306
Non exposé"] CRON2["GLPI Cron"] end VOL_GLPI2[("Volumes GLPI
/etc/glpi
/var/lib/glpi
/var/log/glpi")] VOL_DB2[("Volume MariaDB
/var/lib/mysql")] INTERNET -->|"HTTPS :443"| TRAEFIK TRAEFIK -->|"HTTP interne :80"| GLPI2 TRAEFIK -.->|"Logs / événements"| CROWDSEC CROWDSEC -.->|"Décisions via le bouncer"| TRAEFIK GLPI2 -->|"SQL :3306"| DB2 CRON2 -->|"Tâches automatiques"| GLPI2 GLPI2 --> VOL_GLPI2 CRON2 --> VOL_GLPI2 DB2 --> VOL_DB2 end

Repository GitHub :

Docker image :

Projets liés :

Sélectionnez un des projets ci-dessus pour afficher sa documentation.