NebulaServices / Nebula

a stunning and sleek web proxy with support for hundreds of popular sites.
https://docs.nebulaproxy.io/
284 stars 3.91k forks source link

problems in server.ts #268

Closed ghost closed 2 months ago

ghost commented 2 months ago

image

i also included the code if helpful

import fastify from "fastify"; import fastifyStatic from "@fastify/static"; import { fileURLToPath } from "url"; import path from "path"; import cookieParser from "@fastify/cookie"; import { createServer } from "http"; import { createBareServer } from "@tomphttp/bare-server-node"; import createRammerhead from "rammerhead/src/server/index.js"; import wisp from "wisp-server-node"; const filename = fileURLToPath(import.meta.url); const dirname = path.dirname(__filename); const bare = createBareServer("/bare/"); const rh = createRammerhead(); import chalk from "chalk"; import masqr from "./masqr.js";

const rammerheadScopes = [ "/rammerhead.js", "/hammerhead.js", "/transport-worker.js", "/task.js", "/iframe-task.js", "/worker-hammerhead.js", "/messaging", "/sessionexists", "/deletesession", "/newsession", "/editsession", "/needpassword", "/syncLocalStorage", "/api/shuffleDict", "/mainport" ];

const rammerheadSession = /^\/[a-z0-9]{32}/;

function shouldRouteRh(req) { const url = new URL(req.url, "http://0.0.0.0"); return ( rammerheadScopes.includes(url.pathname) || rammerheadSession.test(url.pathname) ); }

function routeRhRequest(req, res) { rh.emit("request", req, res); }

function routeRhUpgrade(req, socket, head) { rh.emit("upgrade", req, socket, head); }

const serverFactory = (handler, opts) => { return createServer() .on("request", (req, res) => { if (bare.shouldRoute(req)) { bare.routeRequest(req, res); } else if (shouldRouteRh(req)) { routeRhRequest(req, res); } else { handler(req, res); } }) .on("upgrade", (req, socket, head) => { if (bare.shouldRoute(req)) { bare.routeUpgrade(req, socket, head); } else if (shouldRouteRh(req)) { routeRhUpgrade(req, socket, head); } else if (req.url.endsWith("/wisp/")) { wisp.routeRequest(req, socket, head); } }); };

const app = fastify({ logger: false, serverFactory });

app.register(cookieParser); await app.register(import("@fastify/compress")); //Uncomment the following line to enable masqr //app.register(masqr);

app.register(fastifyStatic, { root: path.join(__dirname, "dist"), prefix: "/", serve: true, wildcard: false });

app.get("/search=:query", async (req, res) => { const { query } = req.params as { query: string }; // Define the type for req.params

const response = await fetch( http://api.duckduckgo.com/ac?q=${query}&format=json ).then((apiRes) => apiRes.json());

res.send(response); });

app.setNotFoundHandler((req, res) => { res.sendFile("index.html"); // SPA catch-all });

console.log( chalk.green(Server listening on ${chalk.bold("http://localhost:8080")}) ); console.log( chalk.magenta(Server also listening on ${chalk.bold("http://0.0.0.0:8080")}) );

app.listen({ port: 8080, host: "0.0.0.0" });

ghost commented 2 months ago

also not showing port that is deployed

ghost commented 2 months ago

pls help this hell isue

ghost commented 2 months ago

thanks it worked