Kieran's opinionated (and probably slightly dumb) nix config

control#

Admin dashboard for Caddy feature toggles. Provides a web UI to enable/disable paths on other services (e.g. blocking player tracking on the map).

Domain: control.dunkirk.sh · Port: 3010 · Runtime: bun

Extra options#

flags#

Defines per-domain feature flags that control blocks paths and redacts JSON fields.

atelier.services.control.flags."map.dunkirk.sh" = {
  name = "Map";
  flags = {
    "block-tracking" = {
      name = "Block Player Tracking";
      description = "Disable real-time player location updates";
      paths = [
        "/sse"
        "/sse/*"
        "/tiles/*/markers/pl3xmap_players.json"
      ];
      redact."/tiles/settings.json" = [ "players" ];
    };
  };
};
Option Type Default Description
flags attrsOf submodule {} Services and their feature flags, keyed by domain
flags.<domain>.name string Display name for the service
flags.<domain>.flags.<id>.name string Display name for the flag
flags.<domain>.flags.<id>.description string What the flag does
flags.<domain>.flags.<id>.paths list of strings [] URL paths to block when flag is active
flags.<domain>.flags.<id>.redact attrsOf (list of strings) {} JSON fields to redact from responses, keyed by path

The flags config is serialized to flags.json and passed to control via the FLAGS_CONFIG environment variable.