Install Nix via the recommended multi-user installation:

$ sh <(curl -L --daemon

We recommend the multi-user install if you are on Linux running systemd, with SELinux disabled and you can authenticate with sudo.

Single-user installation

Install Nix via the single-user installation:

$ sh <(curl -L --no-daemon

Above command will perform a single-user installation of Nix, meaning that nix is owned by the invoking user. You should run this under your usual user account, not as root. The script will invoke sudo to create /nix if it doesn’t already exist.

Which type of installation should you choose?

This depends on your requirements, but here is a short list of reasons why we recommend multi-user installation:


  • Better build isolation (and that is what Nix is all about)
  • Better security (a build can not write somewhere in your home)
  • Sharing builds between users


  • Requires root to run the daemon
  • More involved installation (creation of nixbld* users, installing a systemd unit, …
  • Harder to uninstall

Multi-user installation

Install Nix via the recommended multi-user installation:

$ sh <(curl -L

We believe we have ironed out how to cleanly support the read-only root on modern macOS. Please consult the manual on details what the installation script does.

Multi-user installation (Requires WSL with systemd enabled)

WSL versions 0.67.6 and above has systemd support. Follow Microsoft’s systemd guide to configure it, and then install Nix using:

$ sh <(curl -L --daemon

Single-user installation

Install Nix via the single-user installation

$ sh <(curl -L --no-daemon

Start a Docker shell with Nix:

$ docker run -it nixos/nix

Or start a Docker shell with Nix exposing a workdir directory:

$ mkdir workdir
$ docker run -it -v $(pwd)/workdir:/workdir nixos/nix

The workdir example from above can be also used to start hacking on nixpkgs:

$ git clone --depth=1
$ docker run -it -v $(pwd)/nixpkgs:/nixpkgs nixos/nix
docker> nix-build -I nixpkgs=/nixpkgs -A hello
docker> find ./result # this symlink points to the build package



You can install NixOS on physical hardware by burning one of the CD images onto a blank CD/DVD disk, or by copying it onto a USB stick. For installation instructions, please see the manual.

Graphical ISO image

The graphical installation ISO image contains the graphical NixOS installer as well as a Desktop Environment and several applications. It’s a live CD, so it allows you to get an impression of NixOS (and the Nix package manager) without installing it.

Note that while the image itself only comes in GNOME and Plasma variations, the included installer also allows installing various other desktops, or installing without a desktop.

Minimal ISO image

The minimal installation ISO image does not contain the graphical user interface, and is therefore a lot smaller. You have to run the installer from the console. It contains a number of rescue tools.

This is a demo appliance

for VirtualBox (in OVA format).

VirtualBox image includes the Plasma Desktop (was KDE) as well as the VirtualBox guest additions.

To use it

  • Download the OVA file using the button above.
  • Open VirtualBox.
  • Run File → Import Appliance from the menu.
  • Select previously downloaded OVA file.
  • Click Import.
  • You can then start the virtual machine.
  • You can log in as user demo, password demo.
  • To obtain a root shell, run sudo -i in the terminal (konsole).

NixOS can be deployed to Amazon EC2 with a pre-generated AMI image that you can select below.

Via AWS Management Console

You can create an instance using the AWS Management Console by selecting the region and clicking the Launch button.

Choose region:
Root storage Virtualisation AMI
EBS EBS ami-0df2f7b42bfbd53e5
EBS EBS ami-07ba84d7321f6f4bb
EBS EBS ami-0e37827874573dbbf
EBS EBS ami-0ff5b3b7738651895
EBS EBS ami-0a7861571eb44c70c
EBS EBS ami-05c4802ca81d7c95b
EBS EBS ami-0aee8193da16bd2db
EBS EBS ami-008be032289f60d16
EBS EBS ami-033debde7c1659c96
EBS EBS ami-031821b5f83896474
EBS EBS ami-0d6ee9d5e1c985df6
EBS EBS ami-0cecb1f67b2a837f6
EBS EBS ami-0f9fee15eb5a64ac4
EBS EBS ami-0fc7825fe890f87d1
EBS EBS ami-0e62fef78d2c4f031
EBS EBS ami-01a6e4c1659b08390
EBS EBS ami-0a01a7eeffa8f0fd5
EBS EBS ami-09a1760227f929ccf
EBS EBS ami-07df5833f04703a2a
EBS EBS ami-04dd2f100d9665df5
EBS EBS ami-0fe502361fea4216c
EBS EBS ami-0749963dd978a57c7

Via Command Line

You can also create an instance from the command line. For example, to create an instance in region eu-west-1 using the EC2 API tools, just run:

$ nix-shell -p ec2_api_tools
(nix-shell) $ ec2-run-instances ami-0fc7825fe890f87d1 --region eu-west-1 -k my-key-pair