Start
Overview
What NixMSP is, how far along it is, and how the pieces fit together.
NixMSP is a declarative way for an MSP to set up and manage client machines on NixOS. Each machine is a small folder that sets option values. Shared behavior lives in feature files that declare those options and implement them.
Where it stands
NixMSP is a barebones scaffold. It was written without a Nix install available to evaluate it, so it has not been evaluated yet. Nothing here has been deployed to a client machine. The first test is ./check-hosts.sh, and until that passes, treat everything on this site as a design, not a promise.
Pages marked “Planned” describe things that are not built.
How it works
features/is auto-loaded by import-tree. Each file declares its ownnixmsp.<name>options and implements them. Add a file and it is picked up.hosts/<name>/only sets option values for one machine.lib/mkHost.nixbuilds a NixOS system from all features plus one host folder.flake.nixlists the hosts.
No secrets and no personal values live in the repo. See How it works for the layout and the thinking behind it.
What is in the scaffold
| File | What it does |
|---|---|
features/host.nix |
Time zone, locale, host ID |
features/client.nix |
Which client a host belongs to |
features/security.nix |
Baseline standard or strict, SSH keys, fail2ban |
hosts/example/ |
Sample host with placeholder hardware |
check-hosts.sh |
Prints each host’s derivation path |
Where to go next
- Quick start: the commands from the scaffold README.
- Security baseline: the one option that changes the most.
- Roadmap: what is deliberately not built yet, in build order.
Source
A public repository is planned at fossadmin/nixmsp. It does not exist yet, so there is nothing to clone today. When it is released it will be a fresh repository rather than a copy of the private history.