Skip to content

PsychoLlama/home-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Home Lab

A set of NixOS modules for building your own on-premise cloud (according to a hobbyist).

Project Status

🚧 Under Construction 🚧

This is undergoing a rewrite to incorporate learnings from a few years of working with NixOS. See ye-olden-days for a more elaborate, albiet messy example.

Components

Router

The router module configures a router (nat, dhcp, dns, ...) and manages the network for everything else in the lab.

File Server

The file storage module manages ZFS pools and datasets. A host profile attaches Syncthing and adds snapshotting.

Project Structure

  • nixos/modules/lab: Unopinionated "library" modules for building a home lab.
  • nixos/tests: Virtual machine tests for services in modules/lab.
  • nixos/modules/lab/profiles: Opinionated configurations.
  • hosts: Per-host configurations. They are thin wrappers around profiles.

Tests can be executed by entering a dev shell and running project test <drv_path>:

# Example:
project test dhcp.assignment

Inspiration

The Nix Tradition is reading source code until you figure it out. Here are resources that helped me.