jackos1998 7fe3c8186c nix: Adopt Determinate Nix as the common Nix
Use Determinate Nix as `nix.package` for systems, homes and the
devshell, for its parallel evaluation and lazy trees. We only take the
package, not `determinate-nixd`: the daemon and `nix.conf` model are
unchanged and the Determinate NixOS module is not imported.

- Add the `determinate-nix` (`nix-src`) input, following our
  `nixpkgs-unstable`. FlakeHub's cache needs auth, so we build it
  ourselves and let it flow through Harmonia like everything else.
- `determinateOverlay` exposes it as `pkgs'.mine.determinate-nix`;
  `lib.my.c.nix.determinateSettings` (`lazy-trees`, `eval-cores = 0`)
  is merged into `nix.settings` and the devshell `nix.conf`.
- Switch CI to `DeterminateSystems/determinate-nix-action` so the
  runner itself evaluates with Determinate.
- Advertise the Harmonia cache via the flake's `nixConfig`, trusted
  without a prompt via `accept-flake-config` in the devshell, `.envrc`
  and CI only (boxes already trust it through `nix.settings`).
- Re-attach `pkgs`/`lib` to container and installer
  `nixosConfigurations` so Determinate's flake schemas can evaluate
  them (`nix flake check` otherwise fails with `attribute 'pkgs'
  missing`).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-08-03 22:31:43 +01:00
2026-08-02 01:07:27 +01:00
2026-03-01 22:57:03 +00:00
2026-08-02 21:20:53 +01:00
2026-07-22 18:44:03 +01:00
2026-08-02 00:12:57 +01:00
2023-11-17 20:25:58 +00:00

nixfiles

Personal Nix flake managing every box I run: hosted servers, home infrastructure, routers, a remote site, VPSes and personal workstations. It is built around a custom module system layered on top of NixOS and home-manager rather than the stock per-host nixosConfigurations pattern.

For the module-system internals, see docs/architecture.md; for day-to-day commands, deployment and secrets, see docs/deployment.md. This README is the map of what is actually deployed; the per-box details live under docs/ (start at docs/README.md).

Note: This documentation (the README and everything under docs/) is a work in progress and was agent-generated from the repository. It may be incomplete or out of date — treat the Nix configuration as the source of truth.

The boxes at a glance

Boxes are grouped by deployment/location. Each group has its own directory under docs/ with a README.md overview and one page per box.

Group What it is
colony Hosted dedicated server in Amsterdam (ams1). A VM host running the public-facing infrastructure: routing, web, git, media, object storage, chat, game servers.
home Home network: a VM host (palace), the home routers, storage, Home Assistant, and a workstation — plus the hand-configured switches and wireless APs tying it together.
remote Edge VPSes (britway, britnet) and the remote kelder site.
mobile The tower laptop.

The custom installer image is documented at docs/misc/installer.md. The general topics — the module system, network and deployment — live next to the index: docs/architecture.md, docs/networking.md and docs/deployment.md. The generated custom-module option reference is at docs/reference/nixos-options.md.

The high-level site diagrams and box hierarchy live in docs/README.md. Networking is largely defined by per-box assignments plus the AS211024 L2 VXLAN mesh; see docs/networking.md for the full picture and docs/architecture.md for the implementation mechanics.

Repo layout

README.md           <- you are here
nixos/
  boxes/            per-box configuration
    colony/         colony host + its VMs (vms/) + shill's containers
    home/           palace host + its VMs, routing-common, plus stream, castle
    britway/        London VPS
    kelder/         remote box + its containers
    tower/          laptop
    britnet.nix     Birmingham VPS
  installer.nix     installer-image configuration
  modules/          shared NixOS modules (my.* options); registered in _list.nix
home-manager/       home-manager modules + configs
lib/                lib.my helpers, constants (lib.my.c), net/dns helpers
pkgs/               custom packages (overlays.default)
secrets/            age-encrypted secrets (ragenix)
devshell/           devshell commands (build/deploy/check/ssh helpers)
ci/                 CI helpers (binary-cache push, docs generators)
docs/               deployment documentation (index at docs/README.md)

A box is wired into the flake by adding its config file to the configs list in flake.nix. See the top-level evaluation for how evalModules turns these into nixosConfigurations, homeConfigurations and deploy nodes.

S
Description
Configs for all (well almost all) my systems
Readme 8.3 MiB
2025-01-01 19:14:04 +00:00
Languages
Nix 86.8%
Python 7.5%
Shell 3.3%
HTML 2.4%