|Gregory Burd 0a361f4682|
My NixOS configurations
Here's my NixOS/home-manager config files. Requires Nix flakes.
flake.nix: Entrypoint for hosts and home configurations. Also exposes a devshell for boostrapping (
lib: A few lib functions for making my flake cleaner
hosts: NixOS Configurations, accessible via
common: Shared configurations consumed by the machine-specific ones.
global: Configurations that are globally applied to all my machines.
optional: Opt-in configurations my machines can use.
floki: Lenovo ThinkPad X1 Carbon Extreme Gen 5
home: My Home-manager configuration, acessible via
- Each directory here is a "feature" each hm configuration can toggle, thus customizing my setup for each machine (be it a server, desktop, laptop, anything really).
modules: A few actual modules (with options) I haven't upstreamed yet.
overlay: Patches and version overrides for some packages. Accessible via
pkgs: My custom packages. Also accessible via
nix build. You can compose these into your own configuration by using my flake's overlay, or consume them through NUR.
templates: A couple project templates for different languages. Accessible via
About the installation
Home-manager is used in a standalone way, and because of opt-in persistence is
activated on every boot with
How to bootstrap
All you need is nix (any version). Run:
If you already have nix 2.4+, git, and have already enabled
nix-command, you can also use the non-legacy command:
nixos-rebuild --flake . To build system configurations
home-manager --flake . To build user configurations
nix build (or shell or run) To build and use packages
sops To manage secrets
For deployment secrets (such as user passwords and server service secrets), I'm
using the awesome
sops-nix. All secrets
are encrypted with my personal PGP key (stored on a YubiKey), as well as the
relevant systems's SSH host keys.
On my desktop and laptop, I use
pass for managing passwords, which are
encrypted using (you bet) my PGP key. This same key is also used for mail
signing, as well as for SSH'ing around.
Tooling and applications I use
Most relevant user apps daily drivers:
- neomutt + mbsync
- khal + khard + todoman + vdirsyncer
- gpg + pass
- bat + fd + rg
Some of the services I host:
- websites (such as https://burd.me ...)
- and NixOS and nix itself, of course :)
Let me know if you have any questions about them :)