Manage declarative NixOS containers without full system rebuilds, combining declarative options with imperative speed.
extra-container is a command-line tool that allows users to manage declarative NixOS containers without performing full system rebuilds. It solves the performance bottleneck of traditional declarative containers by using a reduced module evaluation, enabling fast container updates and experimentation. This makes it ideal for systems with many containers or developers iterating on single containers.
NixOS system administrators and developers who need to manage multiple containers efficiently, especially those working in environments where rapid container configuration changes are required.
Developers choose extra-container because it combines the comprehensive configuration options of declarative NixOS containers with the speed of imperative management, eliminating slow rebuilds. Its shell integration and private network helpers further streamline container workflows.
Run declarative NixOS containers without full system rebuilds
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Applies container configurations instantly without full NixOS system rebuilds by using a reduced module set, speeding up experimentation as highlighted in the implementation section.
Offers helper options like addressPrefix and enableWAN to easily set up private network containers, reducing manual configuration effort as described in the private network helper.
Provides a shell with helper functions (e.g., 'c' command, SSH access) and automatic updates on config changes, enhancing developer workflow for rapid iteration.
Allows defining containers using Nix Flakes for reproducible configurations, aligning with contemporary Nix practices as shown in the examples.
Requires NixOS or a systemd-based Linux with Nix installed, limiting portability and adding complexity for users outside the Nix ecosystem.
Shell containers are auto-destroyed by default, which can disrupt stateful applications unless explicitly disabled with --no-destroy, as noted in the shell documentation.
Installation on other distros involves running a script that edits /etc/sudoers, which may raise security or maintenance concerns for system administrators.