dotfiles/nixos/cache-server.nix

46 lines
1.1 KiB
Nix
Raw Permalink Normal View History

2023-08-27 19:03:24 -06:00
{ config, makeEnable, lib, ... }:
with lib;
let cfg = config.modules.cache-server;
in
{
options = {
modules.cache-server = {
enable = mkEnableOption "nix cache server";
port = mkOption {
type = types.int;
default = 8080;
};
host-string = mkOption {
type = types.string;
default = "0.0.0.0";
};
path = mkOption {
type = types.string;
default = "/";
};
};
2023-08-22 17:11:37 -06:00
};
2023-08-27 19:03:24 -06:00
config = mkIf cfg.enable {
age.secrets."cache-priv-key.pem".file = ./secrets/cache-priv-key.pem.age;
services.nix-serve = {
enable = true;
secretKeyFile = config.age.secrets."cache-priv-key.pem".path;
port = 5050;
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
virtualHosts = {
"${cfg.host-string}" = {
locations."${cfg.path}".proxyPass = "http://${config.services.nix-serve.bindAddress}:${toString config.services.nix-serve.port}";
listen = [ { addr = "0.0.0.0"; port = cfg.port; } ];
};
2023-08-22 17:11:37 -06:00
};
};
};
}
2023-08-27 19:03:24 -06:00