| chatgpt.md | ||
| meta.nix | ||
| README.md | ||
Metanix
Declare your infrastructure!
Description
Metanix is a nix library designed to allow a central, no-nonsense nix file to be written to allow for a Source of Truth leading to deterministic configuration identifiers like IP addresses, UIDs, GIDs, and enable quickly establishing frameworks for NixOS systems existing within an ecosystem. As such, I am trying to design this system to enable a would-be admin to answer very simple one-word questions. Sort of.
What?
Or, in other words, what systems do you want Metanix to manage or at least be aware of?
Where?
Or, in other words, what networks and subnets do you have and where do your systems/users belong?
Who?
Or, in other words, who are your users?
How?
Or, in other words, what kind of access control groups do you want or need to best control how everything is used.
Enter: THINGS
I use the term "thing" as an overall blanket classification for the four main types in the library: Locations, Systems, Users, and Groups.
Locations are networks with their own Internet access, or at the very least are networks that are supposedly physically distinct from other networks. It could be your house, your office building, an apartment, whatever. Typically, Metanix considers the fundamental defining aspects of these to be routers and subnets.
Systems are devices in any location. It can be any kind of device. PCs, servers, smart phones, game consoles. Depending on how its defined, Metanix will manage the device in some way, either through NixOS/Nix/Home Manager configurations, or through services it configures through Nix like DHCP, DNS, Headscale, etc.