diff --git a/server/config.ts b/server/config.ts index e0807988..62bdfab4 100644 --- a/server/config.ts +++ b/server/config.ts @@ -39,6 +39,7 @@ const environmentSchema = z.object({ gerbil: z.object({ start_port: portSchema, base_endpoint: z.string(), + use_subdomain: z.boolean(), subnet_group: z.string(), block_size: z.number().positive().gt(0), }), diff --git a/server/routers/gerbil/getConfig.ts b/server/routers/gerbil/getConfig.ts index a45806f0..c6663fc2 100644 --- a/server/routers/gerbil/getConfig.ts +++ b/server/routers/gerbil/getConfig.ts @@ -51,12 +51,15 @@ export async function getConfig(req: Request, res: Response, next: NextFunction) if (exitNodeQuery.length === 0) { const address = await getNextAvailableSubnet(); const listenPort = await getNextAvailablePort(); - const subEndpoint = await getUniqueExitNodeEndpointName(); + let subEndpoint = ""; + if (config.gerbil.use_subdomain) { + subEndpoint = await getUniqueExitNodeEndpointName(); + } // create a new exit node exitNode = await db.insert(exitNodes).values({ publicKey, - endpoint: `${subEndpoint}.${config.gerbil.base_endpoint}`, + endpoint: `${subEndpoint}${subEndpoint != "" ? "." : ""}${config.gerbil.base_endpoint}`, address, listenPort, reachableAt,