Go to file
Andreas Zweili 8cb97ad3fc Add f2fs to desktop systems 2024-01-10 22:03:54 +01:00
home-manager Unify the initrd ssh config 2024-01-09 21:59:57 +01:00
lib Add overlay for freshrss 2024-01-08 19:38:41 +01:00
modules Rewrite format-sdcard.py to use f2fs 2024-01-10 22:03:54 +01:00
scripts Rewrite format-sdcard.py to use f2fs 2024-01-10 22:03:54 +01:00
scrts Switch from nixpkgs-fmt to nixfmt 2024-01-01 13:14:24 +01:00
systems Add f2fs to desktop systems 2024-01-10 22:03:54 +01:00
.editorconfig Extend editorconfig 2023-12-04 13:01:55 +01:00
.envrc Make the management scripts easier to use 2023-12-04 13:01:55 +01:00
.gitignore Ignore flycheck files 2023-11-08 20:02:10 +01:00
.gitmodules Add copilot 2023-12-13 14:56:21 +01:00
LICENSE Initial commit 2021-11-15 17:43:04 +01:00
README.md Finalise UEFI support for Raspberry Pi 4 2024-01-09 21:57:51 +01:00
flake.lock Update flake 2024-01-08 19:55:51 +01:00
flake.nix Add management profile to test-raspi 2024-01-09 21:57:51 +01:00
setup-shell.nix Finalise UEFI support for Raspberry Pi 4 2024-01-09 21:57:51 +01:00
shell.nix Add pylsp to nix-shell 2024-01-10 22:03:54 +01: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.

Preparation

On a PC you don't have to do anything special.

For a Raspberry Pi you need to prepare the SD card first with a UEFI partition. On a PC navigate into this project and run the following commands:

  • nix-shell
  • sudo create-uefi-partition.sh

This will format the SD card at /dev/mmcblk0, create a partition and download and copy all the required files for running UEFI on a Pi 4.

Installation

  1. Insert an USB stick with the latest NixOS ISO into your device.
  2. curl https://git.2li.ch/Nebucatnetzer/nixos/archive/master.tar.gz | tar xz
  3. cd nixos && nix-shell setup-shell.nix
  4. For a normal PC run: sudo ./scripts/format-disk.py on a Raspberry Pi 4 run: sudo ./scripts/format-sdcard.py
  5. sudo nixos-install --no-root-passwd --root /mnt --impure --flake .#SYSTEMNAME

When everything is finished you can reboot the system and remove the USB stick. You have now a fully encrypted NixOS system.

Update remote systems

Simply run the script scripts/remote_switch.sh and it will iterate over all defined systems. With the option -r the systems will reboot as well.

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 {
  };
}