69 lines
1.6 KiB
Nix
69 lines
1.6 KiB
Nix
{
|
|
systemd.tmpfiles.rules = [
|
|
"d /var/www/jankremer.de 755 jan 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
|
|
'';
|
|
};
|
|
};
|
|
|
|
networking.firewall.allowedTCPPorts = [
|
|
80
|
|
443
|
|
8448
|
|
];
|
|
}
|