From 6cdc944451bb834a59065a39b051c28a5b7b0c8c Mon Sep 17 00:00:00 2001 From: Satria Date: Fri, 6 Mar 2026 21:07:52 +0700 Subject: [PATCH] add proxy for some apps --- modules/system/homelab/dash.nix | 21 ++++++++++++++++++++- modules/system/homelab/proxy.nix | 6 ++++++ 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/modules/system/homelab/dash.nix b/modules/system/homelab/dash.nix index ca9b62a..ad2a762 100644 --- a/modules/system/homelab/dash.nix +++ b/modules/system/homelab/dash.nix @@ -52,11 +52,17 @@ [ "CDN" "http://localhost:3000/" ] [ "Proxy" "https://proxy.${homelab.domain}/" ] ]; + external = [ + [ "Proxmox" "proxmox" "https://server.proxy.${homelab.domain}" "http://server.dns.${homelab.domain}:8006/" ] + [ "OpenWRT" "openwrt" "https://router.proxy.${homelab.domain}" "http://router.dns.${homelab.domain}:80/" ] + [ "HomeAssistant" "homeassistant" "https://home.proxy.${homelab.domain}" "http://home.dns.${homelab.domain}:8123/" ] + [ "OpenMediaVault" "openmediavault" "https://nas.proxy.${homelab.domain}" "http://nas.dns.${homelab.domain}:80/" ] + [ "ApacheHTTPD" "apache" "https://cdn.proxy.${homelab.domain}" "http://nas.dns.${homelab.domain}:3000/" ] + ]; services = [ [ "PocketID" "authentik" "https://auth.${homelab.domain}" "http://localhost:1411/" ] [ "Forgejo" "forgejo" "https://git.${homelab.domain}" "http://localhost:5080/" ] [ "AdGuardHome" "adguard" "https://dns.proxy.${homelab.domain}" "http://localhost:8088/" ] - [ "ApacheHTTPD" "apache" "https://cdn.proxy.${homelab.domain}" "http://localhost:3000/" ] [ "Immich" "immich" "https://gallery.proxy.${homelab.domain}" "http://localhost:2283/" ] [ "Jellyfin" "jellyfin" "https://media.proxy.${homelab.domain}" "http://localhost:8096/" ] [ "VaultWarden" "vaultwarden" "https://pass.proxy.${homelab.domain}" "http://localhost:8060/" ] @@ -258,6 +264,19 @@ in { type = "server-stats"; servers = [{ type = "local"; }]; } + { + type = "monitor"; + cache = "1m"; + title = "External"; + sites = map (e: { + same-tab = true; + allow-insecure = true; + title = builtins.elemAt e 0; + icon = "si:${builtins.elemAt e 1}"; + url = builtins.elemAt e 2; + check-url = builtins.elemAt e 3; + }) external; + } { type = "monitor"; cache = "1m"; diff --git a/modules/system/homelab/proxy.nix b/modules/system/homelab/proxy.nix index 60c16cc..2496bfd 100644 --- a/modules/system/homelab/proxy.nix +++ b/modules/system/homelab/proxy.nix @@ -1,6 +1,12 @@ { homelab, lib, ... }: let base = "proxy.${homelab.domain}"; hosts = { + "server" = { dest = "http://server.dns.${homelab.domain}:8006"; auth = false; }; + "router" = { dest = "http://router.dns.${homelab.domain}:80"; auth = false; }; + "home" = { dest = "http://home.dns.${homelab.domain}:8123"; auth = false; }; + "nas" = { dest = "http://nas.dns.${homelab.domain}:80"; auth = false; }; + "cdn" = { dest = "http://nas.dns.${homelab.domain}:3000"; auth = false; }; + "dns" = { dest = "http://localhost:8088"; auth = true; }; "ai" = { dest = "http://localhost:8080"; auth = true; };