Skip to main content
Ctrl+K
nix.dev

Official documentation for getting things done with Nix.

Ctrl+K
  • Install Nix
  • Tutorials
    • First steps
      • Ad hoc shell environments
      • Reproducible interpreted scripts
      • Declarative shell environments
      • Towards reproducibility: pinning Nixpkgs
    • Nix language basics
    • Packaging existing software
    • Package parameters and overrides with callPackage
    • Working with local files
    • Cross compilation
    • Module system
      • 1. A basic module
      • 2. Module system deep dive
    • NixOS
      • NixOS virtual machines
      • Building a bootable ISO image
      • Building and running Docker images
      • Integration testing with NixOS virtual machines
      • Provisioning remote machines via SSH
      • Installing NixOS on a Raspberry Pi
      • Deploying NixOS using Terraform
      • Setting up an HTTP binary cache
      • Setting up distributed builds
  • Guides
    • Recipes
      • Configure Nix to use a custom binary cache
      • Automatic environments
      • Dependencies in the development shell
      • Managing remote sources
      • Python development environment
      • Setting up post-build hooks
      • Continuous integration with GitHub Actions
    • Best practices
    • Troubleshooting
    • Frequently Asked Questions
  • Reference
    • Glossary
    • Nix reference manual
      • Nix pre-release (development)
      • Nix 2.29 (latest)
      • Nix 2.28 (in Nixpkgs rolling)
      • Nix 2.28 (in Nixpkgs 25.05)
      • Nix 2.24 (in Nixpkgs 24.11)
    • Nixpkgs manual
    • NixOS manual
    • Community projects
    • Support tools
    • Further reading
    • Pinning Nixpkgs
  • Concepts
    • Flakes
    • Frequently Asked Questions
  • Contributing
    • How to contribute
    • How to get help
    • Contributing documentation
      • Documentation resources
      • Documentation framework
      • Style guide
      • How to write a tutorial
  • Acknowledgements

nix.dev as PDF

  • .md

Guides

Guides#

These sections contains guides to getting things done.

  • Recipes
    • Configure Nix to use a custom binary cache
    • Automatic environments
    • Dependencies in the development shell
    • Managing remote sources
    • Python development environment
    • Setting up post-build hooks
    • Continuous integration with GitHub Actions
  • Best practices
    • URLs
    • Recursive attribute set rec { ... }
    • with scopes
    • <...> lookup paths
    • Reproducible Nixpkgs configuration
    • Updating nested attribute sets
    • Reproducible source paths
  • Troubleshooting
    • What to do if a binary cache is down or unreachable?
    • How to force Nix to re-check if something exists in the binary cache?
    • How to fix: error: querying path in database: database disk image is malformed
    • How to fix: error: current Nix store schema is version 10, but I only support 7
    • How to fix: writing to file: Connection reset by peer
    • macOS update breaks Nix installation
  • Frequently Asked Questions
    • Nix
    • NixOS

previous

Setting up distributed builds

next

Recipes

By the Nix documentation team and contributors.

© Copyright 2016-2025, NixOS Foundation.