No description
  • Shell 95.6%
  • Nix 4.4%
Find a file
2026-07-16 19:14:19 +00:00
docs Gate host key rotation on external SSH targets 2026-07-16 19:14:19 +00:00
hooks initial public release 2026-07-09 17:50:47 -04:00
nix Add nexus.provisioning host option for provisioning env pointers 2026-07-15 20:39:37 +01:00
scripts Gate host key rotation on external SSH targets 2026-07-16 19:14:19 +00:00
tests Gate host key rotation on external SSH targets 2026-07-16 19:14:19 +00:00
.gitignore initial public release 2026-07-09 17:50:47 -04:00
flake.lock initial public release 2026-07-09 17:50:47 -04:00
flake.nix Cover inventoryCheckout and the relative-path branch in host-provisioning-env check 2026-07-15 19:57:24 +00:00
README.md Gate host key rotation on external SSH targets 2026-07-16 19:14:19 +00:00
setup.sh initial public release 2026-07-09 17:50:47 -04:00

nexus

NixOS host framework for an Allod nexus: a libvirt/QEMU VM host with agenix secrets and the provisioning/rotation script toolchain.

The flake exports:

  • nixosModules.host: virtualization, networking, security defaults, provisioning tools, and host utilities.
  • homeModules.host: Allod operator commands and the provisioning scripts.

This repository contains no machine identity, disk UUIDs, credentials, or personal packages. It is designed to be consumed alongside a private profiles fork.

Flake input

Add the framework to the consumer flake and follow its shared dependencies:

nexus = {
  url = "git+ssh://git@forge.example.org:2222/owner/nexus.git";
  inputs.nixpkgs.follows = "nixpkgs";
  inputs.home-manager.follows = "home-manager";
  inputs.agenix.follows = "agenix";
};

Import nexus.nixosModules.host into the host's NixOS module list and nexus.homeModules.host into the host user's Home Manager imports.

Host System Support

nexus exposes packages and checks for these Linux host systems:

System Status
x86_64-linux Tested development target.
aarch64-linux Exposed Tier 1 target, not yet validated on project hardware.

The flake system list controls where the framework can evaluate its packages and checks. It is separate from deployment inventory: consumers still define VM target systems, machine data, and credentials in their own inventory and secrets inputs.

ARM users should be able to evaluate the framework without patching the flake. Provisioning on ARM still needs hardware validation because QEMU machine types, KVM availability, and UEFI firmware packages differ from the tested x86_64 path.

Documentation