Skip to content

ryantking/workshop

Repository files navigation

.....__.................._........_.................
...././.................|.|......|.|................
..././_......_____.._.__|.|._____|.|__...___.._.__..
.././\.\./\././._.\|.'__|.|/./.__|.'_.\./._.\|.'_.\.
././..\.V..V./.(_).|.|..|...<\__.\.|.|.|.(_).|.|_).|
/_/....\_/\_/.\___/|_|..|_|\_\___/_|.|_|\___/|..__/.
..............................................|.|...
..............................................|_|...

https://builtwithnix.org/badge.svg

A monorepo that serves as my digital workshop.

Goal of this Repository

The goal of this repository is for it be a single entrypoint into my development workflow. I should be able to boot up a new computer pull this repo, and have my computer ready for development in little more than the time it takes to install Nix itself.

Directory Structure

I designed the directory structure in this repo to rhyme with the standard Linux directory structure.

/bin
Scripts and any other custom executables that I want in my system path.
/etc
All configuration files that I write/edit by hand.
/src
Source code for projects.
/lib
Libraries that tools in /src and /bin have access to.
/usr
Read-only data.
/var
Data that applications write that I want in git.

Tools

nix
The core of the configuration is a Nix flake.
nvfetcher
Generate Nix packages for things not in nixpkgs.
go
Writing scripts and other utilities.
agenix
Encrypting configuration files with private information.
direnv
Basically just autoloads the nix shell.