Multi-host NixOS, Darwin, and home-manager deployments with Nix.
Find a file
github-actions[bot] 8c3c9dca49 flake.lock: Update
Flake lock file updates:

• Updated input 'catppuccin':
    'github:catppuccin/nix/7b42c91911c143ae3ea32a79cc8582b5920f24e3?narHash=sha256-3UOEQPBlZo9OixT9L1zoD67QheopTG8/EfRPGKyP9bg%3D' (2025-10-27)
  → 'github:catppuccin/nix/fd1bc7b1af0a576edb13c166c4b1f7b5c7555a73?narHash=sha256-uq0X0KRzZkKGlkU1ARM%2BLWCAVvSYJZtTMpuzMO6LXRs%3D' (2025-10-31)
• Updated input 'catppuccin/nixpkgs':
    'github:NixOS/nixpkgs/544961dfcce86422ba200ed9a0b00dd4b1486ec5?narHash=sha256-EVAqOteLBFmd7pKkb0%2BFIUyzTF61VKi7YmvP1tw4nEw%3D' (2025-10-15)
  → 'github:NixOS/nixpkgs/08dacfca559e1d7da38f3cf05f1f45ee9bfd213c?narHash=sha256-o9KF3DJL7g7iYMZq9SWgfS1BFlNbsm6xplRjVlOCkXI%3D' (2025-10-28)
• Updated input 'disko':
    'github:nix-community/disko/3a9450b26e69dcb6f8de6e2b07b3fc1c288d85f5?narHash=sha256-y7UhnWlER8r776JsySqsbTUh2Txf7K30smfHlqdaIQw%3D' (2025-10-17)
  → 'github:nix-community/disko/6f4cf5abbe318e4cd1e879506f6eeafd83f7b998?narHash=sha256-XOpKBp6HLzzMCbzW50TEuXN35zN5WGQREC7n34DcNMM%3D' (2025-10-31)
• Updated input 'homebrew-cask':
    'github:homebrew/homebrew-cask/20f43420ed996e8dcdd48cea0f2f837628a35f0d?narHash=sha256-d7T1784UWR9SkvnKxzS109k5yBB3SO25ct8jOmt3UXY%3D' (2025-10-31)
  → 'github:homebrew/homebrew-cask/dfd185ae6a27cf47ceb4ce26270923506a65a6e6?narHash=sha256-nHtOqTpZJ2NPMTy3/TOFHfbLAc6Q83BmOUYKfCTpmRc%3D' (2025-10-31)
• Updated input 'homebrew-core':
    'github:homebrew/homebrew-core/d868f52be59fa40b4bc1cc4f8d5ef87a12a732d6?narHash=sha256-yL5gLA3fDgV4sdXWhhrzwGf8vDMJcS27FHHQC2AS7VE%3D' (2025-10-31)
  → 'github:homebrew/homebrew-core/f749ad9672f2b6e986fc7baf7a919062f1a317b2?narHash=sha256-fqfKXT5gAAaHJh%2BSDeOB3nsNMpZLkIzDUvHSp2CWQbs%3D' (2025-10-31)
• Updated input 'nixpkgs-unstable-small':
    'github:NixOS/nixpkgs/262333bca9b49964f8e3cad3af655466597c01d4?narHash=sha256-1tBdsBzYJOzVzNOmCFzFMWHw7UUbhkhiYCFGr%2BOjPTs%3D' (2025-10-30)
  → 'github:NixOS/nixpkgs/2fb006b87f04c4d3bdf08cfdbc7fab9c13d94a15?narHash=sha256-kJ8lIZsiPOmbkJypG%2BB5sReDXSD1KGu2VEPNqhRa/ew%3D' (2025-10-31)
• Updated input 'nur':
    'github:nix-community/NUR/b76d44e0932aeafcea3484d7db1162d3c2ed2495?narHash=sha256-dbngfygtvWcVOPUJPl7XqP%2BMQHIySxQhnOkzikcn/k4%3D' (2025-10-31)
  → 'github:nix-community/NUR/6b701a8ec78ab2074d630c8481f4661fb2c35af8?narHash=sha256-%2BHV35pd9VmimgcJ7p%2BWLwsIM1wY3QD4/RFUCS2kxntU%3D' (2025-10-31)
