Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/jpetrucciani/nix
my nix modules, overlays, host configurations, and more!
https://github.com/jpetrucciani/nix
dotfiles hacktoberfest hex nix nixos pog
Last synced: 1 day ago
JSON representation
my nix modules, overlays, host configurations, and more!
- Host: GitHub
- URL: https://github.com/jpetrucciani/nix
- Owner: jpetrucciani
- License: mit
- Created: 2020-11-19T18:49:41.000Z (about 4 years ago)
- Default Branch: main
- Last Pushed: 2024-10-29T18:07:36.000Z (about 2 months ago)
- Last Synced: 2024-10-29T20:12:16.062Z (about 2 months ago)
- Topics: dotfiles, hacktoberfest, hex, nix, nixos, pog
- Language: Nix
- Homepage:
- Size: 4.68 MB
- Stars: 49
- Watchers: 4
- Forks: 3
- Open Issues: 3
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# jpetrucciani/nix
[![uses nix](https://img.shields.io/badge/uses-nix-%237EBAE4)](https://nixos.org/)
_jacobi's nixpkgs configurations, overlays, documentation, and other magic_
## interesting stuff
### [pog](https://pog.gemologic.dev/)
_note: this has moved to it's [own repo!](https://github.com/jpetrucciani/hex)_
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!](./mods/pog/) Some fun files/examples to look at:
- [aws - lots of goodies for simplifying interacting with AWS. check out the `ec2_spot_interrupt`!](./mods/pog/aws.nix)
- [dtools - docker wrapper cli tools that make it easier to interact with docker](./mods/pog/docker.nix)
- [ffmpeg - tired of trying to remember that arcane ffmpeg invocation? wrap it in pog!](./mods/pog/ffmpeg.nix)
- [ktools - kubectl wrapper cli tools that make it easier to interact with clusters and their resources](./mods/pog/k8s.nix)### [hex](https://hex.gemologic.dev/)
_note: this has moved to it's [own repo!](https://github.com/jpetrucciani/hex)!_
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](https://kubernetes.io/docs/concepts/overview/working-with-objects/)!
Check out [the hex repo](https://github.com/jpetrucciani/hex) for more context on what this can do, and how to use it!
### [pkgs](./pkgs/)
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.
### [python packages](./mods/python/)
I maintain a large number of nix python packages that are available as overlays from this repo!
### [zaddy](./mods/pkgs/zaddy.nix)
This is a custom build system for the [caddy](https://caddyserver.com/) 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](sha256-ww1mWXRKD53S8ytFbyKGn7vXZ5rJjvjOFQpdeDWJz4c=), 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
### [.github/](./.github/)
This directory contains my GitHub actions, which automatically check for updates to various sources, and rebuild and cache my nix setups for various platforms.
### [examples/](./examples/)
This directory contains examples of use of my repo as a source for other tools/environments!
### [hosts/](./hosts/)
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.
### [mods/](./mods/)
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.
### [pkgs/](./pkgs/)
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.
### [scripts/](./scripts/)
This directory contains various random scripts that I use in this repo, or in packages created by this repo.
### [secrets/](./secrets/)
This directory contains encrypted secrets for my nixos machines, using [agenix](https://github.com/ryantm/agenix).
### [default.nix](./default.nix)
This file acts as the entrypoint for nix to pin my nixpkgs version to the rev and sha256 found [in the flake.lock](./flake.lock).
### [flake.nix](./flake.nix)
My main [nix flake](https://nixos.wiki/wiki/Flakes) file
### [home.nix](./home.nix)
This file contains my main [home-manager](https://github.com/nix-community/home-manager) configuration. This includes all sorts of packages, configurations, and dotfiles for pretty much all software that I use.
### [overlays.nix](./overlays.nix)
This file declares the overlays that I apply to my pinned version of nixpkgs. This should load the files in the [mods](./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
### [awesome-nix](https://github.com/nix-community/awesome-nix)
A curated list of the best resources in the Nix community.
### [nix.dev](https://nix.dev/)
Official documentation for getting things done with Nix. ([source repo here](https://github.com/NixOS/nix.dev))
### [keith's nix repo](https://github.com/kwbauson/cfg)
[Keith](https://github.com/kwbauson/) 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's nix repo](https://github.com/wuz/prst)
[wuz](https://github.com/wuz) is a friend of mine who has some great nix modules/examples! Wuz has many examples of fully configuring things with [home-manager](https://github.com/nix-community/home-manager).
### [how to learn nix](https://ianthehenry.com/posts/how-to-learn-nix/)
an awesome blog series by [Ian Henry](https://twitter.com/ianthehenry) about learning nix.
### [nix package search](https://search.nixos.org/packages?channel=unstable)
This is the official nixpkgs search engine. I use this all the time!
### [nix-learning](https://github.com/humancalico/nix-learning)
This is a collection of other resources that are useful for getting a better understanding of nix.