Skip to content

xhos/nix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

765 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

❄️ nix

this repo contains... a lot. desktop configs, a homelab running a fully declarative *arr stack + jellyfin + home assistant + a dozen other things, three OCI cloud instances with the whole infrastructure managed via OpenTofu, custom NixOS qcow2 images built from the flake, and a bunch of custom modules. secrets via sops-nix, automatic per-host module loading via import-tree, impermanence on most machines, and stylix theming that covers pretty much everything.

old screenshots

old setup using aard

all wallpapers can can be found here

homelab

enrai is my headless optiplex 5050 running a bunch of cool things, ~99% declarative. zsh, impermanence, secrets, all that good stuff:

  • fully declarative *arr stack thanks to upidapi's declarr. (tho i use my own fork of it for some extra features)
  • networking: caddy reverse proxy with cloudflare acme + nat port forwarding over wirguard to the vps running my nix-wg-proxy
  • home assistant: yandex station max controlling wled and wled-album-sync
  • proxmox-nix running 2 vms, one for game servers, other for amnezia vpn (the only not fully declarative part)
  • zipline, wakapi, synthing, glance and more

cloud (OCI free tier)

three instances, all running NixOS via custom-built qcow2 images:

host shape specs role
arashi A1.Flex 4 core ARM, 24GB general purpose
mizore E2.1.Micro 1 core x86, 1GB hosts null
proxy-1 E2.1.Micro 1 core x86, 1GB forwards traffic to enrai via nix-wg-proxy

infrastructure is fully declarative via OpenTofu.

images are built with nix build from the flake and uploaded to OCI object storage:

# ARM (arashi)
nix build .#packages.aarch64-linux.a1-flex-image

# x86 (mizore, proxy-1)
nix build .#packages.x86_64-linux.e2-micro-image

applying configs to running instances:

nixos-rebuild switch --flake .#mizore --target-host root@mizore
nixos-rebuild switch --flake .#arashi --target-host root@arashi

repo structure

  • flake.nix: main entrypoint, defines system and home configurations
  • lib/: custom Nix library functions and builders (e.g., import-tree)
  • modules/:
    • home/: home-manager modules
      • core/: essential user configurations
      • opt/: optional and toggleable modules (apps, cli tools, bar, wms, etc)
    • nixos/: system-level modules
      • core/: base system configs
      • opt/: optional and toggleable modules (impermanence, nvidia config, etc)
  • pkgs/: custom packages and derivations
  • systems/: per-host NixOS configurations and keys
  • terraform/: OpenTofu infrastructure definitions for OCI free tier

info

component details
de/wm hyprland
greeter yawn (i made this!)
terminal foot
shell zsh
bar waybar
browser zen
runner rofi
prompt starship
file manager nautilus
notification mako
clipboard manager clipse
fetch fastfetch

hyprlock

name preview sources
Main (Animated) main Hyprlock Style config
assets
scripts
fonts
Alternative (Static) alternative Hyprlock Style config
assets
scripts
fonts

fonts used are:

  • Maratype (credit to @notevencontestplayer on discord)
  • KH Interference
  • Synchro
  • Nimbus Sans L Thin
  • Nimbus Sans Black

themed apps

Note

most of these automatically follow the stylix color scheme

acknowledgments

About

nixos configs for ~5 hosts + homelab

Topics

Resources

Stars

Watchers

Forks

Contributors