Efficient NixOS Remote Deploys with Selective Closure Copying

Remote NixOS deploys get dramatically faster when the target host fetches public dependencies from its own substituters and you only push the private bits. The key is `--use-substitutes` and the trusted-user detail most guides skip.

NUR — The Distributed Package Registry Nix Deserves

NUR flips the AUR model inside out. Instead of one giant package repo, every maintainer keeps their own repository and NUR indexes the lot. That gives you composability, selective trust, and a much wider ecosystem than most Nix users realize.

Reliable Headless Raspberry Pi Provisioning on NixOS

For headless Raspberry Pi bring-up on NixOS, image-time secret injection is often more reliable than first-boot decryption on the device. Here's the provisioning flow, the brittle design we tried first, and why bootstrap state belongs under /var/lib rather than /etc.

Refactoring Dotfiles into a Dendritic Layout

A host-centric dotfiles repo is easy to start and easy to outgrow. Here's what improved when I reorganized mine into a Dendritic-style layout around reusable aspects, public vs private modules, and shared inventory — plus the tradeoffs in indirection, naming, and boilerplate.

Legacy Deployment with Nix Flake Apps and systemd User Services

One flake can handle both NixOS and plain Debian or Ubuntu deploys. Here's a practical pattern for embedding a full legacy deployment workflow into flake apps: setup, install, build, systemd user units, database dumps, REPL shells, and shell aliases.

Prometheus Ecowitt Exporter on NixOS

Getting Ecowitt weather station data into Prometheus and Grafana with a Rust exporter and a NixOS module — with forwarding to Home Assistant and other receivers.

Everything You Can Set on macOS with nix-darwin

Most people think Nix on Mac is just package installation. nix-darwin lets you declaratively own system preferences, services, keyboard remapping, Homebrew, Dock layout, and more — rebuild and your entire Mac personality is back.

nix run and nix develop — Try Anything Without Installing It

One of Nix's most underappreciated superpowers: run any package without installing it. No brew install, no apt-get, no commitment. Three tiers from one-shot commands to full dev environments — plus comma, direnv, and the workflow that inverts how you think about package management.

Syncing qBittorrent Ports with ProtonVPN NAT-PMP on NixOS

ProtonVPN assigns ports dynamically via NAT-PMP and they change without warning. A small Rust daemon keeps qBittorrent's listening port in sync, recovers from failures, and exports Prometheus metrics — all wired up as a NixOS module.

Using Private GitHub Repositories with Nix Flakes

Private repos return a 404, not a 401, and you're debugging the wrong thing. Here's how to configure Nix access-tokens, manage them with sops-nix on NixOS and macOS, create properly-scoped GitHub tokens, and handle the edge cases — remote builders, the daemon, and fresh hosts.

Monitoring PostgreSQL on NixOS with pg_exporter

Why the nixpkgs postgres_exporter might not be enough, and how to package pg_exporter from the Pigsty project as a NixOS module — with Nix-native YAML collector configuration, one-toggle Grafana dashboards, and Prometheus wiring.

Solving the NixOS SOPS Bootstrap Problem

When your NixOS host needs decrypted secrets to build its own configuration but can't decrypt them until after it's built — and how nixos-rebuild's --target-host and --build-host flags solve the chicken-and-egg problem elegantly.