Skip to content

Declarative infrastructure for my hobbyist datacenter.

License

Notifications You must be signed in to change notification settings

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 filesystems.zfs

To cripple your machine by running all tests, do:

nix build --verbose '.#tests'

Inspiration

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

About

Declarative infrastructure for my hobbyist datacenter.

Topics

Resources

License

Stars

Watchers

Forks

Languages