comin is a deployment tool working in the pull mode. Running on a machine, it periodically polls Git repositories and deploys the NixOS configuration associated to the machine.
- Git push to deploy NixOS configurations
- Support testing branches to try changes
- Poll multiple Git remotes to avoid SPOF
- Support machines migrations
- Fast iterations with local remotes
In your configuration.nix
file:
services.comin = {
enable = true;
remotes = [
{
name = "origin";
url = "https://gitlab.com/your/infra.git";
}
]
};
This enables a systemd service, which periodically pulls the main
branch of the repository https://gitlab.com/your/infra.git
and
deploys the NixOS configuration corresponding to the machine hostname.
A new commit in the main
branch of the repository
https://gitlab.com/your/infra.git
is then deployed in the next 60
seconds.