#configuration-management #arch-linux #debian #linux #pacman #apt

bin+lib konfigkoll

Konfigkoll is a configuration management tool for Arch Linux and Debian (and derivatives)

10 releases

0.1.9 Sep 20, 2024
0.1.8 Sep 19, 2024
0.1.6 Aug 17, 2024
0.1.4 Jul 29, 2024

#307 in Unix APIs

MPL-2.0 license

590KB
13K SLoC

Konfigkoll

Documentation [ lib.rs ] [ crates.io ] [ AUR ]

Konfigkoll is a work in progress cross distro configuration manager. It aims to solve the problem "I have too many computers and want to keep the system configs in sync", rather than "I am a sysadmin and want to manage a fleet". As such it is a personal system configuration manager.

The design of konfigkoll is heavily inspired by the excellent Aconfmgr, but with a few key differences:

  • Aconfmgr is Arch Linux specific, konfigkoll aims to be cross distro (currently Arch Linux + work in progress support for Debian & derivatives).
  • Aconfmgr is written in Bash, and is rather slow. Konfigkoll is written in Rust, and is much faster.
    As an example, applying my personal config with aconfmgr on my system takes about 30 seconds, while konfigkoll takes about 2 seconds for the equivalent config. (This is assuming --trust-mtime, both are significantly slowed down if checksums are verified for every file).
  • Aconfmgr uses bash as the configuration language, konfigkoll uses [Rune].

Please see the documentation for more information.

Installed binaries

This crate consists of two binaries:

konfigkoll

This is the main binary you will be interacting with

konfigkoll-rune

This is a helper binary for [konfigkoll] that provides Rune support (the embedded scripting language used by konfigkoll) functions such as:

  • Documentation generation
  • LSP language server
  • Formatting of rune files
  • Syntax checking
  • etc

MSRV (Minimum Supported Rust Version) policy

The MSRV may be bumped as needed. It is guaranteed that this program will at least build on the current stable Rust release. An MSRV change is not considered a breaking change and as such may change even in a patch version.

What does the name mean?

konfigkoll is a Swedish for "config check/tracking", though the translation to English isn't perfect ("ha koll på" means "keep an eye on" for example). Some nuance is lost in the translation!

Dependencies

~42–77MB
~1.5M SLoC