AveryanAlex/dotfiles

AveryanAlex's NixOS configuration

โ˜… 7Forks 1NixGitHub โ†—Compare
dotfilesnixos

README

AveryanAlex's NixOS Configuration

NixOS nixfmt License

Declarative, reproducible NixOS infrastructure managed as a single flake. Machines auto-discovered from machines/, secrets encrypted with ragenix, deployed with Colmena.

๐Ÿ–ฅ Machines

Host Purpose Arch Hardware
alligator Main desktop x86_64 AMD Ryzen 7 5800X, RX 6800 XT, 32 GB
hamster Laptop x86_64 ThinkBook 14
whale Home server x86_64 Xeon E5-2696v3, 64 GB, 25 TB+ storage
lizard Dacha server aarch64 Raspberry Pi 4B, 8 GB

๐Ÿ–ฑ Desktop

๐Ÿ‹ Server (whale)

Whale runs a mix of native NixOS services and Podman containers via Quadlet.

๐Ÿ— Infrastructure

๐Ÿ’ฌ Communication

โ˜๏ธ Apps

๐ŸŽต Media

๐Ÿค– AI / Dev

๐Ÿ“Š Analytics

  • Matomo โ€” web analytics
  • Wakapi โ€” coding time tracking

๐Ÿ”ง Other

  • BorgBackup โ€” deduplicating backups
  • Syncthing โ€” file synchronization
  • I2P โ€” anonymous network
  • WebTLO โ€” torrent tracker management
  • Remote Nix builder

๐ŸฆŽ Server (lizard)

Home automation at the dacha.

๐ŸŒ Networking

  • Yggdrasil mesh overlay between all machines
  • Nebula VPN (whale is lighthouse)
  • WireGuard tunnel on whale
  • systemd-networkd everywhere, NetworkManager on laptops

๐Ÿ“ Repo structure

machines/        Per-host configs (auto-discovered by the flake)
roles/
  core/          Base system, networking, Podman, shell, Home Manager
  desktop/       Desktop stack (imports core + dev)
  dev/           Editors, AI tools, languages, LSPs
  family.nix     Family desktop role (user olga, Russian locale)
  server.nix     Server hardening (watchdog, sysctl, BBR)
profiles/        Reusable opt-in modules (bluetooth, libvirt, printing, ...)
  server/        Native NixOS services for whale
apps/            Quadlet/Podman containers for whale
modules/         Custom NixOS modules (auto-exported)
hardware/        Hardware modules (auto-exported)
secrets/         Encrypted .age files (git submodule)
secrets.nix      Public-key ACL for agenix

๐Ÿš€ Usage

nh os switch              # rebuild current machine
nh os build               # build without switching
./deploy.sh <host> switch # deploy to a remote host
nix flake check           # lint
treefmt                   # format

๐Ÿ“ License

MIT

Contributors

AveryanAlexgithub-actions[bot]dependabot[bot]ArTiK13

Issues