Skip to content

h7x4/nix-dotfiles

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

built with nix

Nix Dotfiles

These are my dotfiles for several nix machines. Here are some of the interesting files and dirs:

Path Purpose
/home home-manager configuration.
/hosts Machine specific NixOS configurations.
/hosts/common/default.nix Configuration that is equal for all hosts.
/lib Custom lib functions that has not been upstreamed (or should not be) to nixpkgs. I'm trying to phase these out as much as possible.
/modules Custom nixos modules that I use in my own configuration. If you see options that does not appear in NixOS Search, they might be defined here.
/package-overrides Updated or pinned versions of packages that have not been upstreamed to nixpkgs (yet).
/secrets Encrypted sops-nix secrets.
flake.nix The root of everyting. Defines the inputs and outputs of the project. Also applies misc overlays and adds config-wide modules. See Nix Flakes for more information.

Hosts

Host Machine type Purpose
Tsuki Dell Poweredge r710 server Data storage / Build server / Selfhosted services. This server hosts a wide variety of services, including websites, matrix server, git repos, CI/CD and more. This is probably the most interesting machine to pick config from
Kasei AMD Zen 2 CPU / AMD GPU - desktop computer Semi-daily driver. This is my main computer at home.
Dosei Dell Optiplex Work computer, mostly used for development and testing.
Europa Dell Optiplex Other work computer, used as nix builder for Dosei.

home-manager configuration

Path Purpose
/home/config Configuration for everything that is not a program, nor a service, and are big enough to warrant their own file or directory.
/home/modules Custom home-manager modules.
/home/packages.nix A list of packages that should be included in the environment.
/home/programs Configuration for programs that have their own home-manager modules.
/home/services Configuration for services/daemons that are user-specific.
/home/shell.nix Shell-agnostic configuration. This includes aliases, envvars, functions, etc.

Some useful long commands

Build configuration without switching:

nix build .#nixosConfigurations.tsuki.config.system.build.toplevel -L

Check why configuration depends on package:

NIXPKGS_ALLOW_INSECURE=1 nix why-depends .#nixosConfigurations.tsuki.config.system.build.toplevel .#pkgs.suspiciousPackage

Re-encrypt sops secrets with new key:

sops updatekeys secrets/hosts/file.yml