Graft
TOML-driven Podman Quadlet containers, built from the Nix store.
Graft turns small TOML files into rootfs-based Podman Quadlet services for NixOS and Home Manager. You describe container intent; Graft resolves the runtime details; Nix materialises the rootfs and Quadlet output; systemd runs the result like any other service.
Use the GitHub README as the repository landing page, then use this manual for deeper design, reference, and contributor details.
Start here
- Overview explains the current architecture and data flow.
- Design documents the boundaries between TOML, CLI, Nix modules, and Quadlet output.
- Quadlet output describes the generated
.containerfiles. - Roadmap describes the longer-term direction.
- Non-goals and deferred scope lists deliberate exclusions.
- Reference links to the annotated TOML reference and current module options.
- Development captures contributor workflow and renderer checklists.
Current scope
The current MVP focuses on rootfs-store containers:
- TOML to resolved JSON stdout
- NixOS system/rootful Quadlet output
- Home Manager user/rootless Quadlet output
- manual start/stop through systemd
- packages and commands resolved from TOML
- useful Quadlet rendering for identity, working directory, environment, environment files, published ports, volumes, and service timing
- clean shutdown through
graft-pause