Go to file
Andreas Zweili d25b92d29b Allow the work host to access the VM 2023-07-21 08:57:27 +02:00
home-manager Enable fzf support for tmux 2023-07-20 21:00:57 +02:00
lib Begin restructering home-manager 2023-06-07 20:27:13 +02:00
modules Move tmux to home-manager 2023-07-20 21:00:28 +02:00
scripts Display a different message when rebooting 2023-06-19 11:59:04 +02:00
scrts Update secrets for staubfinger 2023-06-12 16:06:08 +02:00
systems Allow the work host to access the VM 2023-07-21 08:57:27 +02:00
.envrc extend the development environment 2022-03-18 18:06:59 +01:00
.gitignore Update gitignore 2022-11-11 20:42:52 +01:00
.gitmodules Remove unused submodule 2022-11-11 20:42:12 +01:00
LICENSE Initial commit 2021-11-15 17:43:04 +01:00
README.md Extend README 2023-05-27 17:51:15 +02:00
flake.lock Update flake 2023-07-17 10:18:20 +02:00
flake.nix First rewrite for the home-manager unstable overlay 2023-06-28 09:32:13 +02:00
requirements.txt rename requirements 2021-12-20 12:23:38 +01:00
shell.nix Add vim to the default packages 2023-06-12 15:22:45 +02:00

README.md

nixos

This repository contains my configuration for my Nixos systems. I don't provide any garantuees that it will work on other systems. In addition some of the scripts required for installation will destroy your data when used.

VM installation

This allows you to setup a VM with minimal effort. However this requires some prerequisites.

  • A VM running the minimal NixOS ISO reachable with SSH under nixos@nixos.2li.local.
  • The VM runs UEFI.
  • You've set a password for the nixos user.
  1. ./scripts/install_new_vm.sh
  2. Provide the required information and wait until the script is finished.
  3. Reboot and profit!

Raspberry Pi installation

  1. Add the new system to flake.nix.
  2. Build the image with scripts/build-raspi-image.sh SYSTEMNAME
  3. Flash the image to an SD card dd if=~/Downloads/SYSTEMNAME.img of=/dev/mmcblk0 bs=4M.
  4. After you've booted the Pi get the new SSH key with ssh-keyscan hostname.custom.domain and add it to scrts/secrets.nix.
  5. Then login into the new Pi and mount the FIRMWARE partition with sudo mkdir -p /mnt && sudo mount /dev/disk/by-label/FIRMWARE /mnt and make sure that your config.txt looks like ./systems/raspi4/config.txt
  6. Change the password

x86 installation

  1. curl https://git.2li.ch/Nebucatnetzer/nixos/archive/master.tar.gz | tar xz
  2. cd nixos && nix-shell
  3. sudo python3 scripts/format-disk.py
  4. sudo nixos-install --no-root-passwd --root /mnt --impure --flake .#SYSTEMNAME

Update remote systems

Simply run the script scripts/update_all_systems.xsh and it will iterate over all defined systems. The script requires Xonsh but can be easily adapted to BASH or similar.

Non-Nixos System

  1. scripts/install-home-manager.sh

Development

Options template

{ config, lib, pkgs, ... }:
let
  cfg = config.programs.NAME;
in
{
  options = {
    programs.NAME.enable = lib.mkEnableOption "DESCRIPTION";
  };

  config = lib.mkIf cfg.enable {
  };
}