Skip to content

semi710/ndots

Repository files navigation

banner


My NixOS + nix-darwin configuration built with flakes.
Modularized via Flake-Parts and auto-wired with nix-wire.
Fully CLI-based - accessed via SSH + Tailscale

GitHub repo size GitHub Org's stars GitHub forks GitHub last commit

Star History

Star History Chart

📚 ndots.semi.sh - Full Documentation

Architecture · Modules · Hosts · Services · Guides · Secrets · Packages · ISO


Hosts

Host Platform Arch CPU RAM Role
mach NixOS x86_64 Intel i7-10510U (4c/8t) 24 GB Personal laptop
dsd NixOS x86_64 Intel i9-12900KS (16c/24t) 64 GB Work desktop
semi NixOS x86_64 Intel i9-14900K (24c/32t) 128 GB Semi-personal
obox NixOS aarch64 Ampere Neoverse-N1 (4c/4t) 24 GB Oracle Cloud VPS
bbox NixOS aarch64 Ampere Neoverse-N1 (4c/4t) 24 GB Oracle Cloud VPS
jp-mbp Darwin aarch64 Apple M4 - MacBook Pro

Quick Start

# Install (from ISO or minimal ISO)
nix eval github:semi710/ndots#disko.partition \
  --apply 'b: builtins.fromJSON (builtins.toJSON (b { device = "/dev/nvme0n1"; ssdOptions = []; }))' \
  --impure > disko-config.nix
sudo disko --mode destroy,format,mount --yes-wipe-all-disks ./disko-config.nix
sudo nixos-install --no-root-passwd --root /mnt --flake github:semi710/ndots#<hostname>
# Remote install with nixos-anywhere and a home-path sops age key
name=<hostname>
user=<user>
ip=<ip>

tmp="$(mktemp -d)"
trap 'rm -rf "$tmp"' EXIT

keydir="$tmp/home/$user/.config/sops/age"
install -d -m 700 "$keydir"
install -m 600 "$HOME/.config/sops/age/keys.txt" "$keydir/keys.txt"

nix run github:nix-community/nixos-anywhere -- \
  --build-on remote \
  --option accept-flake-config true \
  --option download-buffer-size 536870912 \
  --extra-files "$tmp" \
  --chown "/home/$user/.config/sops/age" "$user:users" \
  --generate-hardware-config nixos-generate-config "./hosts/nixos/$name/hardware.nix" \
  --flake "path:$PWD#$name" \
  --target-host "root@$ip"
# Deploy
just deploy              # Current host
just deploy obox         # Remote host
just deploy bbox         # Remote host
just iso                 # Build installer ISO

Related

  • Utils - Utility scripts (Hyprland, Yabai, Rofi)
  • nvix - Neovim configuration
  • nix-wire - Flake auto-wiring library
  • OG Branch - Full ricing with Hyprland/Wayland

Acknowledgments

Thanks to all the amazing NixOS community members whose configurations inspired this setup: iynaix, fufexan, nobbZ, lilleaila, vimjoyer, srid