97 lines
2.1 KiB
Nix
97 lines
2.1 KiB
Nix
{ lib, config, ... }:
|
|
let
|
|
setup = import ../servers/setup.nix { inherit lib config; };
|
|
standardProxyServices = {
|
|
"firefox-syncserver" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"readeck" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"microbin" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"ryot" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"bazarr" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"shiori" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"metube" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"maloja" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"vaultwarden" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"mealie" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"kavita" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"multi-scrobbler" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"nix-serve" = {
|
|
type = "proxyReverse";
|
|
};
|
|
"audiobookshelf" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"lidarr" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"gitea" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"prowlarr" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"ombi" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"radarr" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"sonarr" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"stash" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"atticd" = {
|
|
type = "proxyReverseFix";
|
|
};
|
|
"homepage" = {
|
|
type = "proxyReversePrivate";
|
|
};
|
|
};
|
|
generateProxyConfig =
|
|
serviceName: serviceConfig:
|
|
let
|
|
cfg = config.my.servers.${serviceName};
|
|
proxyFunc =
|
|
if serviceConfig.type == "proxyReverse" then
|
|
setup.proxyReverse
|
|
else if serviceConfig.type == "proxyReverseFix" then
|
|
setup.proxyReverseFix
|
|
else if serviceConfig.type == "proxyReversePrivate" then
|
|
setup.proxyReversePrivate
|
|
else
|
|
throw "Unknown proxy type: ${serviceConfig.type}";
|
|
in
|
|
lib.nameValuePair cfg.host (lib.mkIf cfg.enableProxy (proxyFunc cfg));
|
|
standardProxyConfigs = lib.mapAttrs' generateProxyConfig standardProxyServices;
|
|
in
|
|
{
|
|
config = lib.mkIf config.my.enableProxy {
|
|
services.nginx.virtualHosts = standardProxyConfigs;
|
|
};
|
|
}
|