Welcome to the Ch-aOS Project Suite
Ch-aOS is a Python SDK and CLI suite designed to declaratively manage your Unix system, from initial installation to post-install configuration. It provides a modular, safe, and didactic way to handle your entire infrastructure.
Core Principles
-
Declarative: Define the desired state of your system using simple YAML files. The Ch-aOS SDK takes care of the rest, ensuring your system matches your declaration.
-
Modular: Extend the functionality of Ch-aOS by creating or adding Souls. Whether you need to manage a different distribution, handle dotfiles, or integrate with a new secret provider, the architecture makes it possible.
-
Safe: Preview changes before they are applied with dry runs. Manage your secrets securely with integrated support for
sopsand various secret providers. -
Didactic: Learn as you go with a built-in documentation system. The
chaos explaincommand provides detailed information on every feature, command, and concept.
How It Works
Ch-aOS is a SDK powered by Pyinfra. It uses "Ch-obolos" (YAML files) to read data and executes "Roles" (Python classes inheriting from our base SDK) to apply the desired state to your system. This separation of data from logic makes your configurations readable, reusable, and version-controllable.
Little example:
So, you have some secrets you want to use in your operating system, you want to place them in some files or something, but you don't want to keep decrypting, copying and printing them.
So, I've made a little role that is a jinja2 secrets templater, you can see it in action as well!

Why is this SO VERBOSE?
Well, that's Ch-aOS's optional and local logbook!
Ready to get started? Head over to the Getting Started guide.
Want to learn more about advanced features? Check some of the Advanced Topics!
Want to create your own Souls or use the SDK? Dive into the Soul Development documentation!
Or you just want to follow the code's planned features? Check out our Chopping Board!