diff --git a/server/hybridServer.ts b/server/hybridServer.ts index d5a61a9e..22ba64c8 100644 --- a/server/hybridServer.ts +++ b/server/hybridServer.ts @@ -22,14 +22,6 @@ export async function createHybridClientServer() { await monitor.start(); - if ( - !config.getRawConfig().hybrid?.id || - !config.getRawConfig().hybrid?.secret || - !config.getRawConfig().hybrid?.endpoint - ) { - throw new Error("Hybrid configuration is not defined"); - } - // Create client const client = createWebSocketClient( token, diff --git a/server/lib/remoteProxy.ts b/server/lib/remoteProxy.ts index e53f53f6..3b9dcd69 100644 --- a/server/lib/remoteProxy.ts +++ b/server/lib/remoteProxy.ts @@ -36,6 +36,8 @@ export const proxyToRemote = async ( validateStatus: () => true // Don't throw on non-2xx status codes }); + logger.debug(`Proxy response: ${JSON.stringify(response.data)}`); + // Forward the response status and data return res.status(response.status).json(response.data); diff --git a/server/lib/remoteTraefikConfig.ts b/server/lib/remoteTraefikConfig.ts index fba86c12..36bdad24 100644 --- a/server/lib/remoteTraefikConfig.ts +++ b/server/lib/remoteTraefikConfig.ts @@ -120,6 +120,8 @@ export class TraefikConfigManager { const validCertificates = await this.getValidCertificatesForDomains(domains); + // logger.debug(`Valid certs array: ${JSON.stringify(validCertificates)}`); + // Download and decrypt new certificates await this.processValidCertificates(validCertificates); diff --git a/server/routers/gerbil/getConfig.ts b/server/routers/gerbil/getConfig.ts index 4a6bcf05..d8f4c56e 100644 --- a/server/routers/gerbil/getConfig.ts +++ b/server/routers/gerbil/getConfig.ts @@ -104,7 +104,7 @@ export async function getConfig( // STOP HERE IN HYBRID MODE if (config.isHybridMode()) { - return proxyToRemote(req, res, next, "gerbil/get-config"); + return proxyToRemote(req, res, next, "hybrid/gerbil/get-config"); } const configResponse = await generateGerbilConfig(exitNode[0]); diff --git a/server/routers/internal.ts b/server/routers/internal.ts index e91446dc..977248e5 100644 --- a/server/routers/internal.ts +++ b/server/routers/internal.ts @@ -55,27 +55,30 @@ if (config.isHybridMode()) { // Use proxy router to forward requests to remote cloud server // Proxy endpoints for each gerbil route gerbilRouter.post("/receive-bandwidth", (req, res, next) => - proxyToRemote(req, res, next, "gerbil/receive-bandwidth") + proxyToRemote(req, res, next, "hybrid/gerbil/receive-bandwidth") ); gerbilRouter.post("/update-hole-punch", (req, res, next) => - proxyToRemote(req, res, next, "gerbil/update-hole-punch") + proxyToRemote(req, res, next, "hybrid/gerbil/update-hole-punch") ); gerbilRouter.post("/get-all-relays", (req, res, next) => - proxyToRemote(req, res, next, "gerbil/get-all-relays") + proxyToRemote(req, res, next, "hybrid/gerbil/get-all-relays") ); // GET CONFIG IS HANDLED IN THE ORIGINAL HANDLER // SO IT CAN REGISTER THE LOCAL EXIT NODE } else { // Use local gerbil endpoints - gerbilRouter.post("/get-config", gerbil.getConfig); gerbilRouter.post("/receive-bandwidth", gerbil.receiveBandwidth); gerbilRouter.post("/update-hole-punch", gerbil.updateHolePunch); gerbilRouter.post("/get-all-relays", gerbil.getAllRelays); } +// WE HANDLE THE PROXY INSIDE OF THIS FUNCTION +// SO IT REGISTERS THE EXIT NODE LOCALLY AS WELL +gerbilRouter.post("/get-config", gerbil.getConfig); + // Badger routes const badgerRouter = Router(); internalRouter.use("/badger", badgerRouter);