Metadata-Version: 2.4
Name: nullforge
Version: 0.1.0
Summary: Forge the server's baseline from null
Author-email: wlix13 <github@wlix13.dev>
Maintainer-email: wlix13 <github@wlix13.dev>
License-File: LICENSE
Classifier: Programming Language :: Python :: 3 :: Only
Classifier: Programming Language :: Python :: 3.13
Requires-Python: <3.14,>=3.13
Requires-Dist: click
Requires-Dist: pydantic
Requires-Dist: pyinfra
Requires-Dist: rich-click
Description-Content-Type: text/markdown

# NullForge

Forge the server's baseline from null — an infrastructure-as-code framework built on [pyinfra](https://pyinfra.com), themed around a blacksmith's forge: **inventories** define hosts, **molds** shape the configuration, **runes** are idempotent operation sets, the **foundry** casts them onto targets, and the **smithy** holds cross-distro helpers.

> [!WARNING]
> **NullForge is in active development.** Until the `v1.0.0` release, the mold schemas, runes and deploy behaviour may change at any time — breaking changes can land in **any** release, including patch versions. Pin an exact version (e.g. `nullforge==0.1.0`) and check the [release notes](https://github.com/wlix13/NullForge/releases) before upgrading.

## Install

```bash
uv sync
```

## Deploy

```bash
# Cast the full baseline (all enabled features from the inventory)
uv run pyinfra nullforge/inventories/example.py nullforge/foundry/full_cast.py
```

## Contributing

See [CONTRIBUTING.md](.github/CONTRIBUTING.md) for the full setup, commit conventions and pull request flow.
