nixfiles/hosts/zora/reverse-proxy.nix
2026-04-05 12:33:55 +02:00

132 lines
3.5 KiB
Nix

{ config, ... }:
{
security.acme = {
acceptTerms = true;
defaults.email = "security@lyes.eu";
};
services.nginx = {
enable = true;
recommendedProxySettings = true;
recommendedTlsSettings = true;
virtualHosts = {
"minish.link" = {
serverAliases = [
"www.minish.link"
"minish.fr"
"www.minish.fr"
];
default = true;
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/data/www/minish.link/";
};
extraConfig = ''
error_page 404 /404.html;
'';
};
"lyes.eu" = {
serverAliases = [ "www.lyes.eu" ];
forceSSL = true;
enableACME = true;
locations."/" = {
root = "/var/data/www/lyes.eu/";
};
extraConfig = ''
error_page 404 /404.html;
'';
};
# 44300
"auth.minish.link" = {
serverAliases = [ "auth.lyes.eu" ];
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "https://${config.services.kanidm.server.settings.bindaddress}";
};
};
# 44301
"vault.minish.link" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:${toString config.services.vaultwarden.config.ROCKET_PORT}";
proxyWebsockets = true;
};
};
# 44302
"manga.minish.link" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:${toString config.services.komga.settings.server.port}";
proxyWebsockets = true;
};
};
# 44312
"dl.manga.minish.link" = {
forceSSL = true;
enableACME = true;
locations."/".proxyPass = "http://${config.networking.vpn-netns.vethIP}:${toString config.services.suwayomi-server.settings.server.port}";
};
# 44303
"git.minish.link" = {
forceSSL = true;
enableACME = true;
extraConfig = ''
client_max_body_size 512M;
'';
locations."/".proxyPass = "http://localhost:${toString config.services.forgejo.settings.server.HTTP_PORT}";
};
# 8096
"media.minish.link" = {
forceSSL = true;
enableACME = true;
locations = {
"/".proxyPass = "http://localhost:8096";
"/metrics" = {
proxyPass = "http://localhost:8096";
extraConfig = ''
allow 127.0.0.1;
allow ::1;
allow 185.230.78.13;
allow 10.13.0.0/24;
allow 10.13.9.0/24;
allow 192.168.1.0/30;
deny all;
'';
};
};
};
# 44304
"torrent.minish.link" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://${config.networking.vpn-netns.vethIP}:${toString config.services.qbittorrent.webuiPort}";
};
};
# 44305
"files.minish.link" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:${toString config.services.copyparty.settings.p}";
};
};
# 9980
"collabora.lyes.eu" = {
forceSSL = true;
enableACME = true;
locations."/" = {
proxyPass = "http://localhost:${toString config.services.collabora-online.port}";
proxyWebsockets = true; # collabora a besoin des websockets
};
};
};
};
}