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”Manually setting up and maintaining infrastructure can be time-consuming, error-prone, and difficult to reproduce. 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:
| 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 documentation details the tools, processes, and architecture used to design and deploy a fully automated homelab environment. Specifically, it covers how 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
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:
- Traefik — reverse proxy
- Tailscale — private mesh VPN
- Uptime Kuma — uptime monitoring
- Speedtest Tracker — internet speed monitoring
- Dozzle — real-time log viewer
- Watchtower — automatic container updates
- Homepage — service dashboard
- Gotify — notification server
This documentation serves as a technical reference throughout the project and may serve other students or professionals exploring reproducible, code-driven infrastructure design.