All my nix stuff, in a single flake
  • Nix 90.9%
  • Shell 9.1%
Find a file
William b4f11c72fb drop noctalia gtk theme aspect
The theme sync hook lives with the rest of the noctalia config in
~/.config/noctalia now, so it no longer needs a home-manager module.
2026-11-09 12:40:09 -03:00
aspects drop noctalia gtk theme aspect 2026-11-09 12:40:09 -03:00
data make nextcloud public again 2026-10-22 14:01:30 -03:00
packages drop amnesiac-brave package 2026-11-09 12:39:24 -03:00
secrets remove forgejo actions runner 2026-10-07 09:53:18 -03:00
shells 'system' has been renamed to/replaced by 'stdenv.hostPlatform.system' 2026-02-18 16:08:53 -03:00
terranix nixfmt 2026-02-12 18:50:38 -03:00
.envrc simplify .envrc 2024-09-25 08:43:28 -03:00
.gitignore add .worktrees to gitignore 2026-04-16 16:08:11 -03:00
AGENTS.md rotterdam: switch to mango with dank-material-shell 2026-10-22 11:46:46 -03:00
flake.lock flake: drop unused zen-browser input 2026-11-09 12:39:24 -03:00
flake.nix flake: drop unused zen-browser input 2026-11-09 12:39:24 -03:00
readme.md update readme 2026-11-08 14:53:54 -03:00

NixOS Flake Configuration

Modular NixOS configuration using flake-parts with the dendritic pattern.

Structure

.
├── aspects/           # Reusable NixOS/home-manager modules (dendritic)
│   ├── base/          # Base system configuration
│   ├── hosts/         # Host-specific configurations
│   │   ├── _alexandria/
│   │   ├── _io/
│   │   ├── _rotterdam/
│   │   └── _trantor/
│   ├── systems/       # System type modules (base, desktop, server, cli, gaming)
│   └── users/         # User account configurations
├── data/              # Shared host/service definitions
├── packages/          # Custom packages and overlays
├── secrets/           # agenix-encrypted secrets
├── shells/            # Dev shells
└── terranix/          # Terraform configurations for cloud resources

Hosts

Host Architecture Type Description
trantor aarch64-linux server ARM server running Forgejo, Vaultwarden, Fusion and Pocket-ID; reverse proxy for Nextcloud
alexandria x86_64-linux server x86 server (Nextcloud, Jellyfin, Unbound)
rotterdam x86_64-linux desktop Main workstation for gaming (also runs AI, dev and VM aspects)
io x86_64-linux desktop Workstation (dev, VMs, AI)

Services

Public services are exposed through trantor's nginx (DNS is pointed at trantor); Nextcloud runs in a container on alexandria and is proxied via trantor.

Service Domain Host Access
Forgejo git.baduhai.dev trantor Public
Vaultwarden pass.baduhai.dev trantor Public
Pocket-ID (SSO) auth.baduhai.dev trantor Public
Nextcloud cloud.baduhai.dev alexandria Public
Jellyfin jellyfin.baduhai.dev alexandria LAN/Tailscale
Fusion (RSS) rss.baduhai.dev trantor LAN/Tailscale

Features

  • Ephemeral root: Automatic btrfs subvolume rollover with impermanence
  • Secrets: Managed via agenix with age encryption
  • Disk management: disko for declarative disk partitioning
  • Modular architecture: Each aspect is a separate module imported via import-tree
  • Dendritic pattern: Aspects are imported as a unified flake module
  • Theming: Stylix for consistent colorschemes across hosts

Building

# Build specific host
nix build .#nixosConfigurations.trantor.config.system.build.toplevel

# Apply config on the host
nixos apply

# Apply home-manager on desktop hosts
hm apply

Terranix

Terraform configurations for cloud infrastructure managed via terranix:

  • baduhai.dev and kernelpanic.space DNS on Cloudflare
  • VPS provisioning on OCI
  • Tailscale tailnet configuration

Key Dependencies

  • nixpkgs (nixos-unstable default; nixos-26.05 for servers, nixos-26.05-small for the Nextcloud container)
  • home-manager
  • agenix
  • disko
  • impermanence
  • nixos-cli
  • nix-flatpak
  • stylix
  • terranix