Pyromaniac

Pyromaniac is a framework for configuring and deploying self-maintaining server operating systems and services in a declarative, reproducible, and modular way based on Fedora CoreOS, Butane, and Jinja. Use it as a more powerful drop-in replacement for Butane, break your config up into reusable parameterized components, or build and publish your own libraries with ease.

Since Butane is the basis for Pyromaniac’s configuration format, you should get a grasp of Butane first. Don’t worry: It’s quite straightforward. Check out the examples and the full format specification.

How to Read this Documentation

First of all, to get Pyromaniac running, check out the Installation page.

To learn about how to execute Pyromaniac, read the Command Line Interface page. You can mostly use it as a drop-in replacement for Butane, but Pyromaniac doesn’t support all of its command line options and has a couple of exciting additional features.

You will write your configuration source code as Pyromaniac components. Don’t worry: Your existing Butane configuration files are already valid Pyromaniac components. The Components page is all about the syntax and built-in functions that Pyromaniac has to offer.

Get inspired by the examples and further hints in the Recipes section.

Pyromaniac executes arbitrary Python code from your source files, but it does so in an optionally read-only container. Read more about this on the Security Considerations page.

This is a non-commercial project, and you are welcome to contribute. Please read the Development page to learn about what to pay attention to.

If you find an error in the documentation or find anything unclear, please open an issue on GitHub.