2025-10-31 12:36:40 -04:00
.github/workflows littleroot,oldale: merge oldale into littleroot with boot time options 2025-10-06 22:08:37 -04:00
_img _img: add cosmic sc 2025-10-30 11:46:45 -04:00
homes homes/aly: add aws-cvpn client 2025-10-30 13:49:53 -04:00
hosts disko/luks-btrfs-subvolumes: add crypted settings for fido2 unlock, discards, 2025-10-31 08:41:01 -04:00
modules nixos/programs/njust: fixup tpm2 confirmation 2025-10-31 09:21:36 -04:00
.envrc envrc: set DIRENV_WARN_TIMEOUT=0 2025-07-24 22:31:17 -04:00
.gitignore Revert "gitignore: remove editor cfgs" 2025-07-24 23:52:27 -04:00
.justfile justfile: hide, fixup recipe names 2025-10-29 20:13:01 -04:00
.prettierignore flake/actions: init auto-generation of github workflows 2025-07-25 18:57:29 -04:00
flake.lock flake.lock: Update 2025-10-31 12:36:40 -04:00
flake.nix homes/aly: add aws-cvpn client 2025-10-30 13:49:53 -04:00
LICENSE.md hosts: add READMEs (#50) 2024-07-20 19:41:51 -04:00
README.md README.md: fix code alignment 2025-08-13 08:31:34 -04:00

❄️ nixcfg

Welcome to my nixcfg!

This repository contains my Darwin, NixOS and home-manager configurations, along with whatever custom modules and packages they require. It is modular, declarative, and tailored for multi-device setups. Hopefully, it's as useful to you as it is to me!



Features

  • Declarative System & Dotfiles: Fully declarative management of my macOS (Darwin) + Linux installations and user environments (dotfiles, packages) using Flakes, NixOS, nix-darwin, and home-manager.
  • Multi-Host Configs: Seamlessly configures my diverse hosts including bare-metal PCs, laptops (Framework, ThinkPad), mini-servers (Beelink), and virtual private servers (Hetzner, Netcup, AWS).
  • Secure Boot & Encryption: Encrypted boot drives with Secure Boot via lanzaboote and automatic LUKS decryption using TPM.
  • Comprehensive Hardware Support: Meticulously crafted configurations for my (sometimes unique) devices, including custom audio enhancements (Pipewire filter chains) and device-specific power optimizations.
  • Hybrid Cloud Services: Declarative setup for all the hosts and services that make up my overly complicated homelab, including the *arr stack, Audiobookshelf, Caddy, Forgejo (my Git forge), Grafana + Loki + Prometheus, Immich, Karakeep, self-hosted AI inference with Ollama, Plex, qBittorrent, Vaultwarden, and more.
  • Automatic Monitoring & Backups: Easy Prometheus + Loki and Uptime-Kuma setups for system and service monitoring, plus automated Restic backups to Backblaze B2.
  • Robust Networking: Secure and flexible networking with Tailscale (it's WireGuard), declarative WiFi profiles, and NFS/Samba sharing.
  • Productivity & Development: Pre-configured tools for development (Git, Helix, VS Code, Zed), shell enhancements (fastfetch, oh-my-posh, zsh), etc.

📂 Repository Structure

.
├── flake.nix                # Main entry point
├── homes/                   # home-manager configurations
├── hosts/                   # NixOS and Darwin host configurations
├── modules/                 # Modular configurations
│   ├── darwin/              # macOS-specific modules
│   ├── home/                # home-manager modules
│   ├── flake/               # Organized flake components
│   │   ├── darwin.nix       # macOS-specific configurations
│   │   ├── home-manager.nix # Home-manager configurations
│   │   ├── nixos.nix        # NixOS-specific configurations
│   │   └── ...              # Other flake components
│   ├── nixos/               # NixOS-specific modules
│   └── snippets/            # Reusable configuration snippets
└── overlays/                # Custom Nixpkgs overlays

🤝 Contributing

While this is a personal project, Im open to feedback or suggestions.
Feel free to open an issue or share ideas that could improve this setup!


📜 License

This repository is licensed under the GNU General Public License.


🙌 Acknowledgments

  • nixpkgs: 'nough said.
  • agenix: secrets storage and orchestration.
  • disko: declarative partitions and disk configuration.
  • home-manager: declarative dotfile and user package management.
  • hyprland: great dynamic tiling wayland compositor.
  • lanzaboote: secure boot for NixOS.
  • nur: extra packages from the nix user repository.

Stargazers Over Time

Stargazers over time