No description
  • Nix 98.1%
  • Shell 1.9%
Find a file
vnprc 46d5c1ed30 nexus: enable linger for the operator user
Set users.users.<user>.linger = true on nexus so the systemd --user manager
persists without an active login session, letting home-manager user timers
(the 03:00 backup-forgejo.timer) fire unattended.

Refs vnprc/forgejo-config#5
2026-07-29 20:35:55 +01:00
hooks Add private machine profile definitions 2026-07-18 13:51:52 +00:00
hosts nexus: enable linger for the operator user 2026-07-29 20:35:55 +01:00
modules Generate host-side microVM networking on nexus 2026-07-29 07:40:06 +00:00
flake.lock flake.lock: update vm, archetypes, inventory, allod-tools 2026-07-29 09:34:04 -04:00
flake.nix Generate host-side microVM networking on nexus 2026-07-29 07:40:06 +00:00
LICENSE initial commit: license 2026-07-18 09:45:41 -04:00
README.md Derive profile checks from inventory platforms 2026-07-18 14:01:03 +00:00
setup.sh Add private machine profile definitions 2026-07-18 13:51:52 +00:00

profiles

Private vnprc machine profile definitions: the real NixOS and Home Manager modules composed for each machine by the public allod/archetypes framework.

This repo exports the same profiles input contract as the public allod/profiles example repo, but with the real vnprc fleet.

Ownership

This repo owns:

  • per-machine NixOS modules under hosts/<archetype>/<name>/configuration.nix
  • per-machine Home Manager modules under hosts/<archetype>/<name>/home.nix
  • shared behavior modules under modules/
  • the profiles input contract: lib.profileDefinitions, optional per-machine lib.profileData, and homeModules.preferences

This repo does not own:

  • archetype composition, builders, shared framework modules, vmFacts, and framework checks: allod/archetypes
  • VM facts, repository registry, IPs, MACs, and platforms: vnprc/inventory
  • identity data, credential inventory, Forge users/hosts, token paths, and git policy data: vnprc/secrets

Inventory remains the only source of truth for machine platforms. This flake consumes vnprc/inventory.lib.supportedPlatforms only to decide which check systems to expose; it does not duplicate architecture strings.

Do not add this repo as an input to vnprc/secrets or vnprc/inventory.

The profiles Input Contract

flake.nix exports a literal attrset:

lib.profileDefinitions = {
  <archetype> = {
    <definition-name> = {
      override ? false;
      nixosModules ? [ <module> ... ];
      homeModules  ? [ <module> ... ];
    };
  };
};
lib.profileData = {
  <machine-name> = { <builder-arg overrides> };
};
homeModules.preferences = <home-manager module>;

The public allod/archetypes framework validates archetype names and composes these definitions with vnprc/secrets and vnprc/inventory.

Common Commands

nix flake check
nix eval .#lib.profileDefinitions --apply builtins.attrNames --json | jq .

History

This repo has fresh history. The private machine behavior was moved out of vnprc/secrets so that vnprc/secrets can return to identity and credential data only. The deprecated private framework-history mirror formerly named vnprc/profiles is archival only; the active framework is allod/archetypes.