No description
Find a file
2024-02-08 21:04:39 +01:00
.git-crypt Add 1 git-crypt collaborator 2019-01-16 21:24:25 +01:00
.vscode feat(router0-dmz0): AP with dynamic vlan filtering on central bridge 2023-12-28 10:38:38 +00:00
_archive/environments feat: flakify, gnome3 2023-04-21 22:15:34 +02:00
flake-sandbox feat: flakify, gnome3 2023-04-21 22:15:34 +02:00
nix WIP: x13s: install to nvme, refactor into module 2024-02-08 21:04:39 +01:00
scripts feat(Justfile): cachix recipe and apply locally without ssh 2023-05-23 18:09:54 +02:00
secrets WIP: x13s: install to nvme, refactor into module 2024-02-08 21:04:39 +01:00
services/home-ch routers: add new and adjust justfiles 2021-06-08 14:34:17 +02:00
.envrc feat: flakify, gnome3 2023-04-21 22:15:34 +02:00
.gitattributes use git-encrypt for secrets 2018-01-26 20:37:44 +01:00
.gitignore feat: flakify, gnome3 2023-04-21 22:15:34 +02:00
.gitlab-ci.yml gitlab-ci: use custom nix-channels for CI run 2019-09-06 11:47:50 +02:00
.sops.yaml WIP: x13s: install to nvme, refactor into module 2024-02-08 21:04:39 +01:00
default.nix feat: flakify, gnome3 2023-04-21 22:15:34 +02:00
flake.lock WIP: x13s: install to nvme, refactor into module 2024-02-08 21:04:39 +01:00
flake.nix WIP: x13s: install to nvme, refactor into module 2024-02-08 21:04:39 +01:00
Justfile WIP everything 2024-01-18 19:06:42 +01:00
README.md WIP everything 2024-01-18 19:06:42 +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
)