os/hosts/flora-6/caddy.nix

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

109 lines
2.7 KiB
Nix
Raw Normal View History

2022-11-27 22:31:08 +00:00
{
2023-01-28 22:51:33 +00:00
config,
lib,
pkgs,
self,
...
}: {
# Changing the Caddyfile should only trigger a reload, not a restart
systemd.services.caddy.reloadTriggers = [
config.services.caddy.configFile
];
2022-11-27 22:31:08 +00:00
services.caddy = {
enable = lib.mkForce true;
group = "hakkonaut";
2022-11-27 22:31:08 +00:00
email = "admins@pub.solar";
globalConfig = lib.mkForce "";
virtualHosts = {
"pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
# PubSolarOS images
handle /os/download/* {
root * /srv/www
file_server /os/download/* browse
}
# serve base domain pub.solar for mastodon.pub.solar
# https://masto.host/mastodon-usernames-different-from-the-domain-used-for-installation/
handle /.well-known/host-meta {
redir https://mastodon.pub.solar{uri}
}
2023-02-27 22:12:05 +00:00
# redirect to statutes
2023-03-01 21:16:49 +00:00
redir /satzung https://cloud.pub.solar/s/2tRCP9aZFCiWxQy temporary
2023-02-27 22:12:05 +00:00
# pub.solar website
handle {
root * /srv/www/pub.solar
try_files {path}.html {path}
file_server
}
# minimal error handling, respond with status code and text
handle_errors {
respond "{http.error.status_code} {http.error.status_text}"
}
'';
};
"www.pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
redir https://pub.solar{uri}
'';
};
2022-11-27 22:31:08 +00:00
"auth.pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
redir / /realms/pub.solar/account temporary
2022-11-27 22:31:08 +00:00
reverse_proxy :8080
'';
};
"git.pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
redir /user/login /user/oauth2/keycloak temporary
2022-11-27 22:31:08 +00:00
reverse_proxy :3000
'';
};
2023-01-28 20:26:13 +00:00
"ci.pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
reverse_proxy :4000
'';
};
"list.pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
handle_path /static/* {
root * /var/lib/mailman-web-static
file_server
}
reverse_proxy :18507
'';
};
"obs-portal.pub.solar" = {
logFormat = lib.mkForce ''
output discard
'';
extraConfig = ''
reverse_proxy obs-portal.svc.e5756d08-36fd-424b-f8bc-acdb92ca7b82.lev-1.int.greenbaum.zone:3000
'';
};
2022-11-27 22:31:08 +00:00
};
};
2023-01-28 22:51:33 +00:00
networking.firewall.allowedTCPPorts = [80 443];
2022-11-27 22:31:08 +00:00
}