NixOS is a purely functional Linux distribution. It can be found on nixos.org. A main reason to use NixOS is because it is completely declarative, which makes upgrading systems more reliable, and provides many other advantages too. This guide will show you how to install NixOS on AKLWEB HOST.
Go to “My Servers > ISOs” in the AKLWEB Host dashboard. Add the following URL as an ISO.
https://nixos.org/releases/nixos/14.12/nixos-14.12.526.98b8eb6/nixos-minimal-14.12.526.98b8eb6-x86_64-linux.iso
The md5 must match “fe8cc2c587ddb14be447d14f1f380e5a”. Newer releases may be available on the official site.
Go to “Deploy”, use the location of your choice, select “x64”, and pick “Custom”. Then, choose “Virtual ISO” and select the just uploaded ISO.
Place your order.
After the VPS has finished launching, go to “Manage”, then open “View Console”.
Login as “root”, no password.
Partition the disk.
fdisk /dev/vda
# create a primary partition
# use the "n" key, select "p" for primary, and the first partition (1).
# Select the suggested values for the size.
# Activate the partition, use "a", select the defaults.
# Write the changes to disk, using "w"
Format the disk.
mkfs.btrfs /dev/vda1 -Lroot
# It's possible to use ext4 instead of btrfs:
# mkfs.ext4 /dev/vda1 -Lroot
Mount the disk.
mount /dev/disk/by-label/root /mnt
Generate the basic configuration.
nixos-generate-config --root /mnt
Edit the newly generated configuration.
$EDITOR /mnt/etc/nixos/configuration.nix
Change the following values. For more options, you can look at the NixOS Manual: Options.
# Set the grub bootloader device to the correct
boot.loader.grub.device = "/dev/vda";
# Enable openssh
services.openssh.enable = true;
# Disable root login
services.openssh.permitRootLogin = "no";
# Add a user:
users.extraUsers.nixos = {
uid = 1000;
password = "nixos"; # Set this to something more secure.
extraGroups = ["wheel"];
useDefaultShell = true;
};
nixos-install
# It will download the packages, install grub and set a root password.
If you have made a mistake, nixos-install
will throw an error. Edit the /mnt/etc/nixos/configuration.nix
file again. nixos-install
can be run as many times as necessary.
Go back to the dashboard, and remove the ISO.
Reboot the instance.
SSH to the machine.
# Use the password set in `users.extraUsers.nixos.password`.
ssh nixos@IP
Open the AKLWEB Host dashboard and click on “Snapshot”. This will save a snapshot of your NixOS installation. From now on, you can deploy NixOS from a snapshot.