nix-config/modules/nixos/caddy.nix
2026-03-28 13:15:10 +01:00

74 lines
1.7 KiB
Nix

{
systemd.tmpfiles.rules = [
"d /var/www/jankremer.de 755 forgejo-runner users -"
];
services.caddy = {
enable = true;
virtualHosts = {
"jankremer.de:8448".extraConfig = # caddyfile
''
reverse_proxy localhost:6167
'';
"jankremer.de".extraConfig = # caddyfile
''
handle /_matrix/* {
reverse_proxy localhost:6167
}
handle /.well-known/matrix/server {
header Content-Type application/json
respond `{"m.server": "jankremer.de:443"}` 200
}
handle /.well-known/matrix/client {
header Content-Type application/json
header Access-Control-Allow-Origin *
respond `{"m.homeserver": {"base_url": "https://jankremer.de"}}` 200
}
handle {
root * /var/www/jankremer.de
file_server
@static {
path *.css *.js *.woff2 *.woff *.ttf *.png *.jpg *.jpeg *.svg *.ico *.webp
}
header @static Cache-Control "public, max-age=31536000, immutable"
@html {
path *.html
}
header @html Cache-Control "no-cache"
}
handle_errors {
rewrite * /404.html
file_server
}
'';
"git.jankremer.de".extraConfig = # caddyfile
''
reverse_proxy localhost:3000
'';
"jankremer.eu".extraConfig = # caddyfile
''
redir https://jankremer.de{uri} permanent
'';
"git.jankremer.eu".extraConfig = # caddyfile
''
redir https://git.jankremer.de{uri} permanent
'';
};
};
networking.firewall.allowedTCPPorts = [
80
443
8448
];
}