update-daemon is a oneshot "daemon" that updates Nix flakes in multiple repositories and sends "pull requests" (currently github and gitlab supported).
The recommended way to set up update-daemon is by using the provided NixOS module. It also serves as documentation for config file fields, in case you want to configure the daemon manually.
- Currently, update-daemon runs as root and uses
/root/.cache/update-daemon
for caching repositories; - By default, configuration will be read from
$XDG_CONFIG_HOME/update-daemon/config.json
, but you can override that by providing the configuration as a CLI argument; - Flakes are fetched and updated in parallel;
- In case any of the flakes fail to update, update-daemon will exit with a non-zero exit code (but still finish updating all the other flakes), and submit an error report either as a comment on the PR or the issue;
- In case the PR already exists, update-daemon will force-push a single commit there, unless "human" commits are on the same branch compared to master, in which case it will fail.
nix develop
(or nix-shell
) should drop you in a shell with all the
tools needed for hacking on update-daemon in PATH
. Otherwise, install
rustc
and cargo
manually, and make sure you have unstable nix
and
git
in PATH
.
Currently, there are tests for flake lock parsing, diffing and display.
To run them, cargo check
.
update-daemon is maintained and funded with ❤️ by Serokell The names and logo for Serokell are trademark of Serokell OÜ.
We love open source software! See our other projects or hire us to design, develop and grow your idea!