No description
Find a file
2025-03-29 15:49:54 +01:00
.git-crypt Add 1 git-crypt collaborator 2019-01-16 21:24:25 +01:00
.vscode chore: bump and reconfigure treefmt-nix, include just fmt 2025-02-14 16:49:27 +01:00
misc/x13s_bt_firmware feat: remove executable bit on x13s bt fw 2024-08-04 14:49:06 +02:00
nix feat: use kanidm from nixpkgs-unstable 2025-03-29 15:49:54 +01:00
oci/user-ubuntu feat(oci): add user-ubuntu with nix user install 2024-10-13 20:30:23 +02:00
scripts feat: introduce treefmt and fmt all 2024-11-15 11:45:00 +01:00
secrets chore: bump and reconfigure treefmt-nix, include just fmt 2025-02-14 16:49:27 +01:00
services/home-ch chore: bump and reconfigure treefmt-nix, include just fmt 2025-02-14 16:49:27 +01:00
.envrc bump nix_direnv 2025-02-14 16:46:06 +01:00
.gitattributes use git-encrypt for secrets 2018-01-26 20:37:44 +01:00
.gitignore git: ignore debug-logs 2024-12-23 14:10:28 +01:00
.sops.yaml chore(router0-dmz0): update and rotate key 2024-12-24 20:40:26 +01:00
default.nix feat: introduce treefmt and fmt all 2024-11-15 11:45:00 +01:00
flake.lock use gimp for wayland from an upstream PR 2025-02-14 16:49:32 +01:00
flake.nix use gimp for wayland from an upstream PR 2025-02-14 16:49:32 +01:00
Justfile chore: bump and reconfigure treefmt-nix, include just fmt 2025-02-14 16:49:27 +01:00
README.md feat: introduce treefmt and fmt all 2024-11-15 11:45:00 +01:00

steveej's infra

This repository helps me to manage all computer infrastructure. This is mostly achieved with the help of Nix.

In the unlikely case that you actually read this and have any questions please don't hesitate to reach out.

Initial Roadmap

  • All graphical systems (incl. install media) must have

    • Full-disk encryption by default
    • Yubikey support with SSH auth
  • Migrate all devices to new structure

    • Encrypted Install media
    • steveej-laptop
    • steveej-laptop-work
  • Migrate home environment to new structure

    • home-manager
    • pkgs-configuration
    • development environments
  • (Semi-) automatic synchronization of important repositories

    • Modification strategy The approach is to use vcsh for the dotfiles
    • dotfiles
  • Toplevel Justfile for simple actions

    • mount/umount disks
    • install to mounted disk
    • rebuild running system
    • update running system
    • annotate recipes with some documentation
    • declare shell.nix with runtime deps
    • partition/encrypt/format disks
  • Maybe make this a nix-overlay

  • refactor as a nix flake and adopt an existing framework

    • devShell version
    • version templating obsolete due to the usage of flakes
    • elias-e525
    • steveej-t14
    • contabo vps
    • sj-pve0
  • use an existing secret management framework

  • adapt (or abandon?) just recipes

    • rebuild-this-device
    • update-this-device
    • rebuild-remote-device
    • update-remote-device

    evaluate, and understand a path to using these tools in a pull-based fashion:

  • 🚧 find a better alternative for the qtile-desktop current issues:

    • floating windows often get lost in the background
    • plugging in-/out- screen crashes the desktop

    evaluate:

    • 🚧 gnome3 + pop-shell
    • leftwm + eww (+ wayland?)
  • (Re-)document bootstrap process

    • apt install sudo cryptsetup as a requirements on a deb admin machine
    • a new machine
    • an install media
  • Design disaster recovery

  • Automatic synchronization of other state files - see https://gitlab.com/steveeJ/nix-expressions/issues/2

  • Recycle _archived

  • container migrations

    • ensure DDNS is updated before the containers are started

Bugs

  • home-manager leaves ~/.gnupg at 0755

Usage

(These are reminders for my future self)

just --list

Bootstrap

A new machine

  • ensure the dotfiles repo has a branch with the new machine's hostname

  • boot with an install media and go through setup

Post-Install Setup

  • chmod --recursive g-rwx,o-rwx ~/.gnupg
  • gpg2 --edit-card; fetch
  • clone password-manager and infra repositories
  • gpg2: ultimately trust my own key

Swapping out a disk

  1. offline-bitwise copy of drive
  2. disconnect remove the previous drive
  3. replace the driveId in the device's hw.nix
  4. run the just disk-relabel nix/os/devices/<deviceName> <prevDiskId> command to rename the filesystem and volume group

Rebuilding an offline system

(
sudo cryptsetup open /dev/sdb3 steveej-t14s-cryptroot
sleep 5

sudo mkdir -p /mnt/root
sudo mount /dev/mapper/nvme--WD_BLACK_SN850X_4000GB_2227DT443901-root /mnt/root -o subvol=nixos
sudo mount /dev/sdb2 /mnt/root/boot
sudo mount /dev/mapper/nvme--WD_BLACK_SN850X_4000GB_2227DT443901-root /mnt/root/home -o subvol=home

sudo nixos-install -v --flake .#steveej-t14 --root /mnt/root/ --no-root-password
)