asa / server.js
cl4ude's picture
Upload 4 files
f2f760a verified
Raw
History Blame Contribute Delete
1.43 kB
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");
}
}