mirror of
https://gitlab.com/upRootNutrition/dotfiles.git
synced 2025-12-14 02:20:53 -06:00
54 lines
1.4 KiB
Nix
Executable file
54 lines
1.4 KiB
Nix
Executable file
{
|
|
config,
|
|
flake,
|
|
...
|
|
}:
|
|
let
|
|
inherit (flake.config.services) instances;
|
|
serviceCfg = instances.vaultwarden;
|
|
interface0Cfg = serviceCfg.interfaces.interface0;
|
|
interface1Cfg = serviceCfg.interfaces.interface1;
|
|
host0 = interface0Cfg.domain;
|
|
host1 = "${interface1Cfg.subdomain}.${flake.inputs.linkpage.secrets.domains.projectsite}";
|
|
dns0 = instances.web.dns.provider0;
|
|
dns0Path = "dns/${dns0}";
|
|
dns1 = instances.web.dns.provider1;
|
|
dns1Path = "dns/${dns1}";
|
|
|
|
in
|
|
{
|
|
security.acme.certs = {
|
|
"${host0}" = {
|
|
dnsProvider = dns0;
|
|
environmentFile = config.sops.secrets.${dns0Path}.path;
|
|
group = "caddy";
|
|
};
|
|
"${host1}" = {
|
|
dnsProvider = dns1;
|
|
environmentFile = config.sops.secrets.${dns1Path}.path;
|
|
group = "caddy";
|
|
};
|
|
};
|
|
|
|
services.caddy.virtualHosts = {
|
|
"${host0}" = {
|
|
extraConfig = ''
|
|
reverse_proxy ${interface0Cfg.microvm.ip}:${toString serviceCfg.ports.port0} {
|
|
header_up X-Real-IP {remote_host}
|
|
}
|
|
tls ${interface0Cfg.ssl.cert} ${interface0Cfg.ssl.key}
|
|
encode zstd gzip
|
|
'';
|
|
};
|
|
"${host1}" = {
|
|
extraConfig = ''
|
|
reverse_proxy ${interface1Cfg.microvm.ip}:${toString serviceCfg.ports.port0} {
|
|
header_up X-Real-IP {remote_host}
|
|
}
|
|
tls /var/lib/acme/${host1}/fullchain.pem /var/lib/acme/${host1}/key.pem
|
|
encode zstd gzip
|
|
'';
|
|
};
|
|
|
|
};
|
|
}
|