NixOS
NixOS is a Linux distro built around the Nix package system. Nix is built around the idea of immutability. It makes all packages immutable by giving them their own directory identified by a hash that is derived from ALL of that package's dependencies. This has a number of desirable properties:
- It makes it trivial to have multiple versions of the same package installed at the same time and allows you to switch between them at will.
- It is trivial to roll back your system after a failed upgrade. Difficult system recovers after you upgrade to a new unstable version are a thing of the past.
- Non-privileged users can install software completely securely.
- Projects packaged with nix have the best possible build reproducibility because nix accounts for ALL of your dependencies all the way down to the lowest level system libraries, compilers, etc.
Whilst I don't use NixOS as my primary OS. I use nix package manager on macOS. And I am exploring using NixOS for servers I use.
NixOS Weekly is useful newsletter. NixOS MicroVMs seem neat.
Nix configs (NixOS)
- Mitchell Hashimoto - Work for both Intel and Apple Silicon. (Tweet) (NixOS VM on Mac Setup)
- Infrastructure (How to use it)
- Sridhar Ratnakumar - NixOS config, supports macOS too.
- Rehno Lindeque
- Bob nix-home
- Brian McKenna Nix Files - NixOS configuration and custom Nix derivations.
- William A. Kennington III - NixOS configurations for my local cluster of machines.
- Arian van Putten
- Michael Peyton Jones
- Grégoire Martinache's Infrastructure
- Silvan Mosberger
- Vincent Ambo's depot - Personal monorepo of my services & tools.
- Aaron Janse
- Sridhar Ratnakumar
- homelab - NixOS configurations for home servers. (Tweet)
- Henrik Lissner
- Edmund Wu
- Roman Gonzalez
- Kim Zick
- Eric Bailey
- Martin Baillie
- Alex Ermolov
- Bastian Kocher
- Structured flake-based NixOS configuration by Tony O
- chessai
- Bruno Bigras
- Thomas Honeyman
- Jorg Thalheim
- nixcfg - NixOS and Home-Manager configurations.
- Julius Bruijn
- Michael Lingelbach
- Thiago Okada
- Pablo Corral
- jkachmar
- Xe
- Eric Dallo
- Matthew Croughan
- fortune - NixOS configuration spawned from madness (home-manager and system).
- Dov Alperin
- May Niklas
- Victor Freire
- Kevin Amado
- Magnus Aasrud
- Bernardo Meurer
- Riccardo Mazzarini
- David Farley
- Jeremy Schlatter
- sioodmy
- Subin Kim
- Norbert Melzer
- Phillip Cloud
- Matei Cotocel
- Chris Montgomery
- Michael Walker
Nix configs (macOS)
- Matan Kushner
- Calum MacRae
- John Wiegley
- LnL7
- Tom's nix-configs
- Phil Pluckthun
- Nix-Darwin-Dotfiles
- Malo Bourgon
- Rin's Home
Notes
- Even if you curate your system, it gathers dust: configuration files left to rot, manually installed packages that didn't get uninstalled properly, orphaned packages difficult to track down... You could argue that it shouldn't happen in the first place, but that actually takes discipline. In NixOS, this is managed for you. Once you do nixos collect-garbage -d, you know that your system is only left with what it needs. Nothing more, nothing less.
- Many server security best practices are cheap or free by virtue of using NixOS.
Links
- PhD thesis on nixOS
- Search NixOS options
- Notes on nixOS package manager
- Why nixOS?
- Not OS - Operating system generator, based on NixOS, that, given a config, outputs a small (47 MB), read-only squashfs for a runit-based operating system, with support for iPXE and signed boot.
- NixOS 💜 Chromebook?
- NixOS Wiki
- NixOps - NixOS-based cloud deployment tool.
- NixOS Discourse forum
- Getting started with NixOS on Raspberry Pi 3 Model B+
- Collection of NixOS image builders - Allows to take the same NixOS configuration, and generate outputs for different target formats.
- HN: Guix An advanced operating system (2019)
- NixOS on ARM - WIP to cross compile NixOS to run on ARM targets.
- Arion - Run docker-compose with help from Nix/NixOS.
- Morph - Tool for managing existing NixOS hosts.
- Mobile NixOS - Goal is to get a nix-built operating system, preferably NixOS running on mobile devices, e.g. Android phones.
- Anyone using NixOS as main desktop (2019)
- NixOS: For developers (2020) (Lobsters)
- nixos-shell - Spawns lightweight nixos vms in a shell.
- Erase your darlings (2020) (HN) (Lobsters)
- Building a web app with functional programming - NixOS (2020) (HN)
- nixos-manager - Manage your NixOS graphically.
- Search NixOS packages and options (Code)
- My NixOS Desktop Flow (2020) (HN) (Lobsters)
- Is NixOS Reproducible? (Code)
- Impermanence - Modules to help you handle persistent state on systems with ephemeral root storage.
- NixOS Weekly Newsletter - Stay up to date with events, learning resources, and recent developments in NixOS community. (Code)
- Nix Community Infrastructure
- NixOS: How it works and how to install it (2020)
- Nix(OS) Thoughts (2020) (Lobsters)
- Lightweight Linux VMs on NixOS (2020)
- adhoc executable patching on nixos (2020)
- Nix Flakes: Managing NixOS systems (2020)
- NixOS Channels (2020)
- Building and Importing NixOS AMIs on EC2 (2020)
- Tailscale is magic; even more so with NixOS (2020)
- Secure, Declarative Key Management with NixOps, Pass, and nix-plugins (2018)
- nixos-install-scripts - Collection of one-shot scripts to install NixOS on various server hosters and other hardware.
- NixOS on prgmr and Failing to Learn Nix (2018) (Lobsters)
- Eight Months of NixOS (2020) (Lobsters)
- One Week of NixOS (2020) (HN) (Lobsters)
- Nixops Services on Your Home Network (2020) (Lobsters)
- sops-nix - Atomic secret provisioning for NixOS based on sops.
- NixOS infrastructure configurations
- nix-ld - Run unpatched dynamic binaries on NixOS.
- Nix(OS) Thoughts (2020) (Lobsters)
- NixOps AWS Plugin - Tool for deploying NixOS machines in a network or cloud.
- nixflk - Highly structured NixOS configuration database.
- NixOS Pre Installer - Set of modules to perform a fully automated installation of a customized NixOS system.
- krops - Lightweight toolkit to deploy NixOS systems, remotely or locally.
- TangeriNixOS - NixOS tailored for pentesting.
- Methods for building custom NixOS AMIs
- Colmena - Simple, stateless NixOS deployment tool modeled after NixOps and Morph, written in Rust.
- NixOS in the Cloud, step-by-step (2020)
- Mayflower Nix Consulting
- agenix - age-encrypted secrets for NixOS.
- nix-autobahn - Allows you to download ELF binaries and use them right away in NixOS.
- Why isn't NixOS more popular (2021)
- Server-optimized NixOS - Distribution inspired by NixOS, ChromeOS, Container Optimised Linux and Container Linux. Opinionated, server-first distribution.
- HN: NixOS Linux (2021)
- NixOps backend for Google Cloud - Tool for deploying NixOS machines in a network or cloud.
- Nixus - Experimental deployment tool for multiple NixOS systems.
- nixos.org website code
- Encrypted Secrets with NixOS (2021) (Lobsters)
- Offloading NixOS builds to a faster machine (2021)
- Why you should never ever use NixOS (2021) (Lobsters) (HN)
- NixOS on Raspberry Pi
- Learning nix workshop
- Using NixOS as a router (2021)
- Immutable Systems Infrastructure, or how to mashup Kubernetes and Nix (Lobsters)
- NixOS Flake Example - Demo NixOS config, with optional flakes support. Along with notes on why flakes is useful and worth adopting.
- Bitte - Nix Ops for Terraform, Consul, Vault, Nomad.
- nixos-up - Fastest NixOS install there is.
- Declarative Docker Container Service in NixOS (2020)
- Using Morph for Deploying to NixOS (2021)
- Show me what you run (2021)
- List of companies using NixOS technologies
- DevOS - Simple template to use, deploy and manage NixOS systems for personal and productive use. (Code) (GitHub)
- NixOS 21.05 (2021) (HN) (Lobsters)
- Nixkite - Buildkite pipeline generation tool using the NixOS module system.
- HN: NixOS-unstable’s ISO_minimal.x86_64-Linux is 100% reproducible (2021)
- MicroVM.nix - Nix Flake to build NixOS and run it on one of several Type-2 Hypervisors.
- Paranoid NixOS Setup (2021) (Lobsters)
- NixOS Ocean Sprint
- NixOS on the Framework (2021)
- NixOS-Infect - Script to install NixOS on non-NixOS hosts.
- Application Isolation using NixOS Containers (2021)
- Mobile NixOS - Superset on top of NixOS Linux, Nixpkgs and Nix, aiming to abstract away the differences between mobile devices. (Web)
- NixOS Beginner's Handbook
- Template for developing/testing NixOS modules
- Deploying a NixOS configuration into a QEMU VM (2020)
- NixOS on underpowered devices (2021)
- nix-netboot-serve - Make any NixOS system netbootable with 30s cycle times.
- Nix-Gui - Make NixOS usable for non-technical users through a settings / package management GUI. (HN)
- NixOS Configuration with Flakes (2021)
- Google Cloud “GCP” native NixOS images build (2021)
- NixOS Matrix Chat
- How I started with NixOS (2021) (Reddit)
- NixOS and the Art of OS Configuration (2018) (HN)
- nix-simple-deploy - Deploy software or an entire NixOS system configuration to another NixOS system.
- Flying Circus NixOS Platform
- Low-footprint NixOS images
- nix-alien - Run unpatched binaries on Nix/NixOS.
- extra-container - Run declarative NixOS containers without full system rebuilds.
- nix-autobahn
- homeage - Module for home-manager that enables runtime decryption of declarative age files.
- How Nix and NixOS Get So Close to Perfect (2021) (Lobsters) (HN)
- NixOps is easier than I thought (2021)
- Nix System Configuration - Declarative system configurations using nixOS, nix-darwin, and home-manager.
- bootspec - Research project that aims to improve the bootloader story in NixOS.
- NixOS: Headless Home Assistant VM (2021) (Lobsters)
- Attempts to get NixOS up on M1 Macs
- NixOS aarch64 images
- M1 dev setup using a NixOS virtual machine (2021)
- nixos-gen-config
- A second look at NixOS (2022)
- deploy - Yet another NixOS deployment tool.
- Nixinate - NixOS Deployment Tool. Generates a deployment script for each nixosConfiguration you already have in your flake.
- NixOS: The Ultimate Dev Environment? (2022) (Lobsters)
- The Curse of NixOS (2022) (HN) (Lobsters)
- How I set up a NixOS router with VPN and split routing (2021) (Reddit)
- Declarative container images with Nix - Write container images as NixOS machines.
- Building a Philosophy Workstation with NixOS: Installing Firefox, VSCodium, and LaTeX (2022)
- nix-deploy - Deploy software or an entire NixOS system configuration to another NixOS system.
- macOS to NixOS the Purely Functional Linux Distribution by Daniel Britten (2022)
- Remote, encrypted ZFS storage server with NixOS (2022)
- Plex on NixOS (2022) (Lobsters)
- NixNG - GNU/Linux distribution, which may be a considered a late sibling to NixOS.
- RPATH, or why lld doesn’t work on NixOS (2022) (HN)
- Toy highly-available Kubernetes cluster on NixOS
- Vulnix - Vulnerability (CVE) scanner for Nix/NixOS.
- ninomicro - NixOS + Nomad + Deno + Microvm.
- NixOS tutorial: one hour, hands-on
- Operating systems battle: OpenBSD vs. NixOS (2022) (HN)
- Nix-Editor - Command line utility for modifying NixOS configuration values.
- NixOS on Btrfs+tmpfs (2021) (HN)
- systemd-nix - Generate systemd units from NixOS-style descriptions.
- NixOS Host
- NixOS: Enabling LXD virtual machines using Flakes (2022)
- ragenix - Provides age-encrypted secrets for NixOS systems which live in the Nix store and are decrypted on system activation.
- NixOS Raspberry Pi Cluster - User-guide to create a Raspberry Pi (3B+, 4) cluster under NixOS and managed by NixOps.
- Gentoo and NixOS are two sides of the same coin (2022)
- Nix(OS) Thoughts (2020)
- systemd services & timers in NixOS (2022)
- NixOS cheat sheet / tutorial
- NixOS: Confederation (2022) (Lobsters)
- Config for the Community aarch64 NixOS box
- ak-nix - Various
nix
and NixOS extensions. - RedNixOS - NixOS-based 'distro' for cybersecurity enthusiasts.
- NixOS Druid - GUI for NixOS documentation + configuration.