From af2088df4e79a91bd65770acdadd4f767b87a0d5 Mon Sep 17 00:00:00 2001 From: Owen Date: Sun, 17 Aug 2025 18:01:36 -0700 Subject: [PATCH] Control which types of sites work and tell user --- messages/en-US.json | 2 ++ server/lib/readConfigFile.ts | 3 ++- server/routers/traefik/getTraefikConfig.ts | 2 +- src/app/[orgId]/settings/sites/create/page.tsx | 5 +++-- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/messages/en-US.json b/messages/en-US.json index 6f80cbe9..7f00e40d 100644 --- a/messages/en-US.json +++ b/messages/en-US.json @@ -94,7 +94,9 @@ "siteNewtTunnelDescription": "Easiest way to create an entrypoint into your network. No extra setup.", "siteWg": "Basic WireGuard", "siteWgDescription": "Use any WireGuard client to establish a tunnel. Manual NAT setup required.", + "siteWgDescriptionSaas": "Use any WireGuard client to establish a tunnel. Manual NAT setup required. ONLY WORKS ON SELF HOSTED NODES", "siteLocalDescription": "Local resources only. No tunneling.", + "siteLocalDescriptionSaas": "Local resources only. No tunneling. ONLY WORKS ON SELF HOSTED NODES", "siteSeeAll": "See All Sites", "siteTunnelDescription": "Determine how you want to connect to your site", "siteNewtCredentials": "Newt Credentials", diff --git a/server/lib/readConfigFile.ts b/server/lib/readConfigFile.ts index f52e1f99..23db4e52 100644 --- a/server/lib/readConfigFile.ts +++ b/server/lib/readConfigFile.ts @@ -154,7 +154,8 @@ export const configSchema = z .string() .optional() .default("./dynamic/router_config.yml"), - staticDomains: z.array(z.string()).optional().default([]) + static_domains: z.array(z.string()).optional().default([]), + site_types: z.array(z.string()).optional().default(["newt", "wireguard", "local"]) }) .optional() .default({}), diff --git a/server/routers/traefik/getTraefikConfig.ts b/server/routers/traefik/getTraefikConfig.ts index 422f9739..4ec2908c 100644 --- a/server/routers/traefik/getTraefikConfig.ts +++ b/server/routers/traefik/getTraefikConfig.ts @@ -45,7 +45,7 @@ export async function traefikConfigProvider( } } - let traefikConfig = await getTraefikConfig(currentExitNodeId, ["newt", "local", "wireguard"]); + let traefikConfig = await getTraefikConfig(currentExitNodeId, config.getRawConfig().traefik.site_types); traefikConfig.http.middlewares[badgerMiddlewareName] = { plugin: { diff --git a/src/app/[orgId]/settings/sites/create/page.tsx b/src/app/[orgId]/settings/sites/create/page.tsx index 87524d1c..26cba229 100644 --- a/src/app/[orgId]/settings/sites/create/page.tsx +++ b/src/app/[orgId]/settings/sites/create/page.tsx @@ -59,6 +59,7 @@ import { useParams, useRouter } from "next/navigation"; import { QRCodeCanvas } from "qrcode.react"; import { useTranslations } from "next-intl"; +import { build } from "@server/build"; type SiteType = "newt" | "wireguard" | "local"; @@ -142,7 +143,7 @@ export default function Page() { { id: "wireguard" as SiteType, title: t("siteWg"), - description: t("siteWgDescription"), + description: build == "saas" ? t("siteWgDescriptionSaas") : t("siteWgDescription"), disabled: true } ]), @@ -152,7 +153,7 @@ export default function Page() { { id: "local" as SiteType, title: t("local"), - description: t("siteLocalDescription") + description: build == "saas" ? t("siteLocalDescriptionSaas") : t("siteLocalDescription") } ]) ]);