{pkgs, ...}: { services.caddy = { enable = true; virtualHosts = { "jolheiser.com" = { extraConfig = '' handle_path /.well-known/webfinger { header Content-Type application/jrd+json respond ${builtins.toJSON { subject = "acct:john@jolheiser.com"; links = [ { rel = "http://openid.net/specs/connect/1.0/issuer"; href = "https://auth.jolheiser.com"; } ]; }} } handle_path /bennet* { root * /srv/bennet/src file_server } handle /resume* { root * ${pkgs.jolheiser.resume} rewrite /resume /resume.pdf file_server } handle { root * ${pkgs.jolheiser.website} file_server } ''; serverAliases = ["www.jolheiser.com"]; }; "go.jolheiser.com" = { extraConfig = '' header Content-Type text/html respond /* ` Redirecting to https://pkg.go.dev/go.jolheiser.com{uri} ` ''; }; "git.jolheiser.com".extraConfig = '' reverse_proxy localhost:8449 ''; "social.jolheiser.com".extraConfig = '' reverse_proxy localhost:4686 ''; "auth.jolheiser.com".extraConfig = '' reverse_proxy localhost:2884 ''; "todo.jolheiser.com".extraConfig = '' reverse_proxy localhost:8636 ''; "recipes.jolheiser.com".extraConfig = '' reverse_proxy localhost:3663 ''; }; }; }