Logix - Your Config Management Companion
Welcome to Logix, a lightweight and versatile command-line tool designed to simplify and enhance configuration management. Inspired by the concept of home-manager, Logix offers an intuitive way to organize, maintain, and extend your system configurations effortlessly. Whether you're a seasoned sysadmin, a developer, or simply someone who wants to keep their setup in Git, Logix is here to make your life easier.
Goals
- Deploying across multiple machines and distros should yield a similar result.
- Deploying a new config after updates should be safe and atomic where possible.
- Enable system configurations to be stored and version-controlled.
Current Focus
Logix is in an experimental phase, primarily focused on meeting the needs of its developers. The emphasis is on adding new features, and todo!()
will be heavily utilized. The current goal is for the tool to work reliably on the developers' systems. Because of this focus, the configuration schema may change frequently and not be fully implemented. Documentation will also be postponed until much later. Until we reach the stable release of version 1.0, the tool should be considered experimental. If anyone wants to become a developer and either add new features, test it out, or just fix missing code they are welcome.
Example
Warning: this example is likely outdated
/*
This is a config file example
*/
Logix { // The root of a config is always Logix
home: UserProfile {
username: "zeldor"
name: "Zeldon Kingly"
email: "zeldor@example.com"
shell: Bash
editor: "hx"
// ssh config, using the Open SSH provider
ssh: OpenSSH {
// Use the systemd version of the agent
agent: SystemD
keys: {
github: @include("ssh-keys/github")
}
}
}
}
License
This project is licensed under either the Apache License, Version 2.0 or the MIT license, at your option. All contributions to this project must also be under the same license, unless an exception is explicitly stated at the top of the contributed file.