| import { createServer } from "node:http"; |
| import { Buffer } from "node:buffer"; |
|
|
| const PORT = Number(process.env.PORT || 7860); |
| const encoded = process.env.APP_CODE_B64; |
|
|
| function sendSetupPage(response) { |
| response.writeHead(503, { |
| "Content-Type": "application/json; charset=utf-8", |
| "Access-Control-Allow-Origin": "*" |
| }); |
| response.end(JSON.stringify({ |
| error: "APP_CODE_B64 secret is not set.", |
| hint: "Set APP_CODE_B64 in the Hugging Face Space secrets, then restart the Space." |
| }, null, 2)); |
| } |
|
|
| if (!encoded) { |
| createServer((_request, response) => sendSetupPage(response)).listen(PORT, "0.0.0.0", () => { |
| console.log(`Secret loader waiting on 0.0.0.0:${PORT}`); |
| }); |
| } else { |
| try { |
| const source = Buffer.from(encoded, "base64").toString("utf8"); |
| const moduleUrl = `data:text/javascript;base64,${Buffer.from(source, "utf8").toString("base64")}`; |
| const mod = await import(moduleUrl); |
| if (typeof mod.start !== "function") { |
| throw new Error("Private module must export start(options)."); |
| } |
| await mod.start({ port: PORT }); |
| } catch (error) { |
| console.error("Failed to start private proxy:", error?.message || error); |
| createServer((_request, response) => { |
| response.writeHead(500, { "Content-Type": "application/json; charset=utf-8" }); |
| response.end(JSON.stringify({ error: "Failed to start private proxy." })); |
| }).listen(PORT, "0.0.0.0"); |
| } |
| } |
|
|
|
|