home

My NixOS systems configurations.
Log | Files | Refs | LICENSE

install.sh (1396B)


      1 #! /usr/bin/env nix-shell
      2 #! nix-shell -i bash -p git
      3 # This scripts tries to automate the NixOS installation
      4 # as much as possible.
      5 # curl https://gitlab.com/vdemeester/home/-/raw/master/install.sh | sh
      6 
      7 set -eo pipefail
      8 
      9 read -p "Hostname: " name
     10 read -p "Disk:" disk
     11 read -p "Swap size (8GiB)": swap
     12 swap=${swap:-8GiB}
     13 
     14 echo "Partiton disk"
     15 set -x
     16 
     17 parted ${disk} -- mklabel gpt
     18 parted ${disk} -- mkpart primary 512MiB -${swap}
     19 parted ${disk} -- mkpart primary linux-swap -${swap} 100%
     20 parted ${disk} -- mkpart ESP fat32 1MiB 512MiB
     21 parted ${disk} -- set 3 boot on
     22 
     23 set +x
     24 echo "Format partiion"
     25 set -x
     26 
     27 mkfs.ext4 -L nixos ${disk}1
     28 mkswap -L swap ${disk}2
     29 mkfs.fat -F 32 -n boot ${disk}3
     30 sleep 20
     31 
     32 set +x
     33 echo "Mount filesystems"
     34 set -x
     35 
     36 mount /dev/disk/by-label/nixos /mnt
     37 mkdir -p /mnt/boot
     38 mount /dev/disk/by-label/boot /mnt/boot
     39 swapon ${disk}2
     40 
     41 set +x
     42 echo "Setup configuration"
     43 set -x
     44 
     45 mkdir -p /mnt/etc
     46 git clone --recurse-submodules https://gitlab.com/vdemeester/home.git /mnt/etc/nixos
     47 echo -n ${name} > /mnt/etc/nixos/hostname
     48 nixos-generate-config --root /mnt
     49 
     50 set +x
     51 echo "Run the following:"
     52 echo "- populate assets/ folder"
     53 echo "- do last minutes changes"
     54 echo "Once you are done, just exit the shell (C-D or exit)"
     55 bash || true
     56 
     57 echo "Run nixos-install"
     58 set -x
     59 nixos-install --channel $(nix eval --raw '(import /mnt/etc/nixos/nix/sources.nix).nixos.outPath') --no-channel-copy