jacobi's nixpkgs configurations, overlays, documentation, and other magic
note: this has moved to it's own repo!
This set of nix functions has proven to be extremely useful to me - it is a quick CLI tool generator that leverages the power of nix!
See many examples of how it can be used here! Some fun files/examples to look at:
- aws - lots of goodies for simplifying interacting with AWS. check out the
ec2_spot_interrupt
! - dtools - docker wrapper cli tools that make it easier to interact with docker
- ffmpeg - tired of trying to remember that arcane ffmpeg invocation? wrap it in pog!
- ktools - kubectl wrapper cli tools that make it easier to interact with clusters and their resources
note: this has moved to it's own repo!!
Hex is a nix module system that allows us to create powerful abstractions of other languages and configurations via nix! At the moment, this is the most useful for things like kubernetes specs!
Check out the hex repo for more context on what this can do, and how to use it!
This directory contains custom top level packages that I maintain. These will resemble packages that are stored in nixpkgs directly, and are exposed at the top level of pkgs
inside my flake/module.
I maintain a large number of nix python packages that are available as overlays from this repo!
This is a custom build system for the caddy web server that supports including caddy plugins as part of nix derivations! You can build your own (check out the examples in that module), or use one of my presets zaddy
(caddy with caddy-security, an s3 proxy, geoip blocking, some of my own plugins, etc.) and zaddy-browser
(just caddy-security and s3 plugins). I also maintain a list of popular plugins that can be included in your build.
This directory contains my GitHub actions, which automatically check for updates to various sources, and rebuild and cache my nix setups for various platforms.
This directory contains examples of use of my repo as a source for other tools/environments!
This directory contains my NixOS configurations for each of my NixOS machines, as well as a common.nix
file that contains shared configurations for my servers/clients.
This directory contains my overlays for nixpkgs, but configured in a way that others can reuse specific parts of my overlays if they'd like to use this repo as a source.
This directory contains nix packages that I've built that might not be yet ready for nixpkgs proper, or that don't make sense to open as a PR to nixpkgs proper.
This directory contains various random scripts that I use in this repo, or in packages created by this repo.
This directory contains encrypted secrets for my nixos machines, using agenix.
This file acts as the entrypoint for nix to pin my nixpkgs version to the rev and sha256 found in the flake.lock.
My main nix flake file
This file contains my main home-manager configuration. This includes all sorts of packages, configurations, and dotfiles for pretty much all software that I use.
This file declares the overlays that I apply to my pinned version of nixpkgs. This should load the files in the mods directory, which are overlay functions which apply to my nixpkgs object in nix. note that this file is much more verbose than required! personally, I prefer the explicitness here
A curated list of the best resources in the Nix community.
Official documentation for getting things done with Nix. (source repo here)
Keith is a friend of mine and is the person who first introduced me to nix - his repo has been a great thing to explore to learn more about what is possible.
wuz is a friend of mine who has some great nix modules/examples! Wuz has many examples of fully configuring things with home-manager.
an awesome blog series by Ian Henry about learning nix.
This is the official nixpkgs search engine. I use this all the time!
This is a collection of other resources that are useful for getting a better understanding of nix.