feat(caddy): add novnc

This commit is contained in:
2026-05-24 19:53:29 +02:00
parent 36974581fd
commit 3c7f5750b9
+76 -36
View File
@@ -1,47 +1,87 @@
{ config, ... }:
{ {
services.caddy = { pkgs,
enable = true; config,
virtualHosts = { currentSystemUser,
"patrickcanal.it".extraConfig = '' ...
root /var/www/patrickcanal.it/public }:
file_server {
services.caddy =
let
basicAuth = ''
basicauth {
${currentSystemUser} $2a$14$L6SBwu.0FhGBYwH2LWa6uOrBSeRHo8Lo95Vkle/g5uB7kZl7nmJPO
}
''; '';
"vaultwarden.patrickcanal.it".extraConfig = '' in
{
enable = true;
virtualHosts = {
"patrickcanal.it".extraConfig = ''
root /var/www/patrickcanal.it/public
file_server
'';
"novnc.patrickcanal.it".extraConfig = ''
handle {
${basicAuth}
root ${pkgs.novnc}/share/webapps/novnc
file_server browse
}
handle /websockify {
${basicAuth}
reverse_proxy 127.0.0.1:6080
}
'';
"vaultwarden.patrickcanal.it".extraConfig = ''
encode zstd gzip encode zstd gzip
reverse_proxy :${toString config.services.vaultwarden.config.ROCKET_PORT} { reverse_proxy :${toString config.services.vaultwarden.config.ROCKET_PORT} {
header_up X-Real-IP {remote_host} header_up X-Real-IP {remote_host}
} }
''; '';
"gitea.patrickcanal.it".extraConfig = '' "gitea.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.services.gitea.settings.server.HTTP_PORT} reverse_proxy :${toString config.services.gitea.settings.server.HTTP_PORT}
''; '';
"nextcloud.patrickcanal.it".extraConfig = '' "nextcloud.patrickcanal.it".extraConfig = ''
reverse_proxy :8004 reverse_proxy :8004
''; '';
"octoprint.patrickcanal.it".extraConfig = '' "octoprint.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.services.octoprint.port} reverse_proxy :${toString config.services.octoprint.port}
''; '';
"vikunja.patrickcanal.it".extraConfig = '' "vikunja.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.services.vikunja.port} reverse_proxy :${toString config.services.vikunja.port}
''; '';
"jellyfin.patrickcanal.it".extraConfig = '' "jellyfin.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.jellyfin.network.internalHttpPort} reverse_proxy :${toString config.nixflix.jellyfin.network.internalHttpPort}
''; '';
"qbittorrent.patrickcanal.it".extraConfig = '' "qbittorrent.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.downloadarr.qbittorrent.port} reverse_proxy :${toString config.nixflix.downloadarr.qbittorrent.port}
''; '';
"radarr.patrickcanal.it".extraConfig = '' "radarr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.radarr.settings.server.port} reverse_proxy :${toString config.nixflix.radarr.settings.server.port}
''; '';
"sonarr.patrickcanal.it".extraConfig = '' "sonarr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.sonarr.settings.server.port} reverse_proxy :${toString config.nixflix.sonarr.settings.server.port}
''; '';
"prowlarr.patrickcanal.it".extraConfig = '' "prowlarr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.prowlarr.settings.server.port} reverse_proxy :${toString config.nixflix.prowlarr.settings.server.port}
''; '';
"seerr.patrickcanal.it".extraConfig = '' "seerr.patrickcanal.it".extraConfig = ''
reverse_proxy :${toString config.nixflix.seerr.port} reverse_proxy :${toString config.nixflix.seerr.port}
'';
};
};
systemd.services.websockify = {
description = "Websockify for noVNC";
after = [ "network.target" ];
wantedBy = [ "multi-user.target" ];
serviceConfig = {
Restart = "always";
User = "nobody";
ExecStart = ''
${pkgs.python3Packages.websockify}/bin/websockify \
--web ${pkgs.novnc}/share/webapps/novnc \
6080 127.0.0.1:5900
''; '';
}; };
}; };