Skip to content

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.

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:

PrincipleDescription
Version-controlledAll changes are tracked in Git and pushed to a remote repository
ReproducibleSystems can be rebuilt reliably from the same source
MaintainableMake updates and fixes easier to apply and track
SecureSensitive data is encrypted and managed properly

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.

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:


This documentation serves as a technical reference throughout the project and may serve other students or professionals exploring reproducible, code-driven infrastructure design.