😎 A curated list of the best resources in the Nix community [maintainer=@cyntheticfox]
Go to file
2022-02-17 13:19:24 -05:00
.github/workflows Add step to link-checker to create comment if fail 2021-03-27 15:39:43 -04:00
CONTRIBUTING.md Rename contributing.md to CONTRIBUTING.md 2019-05-16 10:10:50 +01:00
LICENSE Update LICENSE 2019-05-15 16:30:55 +01:00
README.md Add base16.nix (#113) 2022-02-17 13:19:24 -05:00

Awesome Nix Awesome NixOS

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

Nix is a powerful package manager for Linux and other Unix systems that makes package management reliable and reproducible.

Please read the contribution guidelines before contributing.

Contents

Resources

Learning

  • How to Learn Nix - It's like a Let's Play, but for obscure software documentation.
  • Nix Notes - A collection of short notes about Nix, each contributing to the same virtual machine image.
  • Nix Pills - The best way to learn, with examples.
  • Nix Shorts - A collection of short notes about Nix.
  • nix.dev - An opinionated guide for developers about getting things done using the Nix ecosystem.
  • Tour of Nix - An online interactive tutorial on Nix language constructs.

Discovery

  • Hound - Handily search across all or selected Nix-related repositories.
  • Nix Package Versions - Find all versions of a package that were available in a channel and the revision you can download it from.
  • Pkgs on Nix - A database with Nix packages at all versions, from all channels.

Newsletters

  • NixOS Weekly - The newsletter to stay informed about community updates.

Installation Media

  • nixos-generators - Take a NixOS config and build multiple different images types including VirtualBox VMs, Azure images, and installation ISOs.
  • nixos-up - Super easy NixOS installer that can be used from the installation ISO.

Channel History

Deployment Tools

  • Colmena - A simple, stateless NixOS deployment tool modeled after NixOps and morph.
  • deploy-rs - A simple multi-profile Nix-flake deploy tool.
  • krops - A lightweight toolkit to deploy NixOS systems, remotely or locally.
  • KubeNix - A Kubernetes resource builder using Nix.
  • KuberNix - Single-dependency Kubernetes clusters via Nix packages.
  • morph - A tool for managing existing NixOS hosts.
  • Nixery - A Docker-compatible container registry which builds images ad-hoc via Nix.
  • NixOps - The official Nix deployment tool, compatible with AWS, Hetzner, and more.
  • nixos-shell - Simple headless VM configuration using Nix (similar to Vagrant).
  • pushnix - Simple cli utility that pushes NixOS configuration and triggers a rebuild using ssh.
  • terraform-nixos - A set of Terraform modules designed to deploy NixOS.
  • terranix - Use Nix and the NixOS module system to write your Terraform code.

Command-Line Tools

  • comma - Quickly run any binary; wraps together nix run and nix-index.
  • nixfmt - A formatter for Nix code, intended to easily apply a uniform style.
  • nixpkgs-fmt - Nix code formatter for nixpkgs.
  • nixpkgs-hammering - Beat your package expressions into a shape.
  • nix-alien - Run unpatched binaries on Nix/NixOS easily.
  • nix-diff - A tool to explain why two Nix derivations differ.
  • nix-index - Quickly locate Nix packages with specific files.
  • nix-prefetch - A universal tool for updating source checksums.
  • nix-tree - Interactively browse the dependency graph of Nix derivations.
  • statix - A linter/fixer to check for and fix antipatterns in Nix code.

Development

  • Arion - Run docker-compose with help from Nix/NixOS.
  • cached-nix-shell - A nix-shell replacement that uses caching to open subsequent shells quickly.
  • Cachix - Hosted binary cache service; free for open-source projects.
  • devshell - mkShell with extra bits and a toml config option to be able to onboard non-nix users.
  • flake-utils - Pure Nix flake utility functions to help with writing flakes.
  • gitignore.nix - The most feature-complete and easy-to-use .gitignore integration.
  • lorri - A much better nix-shell for development that augments direnv.
  • niv - Easy dependency management for Nix projects with package pinning.
  • nix-direnv - A fast loader and flake-compliant configuration for the direnv environment auto-loader.
  • nixpkgs-review - The best tool to verify that a pull-request in Nixpkgs is building properly.
  • pre-commit-hooks.nix - Run linters/formatters at commit time and on your CI.
  • robotnix - A declarative and reproducible build system for Android (AOSP) images.

Programming Languages

Arduino

  • nixduino - Nix-based tool to help build Arduino sketches.

Crystal

  • crystal2nix - Convert shard.lock into Nix expressions.

Elm

  • elm2nix - Convert elm.json into Nix expressions.

Haskell

  • cabal2nix - Converts a Cabal file into a Nix build expression.
  • haskell.nix - Alternative Haskell Infrastructure for Nixpkgs.
  • nix-haskell-mode - Automatic Haskell setup in Emacs.
  • nixkell - A Haskell project template using Nix and direnv.
  • stack2nix - Generate nix expressions for Haskell projects.

Node.js

  • Napalm - Support for building npm packages in Nix with a lightweight npm registry.
  • node2nix - Generate Nix expression from a package.json (or package-lock.json) (to be stored as files).
  • npmlock2nix - Generate Nix expressions from a package-lock.json (in-memory), primarily for web projects.
  • yarn2nix - Generate Nix expressions from a yarn.lock file.

PHP

  • composer2nix - Generate Nix expressions to build composer packages.
  • composer-plugin-nixify - Composer plugin to help with Nix packaging.
  • composition-c4 - Support for building composer packages from a composer.lock (using IFD).
  • nix-phps - Flake containing old and unmaintained PHP versions (intended for CI use).
  • nix-shell - Nix shells for PHP development.

PureScript

Python

  • mach-nix - Tool to create highly reproducible python environments.
  • poetry2nix - Build Python packages directly from Poetry's poetry.lock. No conversion step needed.
  • pypi2nix - Generate Nix expressions for Python packages.

Ruby

  • Bundix - Generates a Nix expression for your Bundler-managed application.

Rust

  • fenix - Rust toolchains and Rust analyzer nightly for nix.
  • naersk - Build Rust packages directly from Cargo.lock. No conversion step needed.
  • nix-cargo-integration - A library that allows easy and effortless integration for Cargo projects.
  • nixpkgs-mozilla - Mozilla's overlay with Rust toolchains and Firefox.
  • rust-nix-templater - Generates Nix build and development files for Rust projects.
  • rust-overlay - Pure and reproducible nix overlay of binary distributed Rust toolchains.

Scala

  • sbt-derivation - mkDerivation for sbt, similar to buildGoModule.
  • sbt-nix.g8 - giter8 template for new Scala projects with Nix support.

NixOS Modules

  • base16.nix - Flake way to theme programs in base16 colorschemes, mustache template support included.
  • musnix - Do real-time audio work in NixOS.
  • nixcloud-webservices - A Nixpkgs extension with a focus on ease of deployment of web-related technologies.
  • Simple Nixos Mailserver - A complete mailserver, managed with NixOS modules.

Overlays

  • awesome-nix-hpc - High Performance Computing package sets.
  • Home Manager - Manage your user configuration just like NixOS.
  • nix-bitcoin - Nix packages and NixOS modules for Bitcoin nodes with higher-layer protocols with an emphasis on security.
  • nix-darwin - Manage macOS configuration just like on NixOS.
  • nixpkgs-firefox-darwin - Automatically updated Firefox binary packages for macOS.
  • nixpkgs-wayland - Bleeding-edge Wayland packages.
  • NUR - Nix User Repositories. The mother of all overlays, allowing access to user repositories and installing packages via attributes.

Community