~/nixmsp/docsScaffold stage: not yet evaluated

Start

Overview

What NixMSP is, how far along it is, and how the pieces fit together.

Written, not yet run through Nix

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 own nixmsp.<name> options and implements them. Add a file and it is picked up.
  • hosts/<name>/ only sets option values for one machine.
  • lib/mkHost.nix builds a NixOS system from all features plus one host folder.
  • flake.nix lists 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

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.