A pull-mode GitOps deployment tool for NixOS (and nix-darwin) machines that polls Git repositories to apply configurations.
Comin is a GitOps deployment tool specifically designed for NixOS machines that operates in pull mode. It runs as a service on NixOS systems, periodically polling Git repositories and automatically deploying the appropriate NixOS configuration for each machine. This solves the problem of managing NixOS deployments at scale by bringing Git-based workflows and automation to NixOS configuration management.
NixOS system administrators and infrastructure engineers who manage multiple NixOS machines and want to implement GitOps practices for configuration deployment.
Developers choose Comin because it provides a native GitOps solution for NixOS with pull-mode architecture, avoiding the need for external deployment servers. Its tight integration with NixOS, support for both flake and non-flake configurations, and multiple Git remote capabilities make it uniquely suited for reliable NixOS infrastructure management.
GitOps For NixOS Machines
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Enables automatic NixOS deployments on Git commits, reducing manual intervention as demonstrated in the quick start where a commit triggers deployment within 60 seconds.
Works with both flake and non-flake Nix configurations, accommodating legacy and modern setups without forcing migration, per the features list.
Supports dedicated testing branches for trying configuration changes before production, minimizing risks in deployment pipelines as highlighted in the howtos.
Polls multiple Git remotes to avoid single points of failure, ensuring deployment reliability even if one repository is unavailable.
Exposes Prometheus metrics for monitoring deployment status and system health, aiding operational oversight without additional tools.
Only compatible with NixOS and nix-darwin, making it useless for heterogeneous environments or other OS configuration management.
Requires understanding NixOS modules and flake setups for initial configuration, which can be steep for those new to Nix's declarative style.
Operates on periodic polling (default 60 seconds), introducing delays compared to event-driven systems, which might not suit time-sensitive deployments.
Optional Git commit signature verification adds setup complexity, and misconfigured access controls could lead to unauthorized changes.