Skip to content

my nix modules, overlays, host configurations, and more!

License

Notifications You must be signed in to change notification settings

jpetrucciani/nix

Repository files navigation

uses nix

jacobi's nixpkgs configurations, overlays, documentation, and other magic

interesting stuff

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 directory for more context on what this can do, and how to use it!

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:

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.

directories

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


other great resources

A curated list of the best resources in the Nix community.

Official documentation for getting things done with Nix. (source repo here)

Keith 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.

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.

About

my nix modules, overlays, host configurations, and more!

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Languages