Skip to content

Overview

Panix is configured through a single YAML file (default: panix.yml) that defines your fleet structure, SSH connections, build options, and deployment targets.

The core of the file is the fleet tree: flakes contain installables, installables contain machines, and settings cascade down each level.

fleet:
flakes:
my-flake:
installables:
nixosConfigurations:
webserver: { machines: { web-01: } }

See the Quick Start for a full minimal configuration, and the configuration model for how inheritance works across the tree.

KeyPurpose
flagsGlobal flags: activation mode, output mode, TUI settings, logging, snapshots, profiling. All overridable via CLI arguments
output_typesCustom output type presets, applied as defaults to installables of that type
fleetFleet definition: flakes, installables, machines, SSH, secrets, nix options

When the same setting comes from several sources, the highest-precedence one wins: CLI flag > PANIX_* environment variable > config file > built-in default.

PageContents
Full YAML ReferenceAnnotated fleet tree example and the complete auto-generated YAML schema
Output TypesBuilt-in output types, preset fields, custom output types, attrpath resolution
TemplatingGo template syntax, Sprout functions, YAML anchors and merge keys
Nix Command FlagsNix base flags, extra flags, and per-level overrides
Tag-Based FilteringTag inheritance and deploying subsets of the fleet
Build ModesLocal vs remote builds
ThemesTUI color themes, the ctrl+t theme picker, custom themes via panix-themes.yml
IDE SupportYAML schema for editor validation and autocompletion