Harmonia v2.0.0 release

Harmonia is a binary cache that serves /nix/store over HTTP to other machines.

Harmonia now includes built-in zstd compression for content. If you previously had the nginx zstd module configured, you can safely remove it. Nix will automatically utilize compression when it is available.

This release eliminates libnix dependencies from Harmonia, meaning there is no longer any “unsafe” code in its source tree, except for a single call to libsodium for signing. Instead, Harmonia now uses the nix-daemon protocol whenever it needs to interact with Nix.

27 Likes

Is there any potential downsides to running this alongside ncps on the same machine with the same nix-store?

Just curious as they do (if I understand correctly) seem to compliment one another.

If so, would I need to make any particular adjustments to the recommended configuration in Harmonia’s README?

A link, just in case you didn’t recognize the name :slightly_smiling_face:

1 Like

I think they can be combined, but I never tried that. Only caveat might be that at least when I checked ncps supports less features i.e no logs or nar listing, so you might loose that.

2 Likes

In my experience, they complement each other very nicely. In fact, the NixOS tests for NCPS use Harmonia to test substitution. (I learned this while working on tests for substitution over 802.11s mesh). :smile:

1 Like

Thanks @Mic92 and @numinit - really appreciate the feedback… I’ll give it a shot!:+1: