Introduction
This is the technical documentation site for my Bachelor’s thesis project at the Haute école de gestion de Genève. The project is titled:
Conception et déploiement automatisé d’un Operating System as Code à l’aide de pratiques Infrastructure as Code.
Main Objective
Section titled “Main Objective”The aim of this project is to design and automate the deployment of a personal homelab server by applying modern practices like Infrastructure as Code (IaC), GitOps, and DevSecOps. This approach ensures that infrastructure configuration is:
Principle | Description |
---|---|
Version-controlled | All changes are tracked in Git and pushed to a remote repository |
Reproducible | Systems can be rebuilt reliably from the same source |
Maintainable | Make updates and fixes easier to apply and track |
Secure | Sensitive data is encrypted and managed properly |
What You’ll Find Here
Section titled “What You’ll Find Here”This site documents the tools, processes, and architecture I use to:
- Build a NixOS-based virtual machine on Proxmox
- Configure and manage infrastructure with OpenTofu
- Secure secrets using SOPS + age
- Automate deployments with GitHub Actions
- Run useful services in Docker containers
All configuration is written as code, versioned in Git, and fully reproducible.
Services and Architecture
Section titled “Services and Architecture”The homelab environment is built on a NixOS virtual machine hosted on a Proxmox hypervisor. This VM provides a platform for deploying and managing several containerized services, including:
- Tailscale — private mesh VPN
- AdGuard Home — DNS-level ad and tracker blocking
- Homepage — service dashboard
- Traefik — reverse proxy
- Uptime Kuma — uptime monitoring
- Watchtower — automatic container updates
This documentation serves as a technical reference throughout the project and may serve other students or professionals exploring reproducible, code-driven infrastructure design.