Overview
Panix is configured through a single YAML file (default: panix.yml) that defines your fleet structure, SSH connections, build options, and deployment targets.
Fleet Tree
Section titled “Fleet Tree”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.
Top-Level Keys
Section titled “Top-Level Keys”| Key | Purpose |
|---|---|
flags | Global flags: activation mode, output mode, TUI settings, logging, snapshots, profiling. All overridable via CLI arguments |
output_types | Custom output type presets, applied as defaults to installables of that type |
fleet | Fleet 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.
In This Section
Section titled “In This Section”| Page | Contents |
|---|---|
| Full YAML Reference | Annotated fleet tree example and the complete auto-generated YAML schema |
| Output Types | Built-in output types, preset fields, custom output types, attrpath resolution |
| Templating | Go template syntax, Sprout functions, YAML anchors and merge keys |
| Nix Command Flags | Nix base flags, extra flags, and per-level overrides |
| Tag-Based Filtering | Tag inheritance and deploying subsets of the fleet |
| Build Modes | Local vs remote builds |
| Themes | TUI color themes, the ctrl+t theme picker, custom themes via panix-themes.yml |
| IDE Support | YAML schema for editor validation and autocompletion |