This repository has been archived on 2024-07-08. You can view files and clone it, but cannot push or open issues or pull requests.
nix-config-tn/README.md
2024-03-15 20:11:01 +11:00

1.9 KiB

Truxnell's homelab

NixOS Leveraging nix, nix-os to apply machine and home configurations

Background

Having used a variety of infracture as code solutions - and having found them lacking in some areas, it is time to give nix a go. Frustrations with other methods tend to be bitrot and config drift - very annoying to want to do a quick disaster recovery and find your have different versions of modules/utilities, breaking changes in code you didnt catch, etc.

Getting started

To Install

# nixos-rebuild switch --flake github:truxnell/nix-config#HOST

Goals

  • Learn nix
  • Mostly reproduce features from my existing homelab
  • Replace existing ubuntu-based 'NAS'
  • Expand usage to other shell environments such as WSL, etc
  • handle secrets - decide between sweet and simple SOPS or re-use my doppler setup.

TODO

  • Github Actions update fly.io instances (Bitwarden)
  • Bring over hosts
    • DNS01 Raspi4
    • DNS02 Raspi4
    • NAS
    • Latop
    • WSL
    • JJY emulator Raspi4
  • Documentation!
  • Add license
  • Add taskfiles

Network map

TBC

Hardware

TBC

Applying configuration changes on a local machine can be done as follows:

cd ~/dotfiles
sudo nixos-rebuild switch --flake .
# This will automatically pick the configuration name based on the hostname

Applying configuration changes to a remote machine can be done as follows:

cd ~/dotfiles
nixos-rebuild switch --flake .#nameOfMachine --target-host machineToSshInto --use-remote-sudo