Ce projet personnel, au cœur de ma passion pour les technologies, consiste en la création et la maintenance d'un serveur "Homelab" complet, construit en reconditionnant un PC. L'objectif est d'auto-héberger une multitude de services pour un usage quotidien, en garantissant leur stabilité, leur sécurité et leur accès à distance.
La solution est basée sur le système d'exploitation TrueNAS (basé sur Linux/BSD), qui gère le stockage (NAS) et la virtualisation. L'ensemble des services est déployé à l'aide de conteneurs Docker (plus d'une dizaine actuellement), certains via l'interface Truenas ou en YAML directement pour plus de personnalisation et pouvoir intégrer plusieurs services dans un conteneur de façon isolé.
Pour gérer l'exposition des services, j'utilise Nginx Proxy Manager (NPM). Ce reverse proxy me permet de gérer des sous-domaines et d'appliquer des certificats SSL (via Let's Encrypt) pour un accès web sécurisé à certains services (serveur web, streaming vidéo, etc.).
Parmi les services critiques hébergés, on retrouve un cloud personnel (Nextcloud), un serveur multimédia (Jellyfin), un gestionnaire de photos (Immich) et un accès à distance sécurisé au réseau local via un VPN (Tailscale). Ce projet me permet de gérer une architecture virtualisée de A à Z, du déploiement à la supervision et la maintenance, des compétences directement transposables à la gestion d'une plateforme interne en entreprise.
Durant ce projet, j'ai dû me former et m'initier à la cybersécurité avec le MOOC de l'ANSSI.
J'ai également appris les bonnes pratiques liées à la cybersécurité ainsi que diverses notions comme les principaux risques de failles (DHCP Snooping, mot de passe non chiffré, Man in The Middle, etc.) et les solutions pour s'en protéger.
Ce projet avait pour objectif de répondre aux besoins d'un réseau d'entreprise fictif et d'apporter une solution technique tout en respectant les contraintes imposées.
Nous étions un groupe de deux personnes et devions présenter au client fictif un rapport technique ainsi qu'effectuer un test expérimental de la solution proposée (adressage IP, configuration des switchs Cisco, création d'un domaine AD DS et intégration des machines au domaine, serveur DHCP, serveur IIS, etc.). Enfin, sous forme d’un PowerPoint, nous devions présenter la solution retenue en expliquant nos choix.
Ce projet nous permettait de nous initier aux langages HTML5 et CSS3, nécessaires pour concevoir une page web.
À l'issue de ce projet, j'étais donc capable de créer une page web en utilisant HTML5 et CSS3, compétence que j'ai réutilisée pour un autre projet ainsi que pour mon portfolio.
Le site sur lequel vous vous trouvez actuellement est basé sur le projet rendu, que j’ai modifié pour qu’il corresponde à mon portfolio.
Ce projet avait pour but de nous mettre dans un contexte professionnel, car un professionnel en R&T doit être capable de traiter des données dans divers formats (JSON, MQTT, etc.) et d'automatiser ces traitements en utilisant des scripts sous Linux ou Windows.
Lors de ce projet, j'ai récupéré à l'aide du protocole MQTT des données de capteurs de température au format JSON pour ensuite les traiter (calcul de la moyenne, du minimum et du maximum).
Une fois ces données traitées, j'ai écrit un script Bash permettant de générer une page web à partir de ces données et de la transférer sur un hébergeur via FTP.
Une fois les scripts réalisés, j’ai automatisé leur exécution à l’aide de crontab sous Linux.
Grâce à ce projet, je maîtrise désormais l'utilisation du protocole MQTT pour récupérer des données, les filtrer, calculer des métriques et automatiser l'exécution de programmes Bash sous Linux.