Debian + Propellor

The Propellor configuration management system uses Haskell and Git. Each system has a list of properties, which Propellor ensures are satisfied. Linux and FreeBSD are supported.

Debian

I use Propellor to manage my Debian installation (it replaced my NixOS installation — which I reconsidered because of this: abdication of founder)

Update [za 14 dec 2024 22:45:39 CET]: I have now calmed down and returned to NixOS :-}

Update [do 24 apr 2025 10:36:36 CEST]: NixOS updates are getting increasily heavy and it's getting too much for my aging 2013 Asus N53J notebook with 8 GiB to handle (last update made my computer unusable -- i.e. unresponsive -- for at least an hour). I'm thinking about returning to Debian + Propellor. Perhaps I'll try the unstable -- 'sid' -- branch.

Setup

Install Propellor as follows:

1apt install propellor

As a regular user, initialize Propellor as follows (this creates ~/.propellor subdirectory):

1propellor --init

Do not yet attempt to run propellor!

First remove .propellor/config.hs and replace it with your own (mine is on Codeberg); also change propellor.cabal to include additional source files (mine are in a lib subdirectory) — don't forget to add any additional files to git via a git add filename command, prior to a first or next run of propellor (failure to do so appears to be recoverable only by removing /usr/local/propellor subdirectory as root). Then try to run propellor.

Configuration of /etc/ssh/sshd_config may need changing from its default to run propellor. Also see my configuration on Codeberg.

Usage

To compile your configuration but not install it, use this:

1propellor --build

To compile and install your configuration, use this:

1propellor

Configuration

API documentation for the configuration of Propellor is here: Propellor API documentation.

Quirks

Propellor typically only acts to ensure a property is met, it normally does not unact. If e.g. you have the Propellor cron functionality and remove it from your config.hs then it will no longer be installed on subsequent Propellor runs, but you'll have to remove it manually from /etc/cron.d to uninstall it. This may also apply to other and your own configuration you added.

Codeberg

photonsphere/propellor-debian