Skip to content

wandering aimlessly throughout a vast wilderness of calamitous intent

Notifications You must be signed in to change notification settings

jkachmar/termina

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

I Fucking Hate Dotfiles

Link standing on the Great Plateau, from Breath of the Wild, looking out over Hyrule

TL;DR

A mix of system- & user-level configurations for the machines that I administer; shared here for convenience and in case anyone else finds them useful.

Structure

  • flake/ - "flake modules" to be used with flake-parts
  • config/
    • shared/ - settings shared between system & user configs
    • system/ - system-level configuration options (Nix itself, dev tools, services)
      • macos/ - macOS system-level configs (homebrew, app store, dock, inputs)
    • user/ - user-level configuration (i.e. dotfile management)
  • disks/ - declarative disk partition configuration, courtesy of disko
  • profiles/ - collections of configuration options from which high-level system "profiles" are comprised
    • e.g. profiles/user/base.nix is a user-level profile for all systems
  • hosts/ - system & user configs for the different hosts administered here
  • modules/ - custom modules used in system- or user-level configuration
  • overlays/ - just what it says: any overlays that should be applied to the package sets used herein
  • scripts/ - shell scripts & other utilities

NOTES

TODO
  • init with colmena
  • test out remote builds
    • a macOS host should be able to deploy a config to a NixOS/Linux target
  • test out binfmt emulation
    • a x86_64-linux host should be able to build an aarch64-linux deployment locally (i.e. cross-arch) and then deploy it to a target
    • try this out with some native images for a Raspberry Pi built on an x86_64-linux machine
  • minimize plaintext keys stored on device with secrets
    • plaintext keys should only decrypt system partitions
    • all data partitions (and associated services) await some corresponding systemd unit, which indicates that the secret has been supplied
    • MVP is just reading from some plaintext files on the host
    • later iteration
    • be very careful to always permit SSH access (leave allowed public keys in the config file) so as to avoid having to manually connect up to the machine and debug

About

wandering aimlessly throughout a vast wilderness of calamitous intent

Topics

Resources

Stars

Watchers

Forks