Find a file
2021-11-03 19:35:06 +01:00
peerix Remote: Allow to manually specify a timeout. 2021-10-27 10:29:47 +02:00
.editorconfig add .editorconfig 2021-11-03 08:05:05 +01:00
.envrc Initial commit 2021-10-17 02:09:38 +02:00
.gitignore Make default.nix work. 2021-10-17 12:14:55 +02:00
COPYING Add GPL to the application 2021-10-17 16:14:07 +02:00
default.nix nix: Switch to nix-flakes. 2021-10-29 14:29:52 +02:00
flake.lock mach-nix: Remove as dependency. 2021-11-03 19:35:06 +01:00
flake.nix mach-nix: Remove as dependency. 2021-11-03 19:35:06 +01:00
module.nix fix: change publicKey type to string 2021-11-01 08:28:01 +07:00
overlay.nix add overlay 2021-11-01 08:18:12 +07:00
README.md README: Add new option 2021-10-27 10:24:36 +02:00
requirements.txt some better broadcasting. 2021-10-17 02:57:44 +02:00
setup.py Actually include some packages 2021-10-17 12:57:12 +02:00
shell.nix nix: Switch to nix-flakes. 2021-10-29 14:29:52 +02:00
VERSION fix: respect newline preferences of some editors 2021-11-02 20:43:43 +00:00

Peerix

Peerix is a peer-to-peer binary cache for nix derivations. Every participating node can pull derivations from each other instances' respective nix-stores.

How does it work?

Peerix implements a nix binary cache. When the nix package manager queries peerix, peerix will ask the network if any other peerix instances hold the package, and if some other instance holds the derivation, it will download the derivation from that instance.

Installation

There is a nix-module located at module.nix that configures your nixos-installation to automatically use peernix.

These Options exist:

Option Description
services.peerix.enable Enables Peerix
services.peerix.openFirewall Open the neccessary firewall ports.
services.peerix.user What user should the peerix service run under.
services.peerix.group What group should the peerix service run under.
services.peerix.privateKeyFile A path to the file that contains the path to the private key to sign your derivations.
services.peerix.publicKeyFile A path to the file that contains the path to the public key so nix can verify the signature.
services.peerix.publicKey Directly specifiy a public key for the binary caches.

To sign the peerix cache, you can use nix-store --generate-binary-cache-key to create keys to verify authenticity of the packages in each nix-store.