Freedom251 › Build Cache Software
nix-serve

What nix-serve is
nix-serve runs a Nix store as a standalone binary cache server. Other Nix installations can use its URL as a substituter, allowing them to obtain store paths from the cache. The project’s example starts it with `nix run github:edolstra/nix-serve` and serves on localhost port 5000; `nix store ping --store http://localhost:5000` checks that it is responding. Nix users connect to the cache by passing its URL with `--substituters`. The usage instructions assume a flake-enabled version of Nix, and the documented deployment is a locally run, self-hosted server for Linux. Cache signing is supported through a generated key pair and the `NIX_SECRET_KEY_FILE` environment variable. Served store paths can be verified with `nix verify` and a trusted public key. nix-serve uses the Starman web server, whose additional flags are relevant to server configuration; the README gives `--access-log /dev/stderr` as an example. The project is open source under the LGPL-2.1 license and is available free of charge. Its repository is published under the edolstra GitHub account.
Who it suits
nix-serve suits Nix users who want to operate a self-hosted binary cache and make its store paths available to other Nix installations. It is especially relevant when a flake-enabled Nix setup and cache signing or verification are part of the deployment.
What it does well
- Serves a Nix store as a binary cache for other Nix installations.
- Connects to Nix through the `--substituters` option.
- Documents signing and verification with key pairs.
- Free and open source under LGPL-2.1.
- Starman flags include an access-log example.
What to know first
- Usage instructions assume a flake-enabled version of Nix.
- The documented deployment is Linux and self-hosted.
Plans
| Plan | Billed and limits | Price |
|---|---|---|
| nix-serve | Standalone Nix binary cache server · LGPL-2.1 license | Free |
As github.com lists them, read 9 Oct 2026. The maker's own page has the final word.
Getting started
- Use a flake-enabled version of Nix.
- Run `nix run github:edolstra/nix-serve` to start the server locally on port 5000.
- Check the server with `nix store ping --store http://localhost:5000`.
- Pass the server URL to other Nix installations with `--substituters`.
- Optionally configure cache signing with a generated key pair and `NIX_SECRET_KEY_FILE`.
- Verify served store paths with `nix verify` and a trusted public key.
Verdict
Choose nix-serve if you want a free, open-source server for sharing a Nix store as a binary cache. Its documented setup assumes flake-enabled Nix and a Linux self-hosted deployment, so it is not a fit for users seeking a hosted service or another platform.
Questions
What does nix-serve do?
It serves a Nix store as a binary cache that other Nix installations can use as a substituter.
What does nix-serve cost?
The plan is free.
Is nix-serve open source?
Yes. The project is under the LGPL-2.1 license.
What platform does it support?
The listed platforms are Linux and self-hosted use.
What Nix setup does it require?
Its usage instructions assume a flake-enabled version of Nix.
Can I sign and verify the cache?
The documentation describes signing with a generated key pair and `NIX_SECRET_KEY_FILE`, and verifying store paths with `nix verify` and a trusted public key.
Facts from nix-serve's own pages
- Access logging
- The README gives `--access-log /dev/stderr` as an example Starman flag. · github.com, 9 Oct 2026
- Cache check
- The README shows checking the server with `nix store ping --store http://localhost:5000`. · github.com, 8 Oct 2026
- Cache integration
- Other Nix installations can use the cache by passing its URL to `--substituters`. · github.com, 9 Oct 2026
- Cache signing
- The README documents signing the binary cache using a generated key pair and the `NIX_SECRET_KEY_FILE` environment variable. · github.com, 9 Oct 2026
- Check server
- The README shows checking the server with `nix store ping --store http://localhost:5000`. · github.com, 9 Oct 2026
- Deployment
- The README describes running nix-serve locally as a standalone binary cache server. · github.com, 9 Oct 2026
- License
- The repository lists the project under the LGPL-2.1 license. · github.com, 9 Oct 2026
- Maintainer
- The repository owner is Eelco Dolstra, whose GitHub profile lists Utrecht, Netherlands. · github.com, 8 Oct 2026
- Nix integration
- The README says to pass the server URL to Nix with `--substituters` to use the cache. · github.com, 8 Oct 2026
- Nix requirement
- The usage instructions assume a flake-enabled version of Nix. · github.com, 8 Oct 2026
- Publisher
- The repository is under the GitHub account edolstra. · github.com, 9 Oct 2026
- Purpose
- nix-serve serves a Nix store as a binary cache that other Nix installations can use as a substituter. · github.com, 9 Oct 2026
- Requirements
- The usage instructions assume a flake-enabled version of Nix. · github.com, 9 Oct 2026
- Run
- The README shows starting it with `nix run github:edolstra/nix-serve`, serving on localhost port 5000. · github.com, 9 Oct 2026
- Signature verification
- The README shows verifying served store paths with `nix verify` and the cache's trusted public key. · github.com, 9 Oct 2026
- Signing
- The README explains how to sign the binary cache using a generated key pair and `NIX_SECRET_KEY_FILE`. · github.com, 8 Oct 2026
- Standalone server
- The project describes nix-serve as a standalone Nix binary cache server. · github.com, 8 Oct 2026
- Start command
- The README shows starting the server with `nix run github:edolstra/nix-serve`, serving on localhost port 5000. · github.com, 8 Oct 2026
- Web server
- nix-serve uses the Starman web server and accepts additional Starman flags. · github.com, 9 Oct 2026
Where nix-serve stands on Freedom251
- Build Cache Software#16 of 23