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.

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

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.