move some stuff into hosts/hostname/profiles
This commit is contained in:
parent
9c9a3d543c
commit
e2946e4a1f
33 changed files with 14 additions and 14 deletions
|
@ -1,73 +0,0 @@
|
|||
{
|
||||
config,
|
||||
vars,
|
||||
inputs,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (vars) domain;
|
||||
bridge = config.vpnNamespaces."wg".bridgeAddress;
|
||||
in {
|
||||
systemd.services.caddy.vpnConfinement = {
|
||||
enable = true;
|
||||
vpnNamespace = "wg";
|
||||
};
|
||||
|
||||
systemd.services.caddy = {
|
||||
environment.CADDY_ADMIN = "0.0.0.0:2019";
|
||||
serviceConfig.RuntimeDirectory = "caddy";
|
||||
};
|
||||
|
||||
services.caddy = {
|
||||
enable = true;
|
||||
globalConfig = "metrics";
|
||||
virtualHosts = let
|
||||
mkPublicEntry = name: destination: {
|
||||
hostName = "${name}.${domain}:80";
|
||||
extraConfig = ''
|
||||
reverse_proxy {
|
||||
to ${destination}
|
||||
}
|
||||
'';
|
||||
};
|
||||
mkPrivateEntry = name: destination: {
|
||||
hostName = "${name}.hopper.priv.${domain}";
|
||||
useACMEHost = domain;
|
||||
extraConfig = ''
|
||||
@blocked not remote_ip ${bridge}
|
||||
respond @blocked "limited to intranet" 403
|
||||
reverse_proxy ${destination}
|
||||
'';
|
||||
};
|
||||
in {
|
||||
navidrome = mkPublicEntry "navidrome" "${bridge}:${toString config.services.navidrome.settings.Port}";
|
||||
vaultwarden = mkPublicEntry "vw" "${bridge}:${toString config.services.vaultwarden.config.ROCKET_PORT}";
|
||||
abs = mkPublicEntry "abs" "${bridge}:${toString config.services.audiobookshelf.port}";
|
||||
|
||||
navidrome2 = mkPrivateEntry "navidrome" "${bridge}:${toString config.services.navidrome.settings.Port}";
|
||||
slskd = mkPrivateEntry "slskd" "localhost:${toString config.services.slskd.settings.web.port}";
|
||||
prometheus = mkPrivateEntry "prometheus" "${bridge}:${toString config.services.prometheus.port}";
|
||||
transmission = mkPrivateEntry "transmission" "localhost:${toString config.services.transmission.settings.rpc-port}";
|
||||
dash = mkPrivateEntry "dash" "${bridge}:${toString config.services.homepage-dashboard.listenPort}";
|
||||
absPriv = mkPrivateEntry "abs" "${bridge}:${toString config.services.audiobookshelf.port}";
|
||||
glances = mkPrivateEntry "glances" "${bridge}:${toString config.services.glances.port}";
|
||||
|
||||
base = {
|
||||
hostName = "${domain}:80";
|
||||
extraConfig = ''
|
||||
root * ${inputs.own-website.packages.${pkgs.system}.default}
|
||||
file_server
|
||||
'';
|
||||
};
|
||||
|
||||
other = {
|
||||
hostName = "*.${domain}:80";
|
||||
extraConfig = ''
|
||||
respond 404 {
|
||||
body "uhh that doesnt exist, i hope this isnt my fault.."
|
||||
}
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue