Skip to content

feat: scaffold nix-ai-server NixOS flake (no hardware bind yet)#2

Open
JacobPEvans-personal wants to merge 3 commits into
mainfrom
chore/initial-scaffold
Open

feat: scaffold nix-ai-server NixOS flake (no hardware bind yet)#2
JacobPEvans-personal wants to merge 3 commits into
mainfrom
chore/initial-scaffold

Conversation

@JacobPEvans-personal
Copy link
Copy Markdown
Member

Summary

Bare-metal NixOS 25.11+ flake for server A — the dryvist homelab AI host.
Server A is standalone and never joins the Proxmox cluster (B+C+D).
CUDA-first AI stack on top of disko + sops-nix + nix-ld + uv2nix-managed Python.

What's in this PR (skeleton only)

  • 22 .nix files: hosts/ai-server-a/{default,disko,networking,hardware-configuration} (placeholders), modules/{system,ai,secrets,monitoring}/*, lib/checks.nix
  • 5 ADRs: disko-vs-manual-partitioning, cuda-vs-rocm, uv2nix-vs-poetry2nix, openbao-runtime-secrets, standalone-not-cluster-member
  • 5 Mermaid architecture diagrams (.mmd source)
  • CI: nix flake check, CodeQL, flake updater, release-please, mermaid render check
  • Renovate: auto-PR rule for nixos-26.05 upgrade when channel ships

Design constraints encoded

  1. Standalone — no mkEnableOption "ten-gig mesh". 1 GbE only.
  2. Flakes only. NixOS 25.11+ pinned.
  3. CUDA-first (ROCm rejected — see ADR 0002).
  4. uv2nix for Python (poetry2nix rejected — see ADR 0003).
  5. OpenBao for runtime secrets (see ADR 0004).

What lands in PR #2 (later)

Real disko.nix by-id paths + actual hardware-configuration.nix once the host hardware is being reformatted.

Mermaid SVG strategy

Source .mmd files committed; rendered .svg files are produced in CI by the mermaid-render-check workflow with a --no-sandbox puppeteer config to work around the SUID sandbox issue in GitHub Actions Linux runners.

Test plan

  • CI: Nix flake check job green
  • CI: CodeQL job green
  • CI: Mermaid render check green (with new --no-sandbox config)

Refs: dryvist Server Infrastructure project — Mirror + scaffold epic

Bare-metal NixOS 25.11+ flake for server A (standalone AI host, never joins
the dryvist Proxmox cluster). CUDA-first AI stack with disko, sops-nix,
nix-ld, and uv2nix-managed Python environments.

- 22 .nix files: hosts/ai-server-a/{default,disko,networking,hardware-configuration},
  modules/{system,ai,secrets,monitoring}/*, lib/checks.nix
- 5 ADRs: disko-vs-manual, cuda-vs-rocm, uv2nix-vs-poetry2nix,
  openbao-runtime-secrets, standalone-not-cluster-member
- 5 Mermaid architecture diagrams (.mmd source)
- CI: nix flake check + CodeQL + flake updater + release-please +
  mermaid render check (now wired with --no-sandbox puppeteer config)
- Renovate config for auto-PR on nixos-26.05 channel ship

Real disko by-id paths + hardware-configuration.nix land in PR #2 once
the host hardware is being reformatted. Current placeholders document
intent only.

Refs: dryvist/Server Infrastructure project epic

Assisted-by: Claude <noreply@anthropic.com>
@github-advanced-security
Copy link
Copy Markdown

You are seeing this message because GitHub Code Scanning has recently been set up for this repository, or this pull request contains the workflow file for the Code Scanning tool.

What Enabling Code Scanning Means:

  • The 'Security' tab will display more code scanning analysis results (e.g., for the default branch).
  • Depending on your configuration and choice of analysis tool, future pull requests will be annotated with code scanning analysis results.
  • You will be able to see the analysis results for the pull request's branch on this overview once the scans have completed and the checks have passed.

For more information about GitHub Code Scanning, check out the documentation.

…pkgs module)

CI nix flake check failed:
  nix-ld.dev cannot be enabled at the same time as nix-ld

Importing nix-community/nix-ld's nixos module on top of nixpkgs'
programs.nix-ld surface (which has shipped in nixpkgs since 23.11)
forces the assertion. Drop the flake input + nixosModules.nix-ld
import; modules/ai/nix-ld.nix already only touches programs.nix-ld
which the nixpkgs-bundled module provides.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants