const express = require("express"); const fs = require("fs"); const app = express(); app.use(express.json()); /* ========================= PORT CONFIG ========================= */ const PORT = process.env.PORT || 5900; /* ========================= VPN DATABASE (IN MEMORY) ========================= */ let regions = [ { code: "us", country: "USA", city: "New York", node: "us1" }, { code: "de", country: "Germany", city: "Frankfurt", node: "de1" } ]; let session = null; /* ========================= CREATE REGION (/create) ========================= */ app.post("/create", (req, res) => { const { code, country, city, node } = req.body; if (!code || !country || !city || !node) { return res.json({ success: false, message: "Missing fields" }); } const exists = regions.find(r => r.code === code); if (exists) { return res.json({ success: false, message: "Region already exists" }); } const newRegion = { code, country, city, node }; regions.push(newRegion); res.json({ success: true, message: "Region created", data: newRegion }); }); /* ========================= LIST REGIONS ========================= */ app.get("/regions", (req, res) => { res.json({ success: true, regions }); }); /* ========================= CONNECT VPN ========================= */ app.post("/connect", (req, res) => { const { code } = req.body; const region = regions.find(r => r.code === code); if (!region) { return res.json({ success: false, message: "Region not found" }); } session = { connected: true, region: region.code, ip: `10.${Math.floor(Math.random()*255)}.${Math.floor(Math.random()*255)}.1` }; res.json({ success: true, message: "VPN Connected", data: session }); }); /* ========================= DISCONNECT VPN ========================= */ app.post("/disconnect", (req, res) => { session = null; res.json({ success: true, message: "VPN Disconnected" }); }); /* ========================= STATUS ========================= */ app.get("/status", (req, res) => { res.json(session || { connected: false }); }); /* ========================= GENERATE HTML FILE ========================= */ app.get("/generate-html", (req, res) => { const htmlContent = ` VPN Control Panel

VPN Control Panel

Create Region







`;

  fs.writeFileSync("client.html", htmlContent);

  res.json({
    success: true,
    message: "client.html created successfully"
  });
});

/* =========================
   START SERVER
========================= */
app.listen(PORT, () => {
  console.log("server running on http://127.0.0.1:5900");
});