- Everything is built upon flake-parts, with flake modules for automatic stuff extraction
- Automatic classic (
callPackage
) anddream2nix
packages extraction - Automatic
nixos
,nix-darwin
,nix-on-droid
,home-manager
andflake
modules extraction - Automatic
nixos
,nix-darwin
,nix-on-droid
andhome-manager
configurations extraction - Automatic overlays extraction
- Automatic devShells extraction
- Automatic classic (
- Hosts can be found under
./hosts/${config-type}/${system}/${hostname}/...
- Check
./modules/flake/configurations
for more info on what is extracted from those directories
- Check
- Modules can be found under
./modules/${config-type}/...
- Check
./modules/flake/modules
for more info on what is extracted from that directory
- Check
- Packages can be found under
./pkgs/...
- Check
./modules/flake/packages
for more info on what is extracted from that directory
- Check
- Overlays can be found under
./overlays/...
- Check
./modules/flake/overlays
for more info on what is extracted from that directory
- Check
- Shells can be found under
./shells/...
- Check
./modules/flake/shells
for more info on what is extracted from that directory - Default one puts a recent
nix
(as of recently -lix
) together with some other useful tools for working with the repo (deploy-rs
,rage
,agenix-rekey
, etc.), see./shells/default/default.nix
for more info
- Check
You can see the overall topology of the hosts by running
nix build ".#topology"
And opening the resulting ./result/main.svg
and ./result/network.svg
Secrets are managed by agenix
and agenix-rekey
Note
Secrets are defined by the hosts themselves, agenix-rekey
just collects what secrets are referenced by them and lets you generate, edit and rekey them
# To put `rage`, `agenix-rekey` and friends in `$PATH`
nix develop
# Select from `fzf` menu
agenix edit
agenix rekey
agenix generate
# Initial setup
nix run nixpkgs#nixos-anywhere -- --flake ".#${HOSTNAME}" --build-on-remote --ssh-port 22 "root@${HOSTNAME}" --no-reboot
# Deploy
deploy ".#${HOSTNAME}" --skip-checks
# Setup system tools
softwareupdate --install-rosetta --agree-to-license
sudo xcodebuild -license
# Install nix
curl --proto '=https' --tlsv1.2 -sSf -L https://install.determinate.systems/nix | sh -s -- install
# Apply configuration
git clone https://www.github.com/reo101/rix101 ~/.config/rix101
cd ~/.config/rix101
nix build ".#darwinConfigurations.${HOSTNAME}.system"
./result/sw/bin/darwin-rebuild switch --flake .
# System setup for `yabai` (in system recovery)
# NOTE: <https://support.apple.com/guide/mac-help/macos-recovery-a-mac-apple-silicon-mchl82829c17/mac>
csrutil enable --without fs --without debug --without nvram
Misterio77
for his amazingnix-starter-configs
, on which this was based originallydisko
for making disk partioning a breezeoddlama
for creating the amazingagenix-rekey
andnix-topology
projects