This repository contains the NixOS system and user profile configuration files for my machines. For an overview and more thorough description, read NixOS: Confederation (myme.no).
I rarely install new machines and thus haven't really invested the time to
automate this process in a good way. The steps under
Installation are most likely borken or
incomplete. Your best bet is to download and
install NixOS
following the
regular documentation, then simply build and update using
nixos-rebuild switch --flake .
.
Use a local keyboard and mouse or remote console to start up a shell on the
machine. Then add public keys as desired to .ssh/authorized_keys
for remote
access.
$ mkdir .ssh
$ curl -o .ssh/authorized_keys https://github.com/myme.keys
# shorthand for `nix develop` (with --extra-experimental-features)
./dev
The following command will prompt for one of the deploy.nodes
hosts to copy
the installation files to.
$ nixbs-copy
Alternatively export NIX_INSTALL_HOST
in the environment to override:
$ NIX_INSTALL_HOST=10.20.30.40 nixbs-copy
$ nixbs-ssh
$ cd nixos
$ ./dev
$ sudo disko ./machine/<hostname>/disk.nix
Begin the installation by invoking the install script, either on console or over
SSH
:
$ sudo nixbs-install
The command will prompt for a system profile to install.
Installing emacs
dependencies:
$ ~/.emacs.d/bin/doom sync
After launching emacs
, install all-the-icons
:
(all-the-icons-install-fonts t)
$ sudo nixos-rebuild <switch|test|build> --flake .
$ nixbs-build-home <machine>
$ ./result/activate
Either use the build-home.sh
script above or the following once Home
Manager is installed:
$ home-manager <build|switch> --flake .#<machine>