# jprov

`jprov` is an opinionated FreeBSD jail provisioning tool designed for near-stateless jails. It rebuilds a jail from a template dataset, applies an overlay filesystem, mounts volumes, and runs a provisioning command inside the jail. It is intended to be used after system/template upgrades, not on every jail restart.

## Status
Early development (pre-1.0). Expect breaking changes.

## Requirements
- FreeBSD with ZFS
- Python 3.11+ (uses `tomllib`)
- Root privileges (for `zfs`, `jail`, `mount`, `jexec`)

## Install (uv)
```bash
uv pip install .
```

## Usage
```bash
jprov [-y] [--dry-run] up <jailname>
jprov [-y] [--dry-run] down <jailname>
```

## Configuration
See `docs/CONFIG.md` for the main config and per-jail TOML schema.

## Logging
All command outputs are captured to a per-run log file. On fatal error, jprov prints:
```
script logs written to <logpath>.log
```

## License
BSD-2-Clause
