Harmonia: Difference between revisions
Appearance
No edit summary |
No edit summary |
||
| Line 10: | Line 10: | ||
services.harmonia = { | services.harmonia = { | ||
enable = true; | enable = true; | ||
signKeyPaths = [ "/var/lib/harmonia/cache-priv-key.pem" ]; | |||
}; | }; | ||
</syntaxhighlight>The cache will be served on http://127.0.0.1:5000. It should be served with a web server such as [[Caddy]]. | </syntaxhighlight>The cache will be served on http://127.0.0.1:5000. It should be served with a web server such as [[Caddy]]. | ||
Revision as of 12:15, 20 October 2026
harmonia is a small utility to serve a Nix store as a binary cache, allowing it to be used as a substituter by other Nix installations.
Setup
First generate required public and private store keys, in this example for the domain cache.example.org.
mkdir -p /var/lib/harmonia
nix-store --generate-binary-cache-key cache.example.org-1 \
/var/lib/harmonia/cache-priv-key.pem \
/var/lib/harmonia/cache-pub-key.pem
Add following snippet to your system configuration and apply it.
services.harmonia = {
enable = true;
signKeyPaths = [ "/var/lib/harmonia/cache-priv-key.pem" ];
};
The cache will be served on http://127.0.0.1:5000. It should be served with a web server such as Caddy.
services.caddy = {
enable = true;
openFirewall = true;
virtualHosts."cache.example.org".extraConfig = ''
reverse_proxy 127.0.0.1:5000
'';
};
Visit https://cache.example.org where you'll also find instructions on how to setup the cache on a client.