A KISS deployment tool for managing NixOS fleets (servers & workstations) using a pull-based model.
Bento is a deployment tool that manages NixOS fleets, including servers and workstations, by using a pull-based model where clients regularly check a central server for configuration updates. It solves the problem of decentralized NixOS management by providing a privacy-focused, reproducible, and efficient way to keep systems synchronized. The tool ensures configurations are validated locally and deployed securely via SSH and SFTP chroots.
System administrators and DevOps engineers managing multiple NixOS systems across distributed environments, such as data centers or remote workstations. It is also suitable for developers seeking a simple, extensible deployment solution for NixOS fleets.
Developers choose Bento for its privacy-first design, pull-based architecture that avoids push-model complexities, and flexibility in deployment methods (e.g., support for tunnels like Tor or VPNs). Its reproducibility features and centralized configuration management provide peace of mind and organizational efficiency.
A KISS deployment tool to keep your NixOS fleet (servers & workstations) up to date.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Each client accesses only its own configuration files via SSH-authenticated SFTP chroots, ensuring data isolation and security, as highlighted in the privacy-first model.
Administrators can verify remote systems run identical NixOS builds to local configurations, leveraging Nix's reproducibility for peace of mind.
Configurations built centrally can serve as binary substituters for clients, reducing rebuild times and network usage, as noted in the efficient feature.
All host configurations are stored in a single repository, simplifying updates and version control for organized administration.
Components like configuration fetching can be swapped, such as using GitHub instead of SFTP, providing flexibility for diverse deployment needs.
CAVEATS note that propagating updates during a host's update can cause incorrect 'up-to-date' status, and server unreachability leads to pending logs, risking consistency.
Setting up requires editing NixOS files like fleet.nix and bento.nix, configuring SSH servers, and managing chroots, which can be daunting without extensive NixOS expertise.
The TODO list highlights missing documentation for config.sh and the lack of a comprehensive tutorial, making onboarding and troubleshooting harder for users.
The system relies on a central SSH server being online most of the time; downtime can disrupt update processes and log reporting, creating a single point of failure.