{config, lib, pkgs, ...}: { services.caddy = { enable = true; email = "xqtc@tutanota.com"; virtualHosts = { "heroin.trade" = { extraConfig = '' root * /var/www/website/public/ handle_errors { rewrite * /404.html file_server } file_server ''; }; # "matrix.heroin.trade" = { # extraConfig = '' # reverse_proxy /_matrix/* 127.0.0.1:${builtins.toString config.services.matrix-conduit.settings.global.port} # ''; # }; "hydra.heroin.trade" = { extraConfig = '' reverse_proxy http://localhost:${builtins.toString config.services.hydra.port} ''; }; "cheats-rs.heroin.trade" = { extraConfig = '' root * /var/www/cheats-rs/public/ handle_errors { rewrite * /404.html file_server } file_server ''; }; "syncthing.heroin.trade" = { extraConfig = '' reverse_proxy http://localhost:8384 { header_up Host {upstream_hostport} } ''; }; "demos.heroin.trade" = { extraConfig = '' root * /var/www/demos/ file_server browse ''; }; "git.heroin.trade" = { extraConfig = '' reverse_proxy http://localhost:3002 ''; }; "jellyfin.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:8096 redir /metrics* / ''; }; "calibre.heroin.trade" = { extraConfig = '' reverse_proxy http://localhost:3000 ''; }; "grafana.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:2342 ''; }; "uptime.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:3001 ''; }; "paperless.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:28981 ''; }; "radarr.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:7878 ''; }; "sonarr.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:8989 ''; }; "prowlarr.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:9696 ''; }; "qbit.heroin.trade" = { extraConfig = '' reverse_proxy http://127.0.0.1:8085 ''; }; "marie.software" = { extraConfig = '' root * /var/www/marie-website/ file_server ''; }; "juvi.likes.graphics" = { extraConfig = '' root * /var/www/juvi-website/ file_server ''; }; "servers" = { extraConfig = '' metrics ''; }; }; }; }