André Brandão

Homelab

Always changing Everything here is declared in one flake that keeps evolving. The current state lives on GitHub.

Overview

Proxmox datacenter view with the VMs

One Proxmox host, one NixOS virtual machine per service, and nothing configured by hand. Adding a machine is creating a folder in the flake and running Terraform, which creates the VM, installs NixOS on it and keeps it updated. Everything talks over Tailscale with proper HTTPS, and secrets live encrypted in the repo.

Storage

TrueNAS runs as a VM too, with the hard drives passed through from the host as whole disks, by id. ZFS inside TrueNAS owns the physical disks, so the pool is the same one it would be on bare metal and can move to another box with no import tricks. It is the main storage of the lab and also hosts the MinIO bucket that keeps the Terraform state.

The TrueNAS VM hardware: five disks passed through by id

TrueNAS dashboard

The machines

  • mine: Minecraft server
  • git: Forgejo with an Actions runner
  • vault: Vaultwarden and HashiCorp Vault
  • builder: remote Nix builder
  • monitoring: Prometheus and a LiteLLM gateway

Traefik dashboard: internal and external entrypoints, routers and services

The Minecraft server

Declared with nix-minecraft, so a rebuild reproduces the exact same server, mods included. Fabric 1.21.11, Lithium for performance, and BlueMap for a live 3D map of the world in the browser. Java and Bedrock players can both join.

The world in BlueMap

Always learning

The lab is where I try things out, so it never sits still. To see what is being experimented with right now, check the repository.