Skip to content
@dryvist

dryvist

Infrastructure as code-medy: Nix, OpenTofu, Ansible & AI tooling, declared once, reproduced everywhere. Humans steer, robots wrench.

dryvist

docs.jacobpevans.com

Infrastructure as code-medy: we Nix the toil and let configs do the talking.

Apache-2.0 Conventional Commits Reviewed by multiple AI models Managed with Renovate


What this org is

dryvist is the infrastructure org: humans set direction, AI agents implement, automation runs routines, and a human signs off; configurations are declared once, reproduced everywhere, and observable end to end.

docs.jacobpevans.com explains the architecture, flows, decisions, and connections; the public repo list shows what is open to explore. Private repos exist and keep their details to themselves.


The flow

%%{init: {'theme':'base','themeVariables':{'primaryColor':'#4FB3A9','primaryTextColor':'#0B1D2A','primaryBorderColor':'#2F7E78','lineColor':'#E06B4A','secondaryColor':'#102937','tertiaryColor':'#0B1D2A','clusterBkg':'transparent','clusterBorder':'#4FB3A9','fontFamily':'Geist','fontSize':'16px'}}}%%
flowchart LR
  subgraph Human["Human"]
    direction TB
    H1(["Roadmap"])
    H2(["GitHub Issues"])
    H3(["Final sign-off"])
  end
  subgraph Agents["AI Agents"]
    direction TB
    A1(["Claude / Gemini / Copilot"])
    A2(["Implementation"])
    A3(["AI Code Review"])
  end
  subgraph Dryvist["dryvist repos"]
    direction TB
    D1(["Declarative configs"])
    D2(["Reusable modules"])
    D3(["Scheduled routines"])
  end
  subgraph Auto["Automation"]
    direction TB
    T1(["CI / lint / tests"])
    T2(["Deploy / converge"])
    T3(["Telemetry"])
  end
  H1 --> H2 --> A1 --> A2 --> D1 --> T1 --> T2 --> T3 --> A3 --> H3

  classDef human fill:#4FB3A9,stroke:#2F7E78,stroke-width:2px,color:#0B1D2A
  classDef ai fill:#E06B4A,stroke:#C25638,stroke-width:2px,color:#0B1D2A
  classDef repo fill:#102937,stroke:#4FB3A9,stroke-width:2px,color:#F4EFE6
  classDef auto fill:#2F7E78,stroke:#4FB3A9,stroke-width:2px,color:#F4EFE6

  class H1,H2,H3 human
  class A1,A2,A3 ai
  class D1,D2,D3 repo
  class T1,T2,T3 auto

  linkStyle default stroke:#E06B4A,stroke-width:3px
Loading

An Issue cues the agents; CI checks the changes, automation converges the configuration, and telemetry reports back before AI reviews the PR and a human signs off. The loop keeps its receipts.


What lives here

Tech stacks hosted in dryvist: Nix, Terraform, Ansible, Docker, Kubernetes, GitHub Actions, Git, GitHub

Claude Gemini GitHub Copilot MLX OpenTelemetry Splunk Cribl Proxmox

Reproducible Nix configurations cover developer laptops through bare metal.

  • Use nix develop to open a workspace with the right tools for each language and workload.
  • Home Manager keeps dotfiles, shells, and command-line tools identical across macOS and Linux.
  • Composable Home Manager modules install Claude Code, Gemini, Copilot, local MLX, and MCP servers; AI assistants get the same declarative treatment as neovim.
  • The nix-darwin and NixOS configurations include AI server profiles for ROCm and CUDA workloads.
  • Netboot bootstraps bare metal unattended, and we Nix the toil.

OpenTofu provisions VMs, networks, cloud accounts, and GitHub, while Terrakube runs homelab workspaces. Reusable modules build golden images and manage org governance.

  • Proxmox VMs, LXC containers, networks, and firewalls use declarative configuration with safe concurrent state.
  • Terrakube workspaces use native remote state and locking.
  • Self-hosted GitHub Actions spot runners keep CI fast and inexpensive.
  • Code manages GitHub rulesets, required workflows, and repository settings.

Terraform provisions the infrastructure, and Ansible converges it into services; the result is playbooks, not play-by-ear.

  • Proxmox roles harden hosts, tune performance, configure ZFS and swap, and set monitoring baselines.
  • Application roles run observability platforms, syslog load balancers, and other long-running services.

Vendor-agnostic instructions, workflows, plugins, and scheduled routines coordinate assistants across the portfolio.

  • One framework lets Claude, Gemini, Copilot, and local models follow the same rules.
  • Reusable workflows handle portfolio maintenance around the clock, including issue triage, cleanup sweeps, and multi-repo orchestration.
  • Claude Code plugins, agents, skills, hooks, and slash commands support everyday development.
  • Cron delivers daily portfolio briefings, PR triage, repository health scores, and automated polish.

