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 permettra de découvrir GLPI, une plateforme de gestion des services IT (ITSM), au travers d’un déploiement conteneurisé avec Docker. Il présentera une architecture reproductible, utilisable en accès direct sans reverse proxy, puis derrière un reverse proxy pour une exposition contrôlée. Le projet abordera également l’isolation réseau, la persistance des données et l’exécution des tâches planifiées.

Objectifs du projet

Objectifs
comprendre le fonctionnement de GLPI et de ses principaux composants
concevoir une image Docker personnalisée basée sur Apache et PHP
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é
déployer l’application derrière Traefik et sécuriser son exposition
publier et documenter le projet sur GitHub et Docker Hub
documenter l’ensemble du processus

Architecture de déploiement

Deux modes de déploiement sont présentés : un accès direct sans reverse proxy, adapté aux tests, et une exposition via Traefik avec CrowdSec, adaptée à une utilisation intégrée dans une infrastructure réseau existante.

Comparatif des architectures GLPI

Accès direct pour les tests, puis intégration dans une architecture Traefik + CrowdSec avec séparation des réseaux Docker.

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 public_test
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.