Nix and NixOS

Declarative VMs: Because infrastructure should be simple

UA2.118 (Henriot)
Martin Messer
<p>Have you ever felt the need for a virtual machine in your NixOS server environment? Maybe the functionality you want is not available in NixOS? Maybe there’s a custom OS image for a service you want to provide? Maybe you just want to securely isolate your workload? NixOS promises reproducible and declarative systems, but for VMs it just wasn’t there yet. To close this gap we built the <code>ctrl-os.vms</code> NixOS module, a solution to define generic virtual machines directly in your NixOS configuration. It works just like <code>virtualisation.oci-containers</code>, but for VMs instead of containers. 20 lines of Nix make it possible to run any Linux distribution you want as a VM on your NixOS host. To put a cherry on top you can use <code>cloud-init</code>, from our NixOS configuration to configure your guests declaratively, too! <code>ctrl-os.vms</code> is part of the <a href="https://github.com/cyberus-ctrl-os/ctrl-os-modules">ctrl-os-modules</a> repository.</p>

Additional information

Live Stream https://live.fosdem.org/watch/ua2118
Type devroom
Language English

More sessions

1/31/26
Nix and NixOS
UA2.118 (Henriot)
<p>devroom opening</p>
1/31/26
Nix and NixOS
Philippe Ombredanne
UA2.118 (Henriot)
<p>Nixpkgs is massive with the largest, most up-to-date collection of Nix packages, powering reproducible systems and forming the backbone of many projects. But there's a problem: Nix packages' license metadata is a mess. </p> <p>Nix's license tracking uses a custom license ID system that doesn't match the best practice of using SPDX license expressions standards, inconsistently referencing SPDX or ScanCode LicenseDB. The metadata often falls out of sync with the actual code or misrepresents ...
1/31/26
Nix and NixOS
UA2.118 (Henriot)
<p>Since 2015, IndieHosters has specialized in hosting and making accessible free software as a service, from blogs and forums to wikis and online collaboration tools, with a core mission to enable people and organizations to always keep control over their data and privacy in order to achieve data sovereignty.</p> <p>To support this mission, we created libre.sh, a framework of tools that enables us to host free software at scale. It has evolved quite a bit since our initial talk at FOSDEM 2017. ...
1/31/26
Nix and NixOS
Ryan Gibb
UA2.118 (Henriot)
<p>Our digital lives are increasingly fragmented across numerous centralised online services. This model concentrates power, leaving us with minimal technical control over our personal data and online identities. The long-term permanence of these platforms is uncertain, and their commercial incentives are often misaligned with user interests. We propose inverting this model: instead of centralising our data in proprietary silos, let’s centralise our presence under our own control using open, ...
1/31/26
Nix and NixOS
Lars
UA2.118 (Henriot)
<p>With TAPPaaS we are building a small, composable private cloud for homes, communities and small organisations. It should feel like an enterprise‑grade packaged solution, but be built fully with FOSS and declarative Nix/NixOS tooling. Our current design is a 2‑node cluster with a third backup node, using Proxmox as cluster manager, NixOS and flakes for all VMs running platform services. All changes go through GitOps workflows, and services are packaged as NixOS modules that share central ...
1/31/26
Nix and NixOS
Bruce Gain
UA2.118 (Henriot)
<p>Reproducibility remains one of the largest challenges in benchmarking distributed systems, especially when hardware, kernel settings, and dependency versions vary between tests. This talk presents a NixOS-based approach for constructing deterministic, portable benchmark environments for large-scale data infrastructure. We show how Nix’s declarative system configuration, content-addressed builds, and reproducible packaging model allow engineers to isolate performance variables and eliminate ...
1/31/26
Nix and NixOS
UA2.118 (Henriot)
<p>NixOS reproducibility monitoring has historically been limited to the ISO images we ship, because they are a package set small enough to be rebuilt on a single machine. In this talk, we introduce <a href="https://github.com/nix-community/lila">LILA</a>, a decentralized reproducibility monitoring infrastructure for the NixOS community, aimed at removing this limit and allowing a collaborative monitoring of the entirety of nixpkgs!</p>