Replace remote with local repo
This commit is contained in:
@@ -3,7 +3,6 @@
|
||||
* Reads scripts/onion-nodes.json and writes:
|
||||
* lib/onionRoutes.generated.ts
|
||||
* tor/cyberlux-nodes.conf
|
||||
* nginx/cyberlux-onion-servers.inc
|
||||
* scripts/generated/tor-dirs.txt
|
||||
* scripts/generated/onion-labels.tsv
|
||||
* scripts/generated/onion-port-range.txt
|
||||
@@ -17,231 +16,63 @@ const REPO = path.join(__dirname, "..");
|
||||
const jsonPath = path.join(__dirname, "onion-nodes.json");
|
||||
const data = JSON.parse(fs.readFileSync(jsonPath, "utf8"));
|
||||
const nodes = data.nodes;
|
||||
|
||||
function dedicatedNginx(port, entry) {
|
||||
const h = JSON.stringify(entry);
|
||||
return `
|
||||
# ${entry} @ ${port}
|
||||
server {
|
||||
listen 127.0.0.1:${port};
|
||||
server_name _;
|
||||
|
||||
include /etc/nginx/cyberlux-server-common.inc;
|
||||
proxy_hide_header X-Powered-By;
|
||||
|
||||
client_max_body_size 25m;
|
||||
|
||||
location /checkout {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Cyberlux-Node ${h};
|
||||
}
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node ${h};
|
||||
}
|
||||
location /forum {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node ${h};
|
||||
}
|
||||
location /exchange {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node ${h};
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Cyberlux-Node ${h};
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
}
|
||||
`;
|
||||
}
|
||||
|
||||
function wikiNginx(port) {
|
||||
return `
|
||||
# wiki @ ${port}
|
||||
server {
|
||||
listen 127.0.0.1:${port};
|
||||
server_name _;
|
||||
|
||||
include /etc/nginx/cyberlux-server-common.inc;
|
||||
proxy_hide_header X-Powered-By;
|
||||
|
||||
client_max_body_size 25m;
|
||||
|
||||
location /checkout {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Cyberlux-Node "wiki";
|
||||
}
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node "wiki";
|
||||
}
|
||||
location /forum {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node "wiki";
|
||||
}
|
||||
location /exchange {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node "wiki";
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Cyberlux-Node "wiki";
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
}
|
||||
`;
|
||||
}
|
||||
|
||||
function wNginx(port) {
|
||||
return `
|
||||
# shadow nodes (/w/[slug]) @ ${port}
|
||||
server {
|
||||
listen 127.0.0.1:${port};
|
||||
server_name _;
|
||||
|
||||
include /etc/nginx/cyberlux-server-common.inc;
|
||||
proxy_hide_header X-Powered-By;
|
||||
|
||||
client_max_body_size 25m;
|
||||
|
||||
location /checkout {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Cyberlux-Node "w";
|
||||
}
|
||||
location /api/ {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node "w";
|
||||
}
|
||||
location /forum {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node "w";
|
||||
}
|
||||
location /exchange {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header X-Cyberlux-Node "w";
|
||||
}
|
||||
|
||||
location / {
|
||||
proxy_pass http://127.0.0.1:3000;
|
||||
proxy_http_version 1.1;
|
||||
proxy_set_header Host $host;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto http;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection "upgrade";
|
||||
proxy_set_header X-Cyberlux-Node "w";
|
||||
proxy_read_timeout 86400;
|
||||
}
|
||||
}
|
||||
`;
|
||||
}
|
||||
const TOR_INTRO_DOS_RATE_PER_SEC = 12;
|
||||
const TOR_INTRO_DOS_BURST_PER_SEC = 80;
|
||||
const KNOWN_APP_ENTRIES = [
|
||||
"hub",
|
||||
"wiki",
|
||||
"w",
|
||||
"account",
|
||||
"arb-academy",
|
||||
"awards",
|
||||
"barter",
|
||||
"chatter",
|
||||
"checkout",
|
||||
"comparison",
|
||||
"conspiracies",
|
||||
"darknet-atlas",
|
||||
"dashboard",
|
||||
"directory",
|
||||
"drop-box",
|
||||
"drops",
|
||||
"easter-eggs",
|
||||
"exchange",
|
||||
"forum",
|
||||
"game",
|
||||
"hidden-wiki",
|
||||
"inner-circle",
|
||||
"links",
|
||||
"market",
|
||||
"messages",
|
||||
"mixer",
|
||||
"presswire",
|
||||
"raffle",
|
||||
"red-room",
|
||||
"reviews",
|
||||
"sanctuary",
|
||||
"search",
|
||||
"secret-layer",
|
||||
"security-analysis",
|
||||
"sign-in",
|
||||
"sign-up",
|
||||
"support",
|
||||
"syndicate",
|
||||
"testimonials",
|
||||
"trees",
|
||||
"trust",
|
||||
"vault",
|
||||
"vendors",
|
||||
"wallets",
|
||||
"webring",
|
||||
];
|
||||
|
||||
function torBlock(dir, port) {
|
||||
return `
|
||||
HiddenServiceDir /var/lib/tor/${dir}
|
||||
HiddenServicePort 80 127.0.0.1:${port}
|
||||
HiddenServiceEnableIntroDoSDefense 1
|
||||
HiddenServiceEnableIntroDoSRatePerSec 25
|
||||
HiddenServiceEnableIntroDoSBurstPerSec 200`;
|
||||
HiddenServiceEnableIntroDoSRatePerSec ${TOR_INTRO_DOS_RATE_PER_SEC}
|
||||
HiddenServiceEnableIntroDoSBurstPerSec ${TOR_INTRO_DOS_BURST_PER_SEC}`;
|
||||
}
|
||||
|
||||
const ports = nodes.map((n) => n.port);
|
||||
@@ -253,7 +84,11 @@ for (const n of nodes) {
|
||||
if (n.kind === "dedicated") dedicated[n.entry] = n.path;
|
||||
}
|
||||
|
||||
const uniqueEntries = ["hub", "wiki", "w", ...Object.keys(dedicated).sort()];
|
||||
const uniqueEntries = Array.from(new Set([...KNOWN_APP_ENTRIES, ...Object.keys(dedicated)])).sort((a, b) => {
|
||||
if (a === "hub") return -1;
|
||||
if (b === "hub") return 1;
|
||||
return a.localeCompare(b);
|
||||
});
|
||||
|
||||
const drLines = Object.keys(dedicated)
|
||||
.sort()
|
||||
@@ -273,17 +108,11 @@ ${drLines}
|
||||
} as const;
|
||||
`;
|
||||
|
||||
// fix typo "generon" -> "generate"
|
||||
let nginxInc = "# CyberLux — generated onion vhosts (included from nginx.example.conf)\n";
|
||||
let torConf =
|
||||
"# CyberLux — generated v3 onion services (include from torrc)\n#\n# Tor ≥ 0.4.7: DoS lines follow each HiddenServiceDir/Port pair.\n";
|
||||
|
||||
for (const n of nodes) {
|
||||
torConf += torBlock(n.torDir, n.port);
|
||||
if (n.kind === "hub") continue;
|
||||
if (n.kind === "dedicated") nginxInc += dedicatedNginx(n.port, n.entry);
|
||||
else if (n.kind === "wiki") nginxInc += wikiNginx(n.port);
|
||||
else if (n.kind === "w") nginxInc += wNginx(n.port);
|
||||
}
|
||||
|
||||
const genDir = path.join(REPO, "scripts", "generated");
|
||||
@@ -306,8 +135,9 @@ fs.writeFileSync(path.join(genDir, "onion-port-range.txt"), `${minP} ${maxP}\n`)
|
||||
|
||||
fs.writeFileSync(path.join(REPO, "lib", "onionRoutes.generated.ts"), ts);
|
||||
fs.writeFileSync(path.join(REPO, "tor", "cyberlux-nodes.conf"), torConf.trim() + "\n");
|
||||
fs.writeFileSync(path.join(REPO, "nginx", "cyberlux-onion-servers.inc"), nginxInc.trim() + "\n");
|
||||
|
||||
const onionLabel = nodes.length === 1 ? "onion" : "onions";
|
||||
const loopbackLabel = minP === maxP ? `${minP}` : `${minP}–${maxP}`;
|
||||
console.log(
|
||||
`[generate-onion-config] ${nodes.length} onions, nginx loopback ${minP}–${maxP}, TS entries: ${uniqueEntries.length}`,
|
||||
`[generate-onion-config] ${nodes.length} ${onionLabel}, nginx loopback ${loopbackLabel}, TS entries: ${uniqueEntries.length}`,
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user