mirror of
https://github.com/davegallant/nix-config.git
synced 2026-09-01 11:27:04 +00:00
configuration for my mac and linux workstations
- Nix 58%
- TypeScript 25.6%
- Shell 11.9%
- Just 2.3%
- Lua 2.2%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| .github/workflows | ||
| docs | ||
| home | ||
| hosts | ||
| litellm | ||
| pkgs | ||
| .envrc | ||
| .gitignore | ||
| AGENTS.md | ||
| CLAUDE.md | ||
| darwin.nix | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| LICENSE | ||
| nixos.nix | ||
| opensnitch.nix | ||
| packages.nix | ||
| README.md | ||
| renovate.json | ||
| statix.toml | ||
nix-config
This repo stores nix configuration to manage my hosts running NixOS and macOS.
The configuration is very specific to my own machines and setup, but it may be a useful reference for anyone else learning or experimenting with nix, whether it be on a personal workstation or a server environment.
flowchart TD
flake["flake.nix"]
flake --> nixos["nixosConfigurations"]
flake --> darwin["darwinConfigurations"]
nixos --> hephaestus["hephaestus (NixOS)"]
darwin --> kratos["kratos (macOS)"]
darwin --> helios["helios (macOS)"]
hephaestus --> hostA["hosts/hephaestus.nix"]
kratos --> hostK["hosts/kratos.nix"]
helios --> hostHe["hosts/helios.nix"]
hostA --> hm["home-manager (./home)"]
hostK --> hm
hostHe --> hm
Prerequisites
- NixOS (Linux)
- Determinate Nix (macOS)
- just
Build
To run a build/rebuild:
just rebuild
Updates
Updates are proposed by renovate. To build the system, checkout the renovate PR and run just rebuild.
If the build is stable, run just merge-pr.
Common Recipes
Run just to view all recipes and associated descriptions:
❯ just
Available recipes:
clean # run nix garbage collection (user + root)
fmt # format all nix files [alias: f]
merge-pr # squash-merge current branch's PR with nvd diff in body
rebuild # build, show nvd diff, then switch [alias: r]
rollback # switch to previous generation
update-claude *version # usage: just update-claude [VERSION] (VERSION without leading 'v'; defaults to latest)
update-pi *version # usage: just update-pi [VERSION] (VERSION without leading 'v'; defaults to latest)