The orchestrator host is a general agent box that also serves several unrelated projects (atproto-likes, the lichen and project orchestrators, the shared opencode web server). Everything that exists FOR cc-ci — the loops, the cc-ci orchestrator session, the weekly recipe-upgrade run and its hourly supervisor — now lives in nix/modules/cc-ci.nix and is exported as `nixosModules.cc-ci`, so the two can evolve and be reviewed independently and another host can consume just the cc-ci half. No behaviour change. Verified by building .#cc-ci-orchestrator-hetzner after the split: the unit set is identical to the running system, and all six cc-ci units are byte-identical modulo nix store hashes. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_016L6nYYwkCWnrEFKTnKAfet
38 lines
1.6 KiB
Nix
38 lines
1.6 KiB
Nix
{
|
|
description = "cc-ci-orchestrator — NixOS host for the cc-ci loops runtime (Builder/Adversary/Watchdog)";
|
|
|
|
inputs = {
|
|
# Follow the current stable release channel (operator 2026-08-01), was a hard rev pin at
|
|
# nixpkgs 24.11 (50ab7937, 2025-06-30) kept "the same as the cc-ci server". This host runs
|
|
# agents/tmux/nginx/docker, not recipe CI, so it does not need to match that server — and a
|
|
# frozen rev only accrues unpatched CVEs. `nix flake update` now actually moves.
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-26.05";
|
|
|
|
# sops-nix follows nixpkgs below, so it no longer needs its own matching pin.
|
|
sops-nix.url = "github:Mic92/sops-nix";
|
|
sops-nix.inputs.nixpkgs.follows = "nixpkgs";
|
|
};
|
|
|
|
outputs = { nixpkgs, sops-nix, ... }:
|
|
let
|
|
system = "x86_64-linux";
|
|
in
|
|
{
|
|
# The cc-ci part of a host, on its own, so a host that runs cc-ci can import just this and
|
|
# keep its own (unrelated) configuration separate. Split out 2026-08-20; consumed by
|
|
# notplants-nix's `notplants-orchestrator` host.
|
|
nixosModules.cc-ci = ./nix/modules/cc-ci.nix;
|
|
|
|
# Hetzner cpx11 host (nixos-infect generated hardware.nix + orchestrator config).
|
|
# Provision with terraform/ then run Stage 2 per terraform/README.md.
|
|
nixosConfigurations.cc-ci-orchestrator-hetzner = nixpkgs.lib.nixosSystem {
|
|
inherit system;
|
|
modules = [
|
|
sops-nix.nixosModules.sops
|
|
./nix/hosts/cc-ci-orchestrator-hetzner/hardware.nix
|
|
./nix/hosts/cc-ci-orchestrator-hetzner/configuration.nix
|
|
];
|
|
};
|
|
};
|
|
}
|