{ config, pkgs, ... }: { services.caddy = { enable = true; virtualHosts = let conduitCfg = config.services.matrix-conduit.settings.global; forgejoCfg = config.services.gitea.settings.server; dn = config.constants.domain; lh = config.constants.localhost; in { "forgejo.${dn}".extraConfig = '' reverse_proxy ${forgejoCfg.HTTP_ADDR}:${toString forgejoCfg.HTTP_PORT} ''; "jellyfin.${dn}".extraConfig = '' reverse_proxy ${lh}:8096 ''; "matrix.${dn}".extraConfig = '' reverse_proxy /_matrix/* ${conduitCfg.address}:${toString conduitCfg.port} file_server { root ${pkgs.cinny} } ''; }; }; }