Skip to content

telometto/nix-config

Repository files navigation

NixOS Configuration

Modular NixOS flake with automatic module loading for multiple hosts.

Quick Start

git clone --depth=1 https://github.com/telometto/nix-config.git
cd nix-config
sudo nixos-rebuild switch --flake .#<hostname>

Features

  • Auto-loaded modules — Drop files in modules/ or home/ and they're automatically imported
  • Role-based defaults — Enable sys.role.desktop or sys.role.server for sensible defaults
  • Per-host toggles — Enable users and services per machine with sys.* options

Repository Structure

Directory Purpose
modules/ System modules (sys.* options)
home/ Home Manager modules (hm.* options)
hosts/ Host configurations
vms/ MicroVM definitions
docs/ Documentation

Host Configuration

# hosts/<hostname>/<hostname>.nix
{
  sys.role.desktop.enable = true;      # or sys.role.server.enable
  sys.desktop.flavor = "kde";          # gnome, kde, hyprland
  sys.users.zeno.enable = true;        # enable users per host
  sys.services.tailscale.enable = true;
}

Common Commands

Command Description
sudo nixos-rebuild switch --flake .#<host> Apply configuration
nix build .#nixosConfigurations.<host>.config.system.build.toplevel Build only
nix fmt Format repository
nix flake check Run checks

Hosts

Host Role Desktop
snowfall Desktop KDE
blizzard Server None
avalanche Desktop GNOME
kaizer Desktop KDE

Documentation

Document Description
Tutorial: Provision Host Set up a new machine
How-To: Add Hosts and Users Add new hosts/users
Reference: Architecture Options quick reference
Explanation: Design Design decisions
Architecture Blueprint Full system design

See docs/README.md for the complete documentation index.


This documentation was generated with the assistance of LLMs and may require verification against current implementation.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors 4

  •  
  •  
  •  
  •