Telemetry monitors services and traces AI code, while logs have their own supporting cast.

  • Cribl Edge collectors shape data in-stream before egress from laptops, Kubernetes nodes, and homelab hosts.
  • Cribl Stream workers fan data out to backends and reduce billed ingest volume.
  • OpenTelemetry carries application traces, metrics, and logs, while Splunk provides indexes, HEC inputs, apps, and dashboards.
  • Benchmark harnesses measure local LLM inference on Apple Silicon.

Templates and small utilities provide starter scaffolds for new projects.

  • Project templates configure linting, formatting, type checks, pre-commit hooks, and 100% coverage gates from the start.
  • Terrakube-managed OpenTofu workspace starters and Cribl Edge/Stream pack scaffolds cover new project setup.
  • Workflow utilities draft issues with local AI and schedule maintenance across people, agents, and GitHub.

How it fits together

The portfolio has five layers, and shared telemetry makes each one observable.

  1. Reproducibility (Nix). Every machine starts from a Nix flake, and nix build is the only entry.
  2. Provisioning (Terrakube / OpenTofu). Once a Nix-built host exists, workspaces allocate cloud and homelab VMs, LXC containers, cloud resources, and GitHub governance.
  3. Configuration (Ansible). Idempotent roles converge provisioned hosts to their declared services.
  4. Observability (Cribl + OpenTelemetry + Splunk). Shared pipelines shape, index, and alert on telemetry from every layer, including AI traces.
  5. AI control plane. Multi-model assistants, workflows, and routines draft changes, review PRs, triage issues, maintain layers, and report through the same fabric.

Read the architecture guide.


AI-native by default

Humans and AI agents read, edit, and review every repo together:

  • Shared instructions: Every repo carries or inherits AGENTS.md, so Claude, Gemini, Copilot, and local models receive shared context, rules, and conventions.
  • Multi-model PR review: Multiple models review every change before human approval, and the mix helps catch different bugs.
  • Scheduled routines: Cron runs maintenance, triage, and health checks on a schedule.
  • AI telemetry: OpenTelemetry traces and session logs record assistant activity in the shared pipeline.

The AI development overview explains the repo pattern.


Read the docs first

Start at docs.jacobpevans.com

docs.jacobpevans.com is the single, capability-organized front door.


Org-wide standards

The shared configuration hub is dryvist/.github.

Concern Standard
License Apache-2.0, unless a repo states otherwise
Commits Conventional Commits (feat: / fix: / chore:) drive automated releases
Releases release-please: fix: patch, feat: minor, major releases human-initiated
Code review Every PR gets multi-model AI review before human sign-off
Code lint / format Biome for JS/TS/JSON/CSS; canonical config in dryvist/.github
Markdown lint markdownlint-cli2 with org-wide rules
Workflow security zizmor; org-wide policy in dryvist/.github
Dependency updates Renovate extends shared presets
AI assistant policy Versioned AGENTS.md in every repo; org policy in dryvist/.github
CI runners Self-hosted on AWS spot capacity; GitHub-hosted fallback for short macOS jobs
Security reporting SECURITY.md auto-applied to every repo's Security tab

The family

The org-wide repos sit alongside profile assets and personal one-offs on JacobPEvans-personal; together, the two accounts host the public footprint. Older repo links redirect to their current owners.


docs.jacobpevans.com

One front door. Read the docs first.

Pinned Loading

  1. ai-llm-prompts ai-llm-prompts Public

    Version-controlled catalog of Dryvist LLM prompts

    Nix

  2. iac-platform iac-platform Public

    Self-hosted IaC management tier: Terrakube (OpenTofu remote plan/apply + state) and Semaphore UI (Ansible), homelab-deployed

    HCL

  3. .github .github Public

    Org-wide standards hub: AI policy, lint/format config, Renovate presets, reusable CI workflows, and security policy for the dryvist org.

    JavaScript

  4. llm-prompt-evals llm-prompt-evals Public

    promptfoo evaluation harness for the dryvist LLM prompt catalog (ai-llm-prompts)

    JavaScript

  5. mlx-benchmarks mlx-benchmarks Public

    Benchmark harness for MLX and local LLMs on Apple Silicon (results: hf.co/datasets/JacobPEvans/mlx-benchmarks)

    Python

  6. homelab-wall-feed homelab-wall-feed Public

    Python

Repositories

Showing 10 of 65 repositories

Top languages

Loading…

Most used topics

Loading…