dotnix/machines/dragonwell/caddy.nix

60 lines
1.8 KiB
Nix

{
pkgs,
lib,
...
}: let
packages = ["tmpl" "git-age" "ffmd" "kv"];
in {
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://git.jojodev.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 / `<html><head><title>Go Packages</title></head><body><ul>${lib.strings.concatMapStrings (pkg: "<li><a href=\"${pkg}\">${pkg}</a></li>") packages}</ul></body></html>`
''
+ lib.strings.concatMapStrings (pkg: ''
respond /${pkg}* `<html><head>
<meta name="go-import" content="git.jojodev.com/jolheiser/${pkg} git https://git.jojodev.com/jolheiser/${pkg}.git">
<meta http-equiv="refresh" content="3; url=https://pkg.go.dev/go.jolheiser.com/${pkg}" />
</head><body>
Redirecting to <a href="https://pkg.go.dev/go.jolheiser.com/${pkg}">https://pkg.go.dev/go.jolheiser.com/${pkg}</a>
</body></html>`
'')
packages;
};
};
};
}