This repository contains the whole configuration for my NixOS devices. My
/home
dotfiles are also described in this repository and are handled by
home-manager.
This configuration is heavily based on delroth's one and makes the same tradeoffs:
- machines are meant to be single-user (only one real user other than root)
- secrets end up in the store (which means they're readable by any user)
This repository is a flake which outputs are the nixos configuration of my
machines. The entry point is the flake.nix
file, and building/deployment
is done via commands like:
$ nix flake update
$ nixos-rebuild --flake ".#rivamar" \
--target-host rivamar \
--build-host localhost \
switch
See the officiel documentation for more information.
machines/*
folders contain the entry point and hardware configuration of each machine (the equivalent of/etc/nixos/configuration.nix
for that machine).roles/
contains modules that define a specific thing that I want a machine to be doing. Each machine that wishes the functionnalities described in a role enables it in its entrypoint.common/
contains definitions that I want on all machines.home-config/
is the home-manager configuration for my "dettorer" user (it's imported bycommon/users.nix
).my-packages/
contains the few custom packages I want which are not already in nixpkgs. The whole folder is used as an overlay on nixpkgs.secrets/
contains secret files encrypt with git-crypt.