No description
Find a file
2023-02-07 18:24:28 +01:00
.git-crypt Add 1 git-crypt collaborator 2019-01-16 21:24:25 +01:00
_archive chore: format with alejandra 2023-02-07 18:24:28 +01:00
certificates steveej-480s-work: add Satellite certificate 2019-02-04 09:25:13 +01:00
nix chore: format with alejandra 2023-02-07 18:24:28 +01:00
services/home-ch routers: add new and adjust justfiles 2021-06-08 14:34:17 +02:00
.envrc use niv and add device elias-e525 2022-01-16 02:01:49 +01:00
.gitattributes use git-encrypt for secrets 2018-01-26 20:37:44 +01:00
.gitignore steveej-t14: keep using master's qtile 2021-08-31 12:37:14 +02:00
.gitlab-ci.yml gitlab-ci: use custom nix-channels for CI run 2019-09-06 11:47:50 +02:00
default.nix chore: format with alejandra 2023-02-07 18:24:28 +01:00
Justfile [WIP] feat: migrate containers to vmd102066 2022-11-03 20:50:59 +01:00
README.md [WIP] feat: migrate containers to vmd102066 2022-11-03 20:50:59 +01:00
shell.nix chore: format with alejandra 2023-02-07 18:24:28 +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
  • 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
  • Maybe make this a nix-overlay
  • 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

Backup

Copy existing subvolumes to new backup target

`systemctl cat bkp-run | grep ExecStart | awk -F '=' '{print $2}'` --verbose --progress archive /var/lib/container-volumes ssh://[IP]:[PORT]/mnt/backup/container-volumes/