fuuko/binary-cache: Add nar-serve
This commit is contained in:
parent
8d9e3af211
commit
5dff1a426f
|
@ -8,7 +8,7 @@
|
||||||
# ${XDG_CACHE_HOME:-$HOME/.cache}/.cache/nix/binary-cache-v6.sqlite and does
|
# ${XDG_CACHE_HOME:-$HOME/.cache}/.cache/nix/binary-cache-v6.sqlite and does
|
||||||
# not re-check or invalidate them. Devices that often are not at home should
|
# not re-check or invalidate them. Devices that often are not at home should
|
||||||
# ensure that the cached priority is 50 to avoid slow substitutions.
|
# ensure that the cached priority is 50 to avoid slow substitutions.
|
||||||
{ config, lib, ... }:
|
{ config, lib, pkgs, ... }:
|
||||||
let
|
let
|
||||||
binaryCachePath = "/data/cache/nix-binary-cache";
|
binaryCachePath = "/data/cache/nix-binary-cache";
|
||||||
in
|
in
|
||||||
|
@ -52,9 +52,43 @@ in
|
||||||
auth_basic_user_file ${config.sops.secrets.nix-binary-cache-htpasswd.path};
|
auth_basic_user_file ${config.sops.secrets.nix-binary-cache-htpasswd.path};
|
||||||
}
|
}
|
||||||
'';
|
'';
|
||||||
|
"/nix/store/".proxyPass = "http://localhost:${config.systemd.services.nar-serve.environment.PORT}";
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
systemd.services.nginx.serviceConfig.ReadWritePaths = lib.singleton binaryCachePath;
|
systemd.services.nginx.serviceConfig.ReadWritePaths = lib.singleton binaryCachePath;
|
||||||
|
|
||||||
|
# TODO 21.05: Replace with upstream module
|
||||||
|
systemd.services.nar-serve =
|
||||||
|
let
|
||||||
|
# TODO: remove once new version is released and in nixpkgs
|
||||||
|
nar-serve = pkgs.unstable.nar-serve.overrideAttrs (o: o // {
|
||||||
|
version = "unstable-2021-04-08";
|
||||||
|
|
||||||
|
src = pkgs.fetchFromGitHub {
|
||||||
|
owner = "numtide";
|
||||||
|
repo = "nar-serve";
|
||||||
|
rev = "4243b0efa41910dfa4be8b9936ae460699d3f8f0";
|
||||||
|
sha256 = "0mjs3yilf5rixm67wk4h4jji54dsc0w3vfxd561pvfbxplbmgh3c";
|
||||||
|
};
|
||||||
|
});
|
||||||
|
in
|
||||||
|
{
|
||||||
|
after = [ "network.target" ];
|
||||||
|
wantedBy = [ "multi-user.target" ];
|
||||||
|
|
||||||
|
environment = {
|
||||||
|
PORT = "8383";
|
||||||
|
NAR_CACHE_URL = "file://${binaryCachePath}";
|
||||||
|
};
|
||||||
|
|
||||||
|
serviceConfig = {
|
||||||
|
Restart = "always";
|
||||||
|
RestartSec = "5s";
|
||||||
|
ExecStart = "${nar-serve}/bin/nar-serve";
|
||||||
|
DynamicUser = true;
|
||||||
|
StandardOutput = "null"; # nar-server logs multiple lines on every request
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue