Skip to content

Repository files navigation

❄️ derethil/nix-config

Design Dendritic  Build

About

My configs for NixOS, MacOS, and Home Manager dotfiles. I use flake-parts and the dendritic pattern to manage my development/gaming machine, laptop, and a self-hosted server.

Layout

  • hosts/ - per-machine entrypoints
  • modules/ - everything else, organized by topic
  • flake/ - internal flake plumbing
  • overlays/ - package overrides
  • templates/ - devenv templates (see below)

Stuff I use

  • Compositors: Niri and Paneru
  • Shell: Dank Material Shell with my own Hue manager plugin and Outlook calendar integration
  • Development: My neovim flake, Claude Code w/ MCPs, AWS and Jira CLIs, Bruno
  • Gaming: CachyOS kernel, low-latency audio, Steam, PrismLauncher, Sober, modding tools
  • Storage: BTRFS impermanence with root rollback, LUKS, encrypted secrets pulled from my private repo
  • Self-hosting: Rootless Podman containers integrated with fully declarative restic backup/restore and caddy modules, Gatus dashboard, and ntfy-backed notification system

Task Runner

Common operations are managed via just. Run just at the repo root to see all available commands, organized into subcommands. Everything from rebuilding to secret management to backup restoration to linting has a recipe.

Development Environments

I use devenv to manage my environments. Each of these templates supply project management or development tooling for a specific language. Copy one into a project with:

nix flake init -t github:derethil/nix-config#<name>

  • fullstack-node-go - tooling for golang+node projects with AWS SSO authentication
  • node - standalone Node.js tooling managed via pnpm
  • python - uv based python environment
  • rust - a hello_world Cargo project

Installation

  1. Boot: Boot the target machine using the minimal NixOS ISO and give root a password.
  2. Configure: If provisioning a new host, create in hosts/, import modules as desired, and ensure it includes a _disko.nix configuration file. _hardware.nix will be generated automatically. If using LUKS disk encryption, set the new host's LUKS encryption key with just secrets edit.
  3. Bootstrap: Run the following:
just bootstrap <hostname> <target-ip>

About

My personal Nix configurations for NixOS, MacOS, and Home Manager dotfiles. Mirrored at https://codeberg.org/derethil/nix-config

Topics

Resources

Stars

0 stars

Watchers

1 watching

Forks

Used by

Contributors

Languages