The latest stable release series is 19.09 and the latest release in that series is 19.09.840.8bf142e001b. Below are links to CD/DVD images and VirtualBox appliances containing the latest release in this series. Next Step: Manual

Installation CDs/DVDs/USB Sticks

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.

Please note that NixOS at the moment lacks a nice, user-friendly graphical installer. Therefore this form of installation may not be suitable for novice Linux users.

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

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

VirtualBox appliances

This is a demo appliance for VirtualBox (in OVA format) that has X11 and Plasma 5 enabled, as well as the VirtualBox guest additions. To use it, download the OVA file, open VirtualBox, run “File → Import Appliance” from the menu, select the OVA file, and click “Import”. You can then start the virtual machine. When the KDE login screen appears, you can log in as user demo, password demo. To obtain a root shell, run sudo -i in the KDE terminal (konsole).

Amazon EC2 AMIs

If you are an EC2 user, you can fire up a NixOS instance instantly by using one of the AMIs listed below.

RegionRoot storageVirtualisationAMI

You can create an instance using the AWS Management Console by clicking one of the Launch buttons. 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:

$ ec2-run-instances  --region eu-west-1 -k my-key-pair

Microsoft Azure BLOBs

If you are an Azure user, you can manually create a NixOS instance by using one of the bootstrap BLOBs listed below.

You can create an instance from the command line. For example, to create an instance of version 19.09 of NixOS using azure-cli, just run:

# settings
# vm name must be lowercase and letters/numbers only because it's also used as the domain name
export VM_NAME="nixosvm"
export RESOURCE_GROUP="rg-nixosvm"
export LOCATION="eastus"
export STORAGE_ACCOUNT="nixosvm"
export SOURCE_URI=""

# create group
az group create \
    --name "$RESOURCE_GROUP" \
    --location "$LOCATION

# create storage
az storage account create \
    --name "$STORAGE_ACCOUNT" \
    --group "$RESOURCE_GROUP" \
    --location "$LOCATION" \
    --sku Standard_LRS

az storage account keys list \
    --name "$STORAGE_ACCOUNT" \
    --group $RESOURCE_GROUP

# export one of the storage access keys
export STORAGE_ACCOUNT_KEY="..."
echo $STORAGE_ACCOUNT_KEY

az storage container create \
    --account-name "$STORAGE_ACCOUNT"
    --account-key "$STORAGE_ACCOUNT_KEY"
    --name vm-images

# copy the image blob
az storage blob copy start \
    --source-uri "$SOURCE_URI" \
    --destination-blob "nixos-unstable-nixops.vhd" \
    --destination-container "vm-images" \
    --account-name "$STORAGE_ACCOUNT" \
    --account-key "$STORAGE_ACCOUNT_KEY"

# wait for blob copy status to change pending->success
az storage blob show \
    --name "nixos-unstable-nixops.vhd" \
    --container-name "vm-images" \
    --account-name "$STORAGE_ACCOUNT" \
    --account-key "$STORAGE_ACCOUNT_KEY"


# create vm
az vm create \
    --name "$VM_NAME" \
    --resource-group "$RESOURCE_GROUP" \
    --location "$LOCATION" \
    --public-ip-address-dns-name "$VM_NAME" \
    --image "https://$STORAGE_ACCOUNT.blob.core.windows.net/vm-images/nixos-unstable-nixops.vhd" \
    --storage-account "$STORAGE_ACCOUNT" \
    --storage-container-name "$VM_NAME" \
    --use-unmanaged-disk \
    --os-disk-size-gb "32" \
    --os-type linux \
    --admin-username "azureuser" \
    --generate-ssh-keys

# show machine properties and log in
az vm show \
    --name "$VM" \
    --resource-group "$GROUP"

ssh azureuser@"$VM_NAME"."$LOCATION".cloudapp.azure.com

Unstable releases

If you are a developer who wants to contribute to NixOS, or if you just want the latest and greatest, you can also install the most recent unstable release.