No description
  • Shell 78.6%
  • Nix 21.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
allod 4edff07c00 Install fleet-diff on the host PATH
Wire flake/fleet-diff from the allod-tools input into the host home
composition, alongside flake-status and flake-update-cascade.

fleet-diff calls none of lib/workspace.sh's helpers, so prepending that
library unconditionally trips shellcheck SC2329 on all four unused
function definitions and writeShellApplication fails the build.
workspaceTool therefore gains a useWorkspaceLib argument, default true,
which fleet-diff sets to false. The other four tools' derivation paths
are unchanged.

flake/fleet-diff does not exist on allod/tools master yet, so this
cannot build until allod/tools PR 136 merges and the allod-tools lock
advances in allod/archetypes.

Refs allod/nexus#37
2026-09-03 22:26:25 +00:00
checks/microvm Drop the duplicate host-side volume placement option 2026-07-30 07:41:33 +00:00
docs fix: adopt redundant Pi model names 2026-08-25 02:22:34 +00:00
hooks initial public release 2026-07-09 17:50:47 -04:00
nix Install fleet-diff on the host PATH 2026-09-03 22:26:25 +00:00
scripts fix: adopt redundant Pi model names 2026-08-25 02:22:34 +00:00
tests fix: adopt redundant Pi model names 2026-08-25 02:22:34 +00:00
.gitignore initial public release 2026-07-09 17:50:47 -04:00
flake.lock flake.lock: update vm, archetypes, vnprc-secrets, allod-nexus, nexus 2026-08-21 22:14:43 -04:00
flake.nix derive Pi recipients from deployment outputs 2026-08-24 05:51:47 +00:00
LICENSE Add LICENSE (GPL-3.0-or-later) 2026-07-17 05:41:48 +00:00
README.md Document the microvm host runtime and fix the isolation fixture credentials 2026-07-30 03:51:25 +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.
  • nixosModules.microvmHost: the microvm.nix host runtime, added alongside nixosModules.host by a deployment that runs microvm guests. Both runtimes coexist; libvirt stays first-class.
  • 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