Go to file
Andreas Zweili 10c1e50065 Disable ensured for lsp-nix 2023-06-05 19:06:58 +02:00
custom Remove the custom.username parameter 2023-05-29 14:58:49 +02:00
home-manager Disable ensured for lsp-nix 2023-06-05 19:06:58 +02:00
lib Remove custom from everything that isn't home-manager 2023-06-05 10:40:39 +02:00
modules Move acme-base to modules/services 2023-06-05 15:58:58 +02:00
scripts Add a skip list to test_build 2023-06-05 10:09:24 +02:00
scrts Fix the DKIM setup 2023-05-16 20:30:59 +02:00
systems Move acme-base into options 2023-06-05 15:58:28 +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 Pin nixos-hardware to working commit 2023-05-22 15:34:33 +02:00
flake.nix Readd inputs 2023-05-29 15:20:49 +02:00
requirements.txt rename requirements 2021-12-20 12:23:38 +01:00
shell.nix Clean the result link after comparing the result 2023-05-27 15:42:18 +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 {
  };
}