No description
  • Nix 62.3%
  • HCL 21.4%
  • Shell 13.9%
  • Just 2%
  • Python 0.4%
Find a file
Repository files (latest commit first)
Filename Latest commit message Latest commit date
minz1 dfb6677654
Some checks are pending
/ gitleaks (push) Waiting to run
/ lint (push) Waiting to run
/ build (push) Has started running
NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments
2026-11-02 15:11:21 -05:00
.forgejo/workflows ci: drop permissions blocks Forgejo ignores (and warns about) 2026-11-02 13:22:05 -05:00
common vultr-nix-0: remove Forgejo after move to minz-git-0 2026-11-02 14:56:22 -05:00
config nixfiles: lower web size floors for viki dramas 2026-10-19 19:12:47 -04:00
hosts NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
just nixfiles: tofu/app reads fleet addresses and ports 2026-10-30 21:09:54 -04:00
modules lib: forgejo runner id and uuid derivation 2026-11-02 11:26:46 -05:00
pkgs nixfiles: allowed hosts on arrs, bazarr tz, drop ffprobe-monitor 2026-10-09 17:13:58 -04:00
scripts NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
secrets NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
tofu NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
.gitignore nixfiles: untrack autopilot rules 2026-10-24 13:19:00 -04:00
.gitleaks.toml nixfiles: reign in scope of minecraft-whitelist-sync and add gitleaks 2026-09-09 21:34:47 -04:00
.sops.yaml sops: register minz-git-0, forgejo shared secrets 2026-11-02 11:29:45 -05:00
AGENTS.md NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
CLAUDE.md nixfiles: add AGENTS.md and drop plan codes from comments 2026-10-29 15:57:43 -04:00
flake.lock NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
flake.nix NET-6 review fixes: commit tofu.env token, pin nixos-anywhere nixpkgs in flake.nix, explicit edge :22, stale comments 2026-11-02 15:11:21 -05:00
justfile nixfiles: package scripts with a baked fleet helper 2026-10-30 01:57:01 -04:00
README.md docs: Forgejo/CI agent rules, minz-git-0 in README 2026-11-02 11:47:35 -05:00
treefmt.nix nixfiles: follow nixpkgs in flake inputs, treefmt formatter 2026-10-30 08:23:35 -04:00

nixfiles

Hosts

Host Role Network
minz-vultr-nix-0 WireGuard hub, Forgejo + Postgres, RustFS (S3 state backend) 10.8.0.1
minz-vultr-nix-1 Edge ingress — Caddy + CrowdSec + Velocity (Minecraft proxy) 10.8.0.6 / 10.9.0.1
minz-home-nix-0 Bare metal, Incus host 10.8.0.5 / 10.10.0.1
minz-obs-0 VictoriaMetrics, Loki, Grafana; Alloy fleet-wide log/metric shipping 10.10.0.2
minz-authentik-0 Authentik SSO + LDAP outpost 10.10.0.3
minz-media-0 Jellyfin, Seerr, Sonarr, Radarr, Prowlarr, Bazarr, Decypharr, media-agent 10.10.0.7
minz-services-0 ntfy, media-fixer 10.10.0.6
minz-pki-0 step-ca internal CA (ACME + mTLS client cert issuance) 10.10.0.8
minz-game-0 Minecraft server: Fabric 26.3, vanilla-compatible (rootless Podman, oci user) 10.10.0.9
minz-attic-0 Attic binary cache (CI push target, fleet substituter) 10.10.0.12
minz-runner-0 Forgejo Actions runner (rootless Podman job containers) 10.10.0.13
minz-git-0 Public Forgejo at git.minz1.com + Postgres (SSH :22 via the edge) 10.10.0.14

Incus VMs/containers run on minz-home-nix-0 bridged at 10.10.0.0/24.

Usage

nix develop                          # enter dev shell

just deploy node <host>              # deploy one host
just deploy all                      # deploy all hosts
just deploy phased                   # deploy in dependency order

just admin check                     # flake check + fmt + shellcheck
just admin update                    # bump flake.lock, build every host closure
just admin build-all                 # build every host closure
just admin health                    # fleet-wide failed-unit / crash-loop check

just tofu infra-plan                 # plan Incus VM lifecycle
just tofu infra-apply
just tofu app-plan                   # plan app config (Authentik, DNS, etc.)
just tofu app-apply

CI (Forgejo Actions, minz-runner-0) builds affected hosts and pushes to Attic on every push — see just ci and .forgejo/workflows/. It has no deploy authority; deploys are always run by a human from the desktop.

Structure

common/     topology, SSH keys, WireGuard
hosts/      per-host NixOS configurations
modules/    reusable NixOS modules (profiles, services, hardening)
pkgs/       custom package overlays
scripts/    shell scripts backing justfile recipes
just/       justfile submodules (admin, bootstrap, ci, deploy, tofu)
secrets/    sops-encrypted secrets (per-host + shared)
tofu/       OpenTofu — infra/ (Incus VMs) and app/ (Authentik, arr stack)

Secrets

Each host decrypts its own secrets using its SSH ed25519 host key as an age identity. New host ceremony:

just bootstrap keygen <host>      # generate SSH host key in RAM, print age pubkey
# add age pubkey to .sops.yaml, then:
just bootstrap store-key <host>   # encrypt key into secrets/<host>.yaml
just bootstrap install-vm <host>  # provision via nixos-anywhere (VMs)
just deploy node <host>