87 lines
1.6 KiB
Nix
87 lines
1.6 KiB
Nix
{
|
|
config,
|
|
inputs,
|
|
lib,
|
|
}:
|
|
let
|
|
inherit (inputs.self.lib)
|
|
enableList
|
|
mkEnabled
|
|
mkEnabledWithProxy
|
|
mkEnabledWithUsers
|
|
;
|
|
wgServerIp = config.my.ips.wg-server;
|
|
mkEnabledProxyIp = inputs.self.lib.mkEnabledProxyIp wgServerIp;
|
|
mkEnabledProxySocketIp = name: {
|
|
inherit name;
|
|
value = {
|
|
enableProxy = true;
|
|
enableSocket = true;
|
|
ip = wgServerIp;
|
|
};
|
|
};
|
|
baseToggles = {
|
|
services = enableList mkEnabled [
|
|
"network"
|
|
"wireguard"
|
|
];
|
|
shell = enableList mkEnabledWithUsers [
|
|
"multimedia"
|
|
"tools"
|
|
];
|
|
dev = enableList mkEnabledWithUsers [
|
|
"nix"
|
|
"sh"
|
|
];
|
|
apps.dictionaries = {
|
|
enable = true;
|
|
users = "jawz";
|
|
};
|
|
};
|
|
secureToggles = {
|
|
enableProxy = true;
|
|
enableContainers = true;
|
|
websites = {
|
|
portfolio.enableProxy = true;
|
|
lidarrMbReport.enableProxy = true;
|
|
};
|
|
servers =
|
|
enableList mkEnabledWithProxy [
|
|
"isso"
|
|
"microbin"
|
|
]
|
|
// enableList mkEnabledProxySocketIp [
|
|
"audiobookshelf"
|
|
"collabora"
|
|
"jellyfin"
|
|
"nextcloud"
|
|
"plausible"
|
|
"plex"
|
|
]
|
|
// enableList mkEnabledProxyIp [
|
|
"atticd"
|
|
"bazarr"
|
|
"gitea"
|
|
"homepage"
|
|
"kavita"
|
|
"keycloak"
|
|
"lidarr"
|
|
"linkwarden"
|
|
"maloja"
|
|
"mealie"
|
|
"metube"
|
|
"multi-scrobbler"
|
|
"oauth2-proxy"
|
|
"prowlarr"
|
|
"radarr"
|
|
"sonarr"
|
|
"vaultwarden"
|
|
"yamtrack"
|
|
];
|
|
};
|
|
in
|
|
lib.mkMerge [
|
|
baseToggles
|
|
(lib.mkIf config.my.secureHost secureToggles)
|
|
]
|