Push your build artifacts to one place.
All the files in https://cache.nixos.org are packed in NAR files which makes them not directly accessible. This service allows to download, decompress, unpack and serve any file in the cache on the fly.
Inside the provided nix shell run:
./start-dev
This will create a small local server with live reload that emulates now.sh.
Currently, the default port is 8383. You can change it by setting the PORT
environment variable, or HTTP_ADDR
to also change the bind address.
Store contents can be fetched via a simple HTTP GET request.
Append any store path to the hostname to fetch and unpack it on the fly. That's it.
E.g.:
NAR archives also contain information about the executable bit for each contained file.
nar-serve uses a custom HTTP header named NAR-executable
to indicate whether the fetched file would be executable.
You can use the following environment variables to configure nar-serve:
Name | Default value | Description |
---|---|---|
PORT |
8383 |
Port number on which nar-service listens |
HTTP_ADDR |
:$PORT |
HTTP address to bind the server to. When set, takes precedence over $PORT. |
NIX_CACHE_URL |
https://cache.nixos.org |
The URL of the Nix store from which NARs are fetched |
DOMAIN |
"" | When set, also serve <nar-hash>.$DOMAIN paths. |
Contributions are welcome!
Before adding any new feature it might be best to first discuss them by creating a new issue in https://github.com/numtide/nar-serve/issues .
All code is licensed under the Apache 2.0 license.