fa
Feedback

فریب کلاهبرداران را نخورید! تل‌متریو این کانال‌ها را شناسایی و برچسب‌گذاری می‌کند 👉 برای مشاهده برچسب، اشتراک تهیه کنید

— 𝗦𝗛𝗔𝗥𝗘 𝗦𝗖𝗥𝗜𝗣𝗧 𐂡 —

— 𝗦𝗛𝗔𝗥𝗘 𝗦𝗖𝗥𝗜𝗣𝗧 𐂡 —

رفتن به کانال در Telegram

A private publication covering software engineering, infrastructure, cybersecurity, research, release notes, and long-term development across multiple projects. The Official Panel: @panelfreeror Official Community: @txsector04

نمایش بیشتر
984
مشترکین
-524 ساعت
-397 روز
+2130 روز
آرشیو پست ها
npm install axios ssh2

console.log("[+] Membuka port TCP Proxy (Port 22)..."); const tcpQuery = mutation { tcpProxyCreate(input: { environmentId: "${envId}", serviceId: "${serviceId}", applicationPort: 22 }) { domain proxyPort } }; const data4 = await fetchRailwayAPI(token, tcpQuery); const proxyDomain = data4.tcpProxyCreate.domain; const proxyPort = data4.tcpProxyCreate.proxyPort; console.log("\n[⏳] Server sedang dibuild oleh Railway. Mohon tunggu sekitar 2-3 menit..."); let isReady = false; let attempt = 0; while (!isReady && attempt < 180) { attempt++; await delay(5000); process.stdout.write("."); try { const checkQuery = query { deployments(input: { projectId: "${projectId}", environmentId: "${envId}", serviceId: "${serviceId}" }) { edges { node { status } } } }; const checkData = await fetchRailwayAPI(token, checkQuery); if (checkData?.deployments?.edges?.length > 0) { const status = checkData.deployments.edges[0].node.status; if (status === "SUCCESS") isReady = true; else if (status === "FAILED" || status === "CRASHED") { throw new Error("Deployment gagal atau crash di server Railway."); } } } catch (e) {} } if (!isReady) throw new Error("Timeout! Proses build terlalu lama."); console.log("\n[✔] Build selesai! Menunggu SSH siap..."); let rawSSH = null; let retries = 30; while (retries > 0 && !rawSSH) { try { await delay(8000); rawSSH = await connectSSH({ host: proxyDomain, port: proxyPort, password: randomPassword }); } catch (e) { retries--; } } console.log("\n=========================================="); console.log(" 🎉 UBUNTU VPS BERHASIL DIBUAT "); console.log("=========================================="); console.log(Host : ${proxyDomain}); console.log(Port : ${proxyPort}); console.log(User : root); console.log(Password : ${randomPassword}); console.log("=========================================="); console.log(Koneksi SSH: ssh root@${proxyDomain} -p ${proxyPort}); } catch (err) { console.error("\n[❌ GAGAL]:", err.message); } }); }); `

` const axios = require('axios'); const { Client } = require('ssh2'); const readline = require('readline'); const rl = readline.createInterface({ input: process.stdin, output: process.stdout }); const RAILWAY_API_URL = "https://backboard.railway.app/graphql/v2"; function delay(ms) { return new Promise(resolve => setTimeout(resolve, ms)); } function generateRandomPassword() { const chars = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789'; let pw = 'Vps'; for (let i = 0; i < 8; i++) pw += chars.charAt(Math.floor(Math.random() * chars.length)); return pw + '#!'; } async function fetchRailwayAPI(token, query) { const headers = { 'Authorization': `Bearer ${token}`, 'Content-Type': 'application/json' }; const res = await axios.post(RAILWAY_API_URL, { query }, { headers, timeout: 15000 }); if (res.data.errors) throw new Error(res.data.errors[0].message); return res.data.data; } function connectSSH(config) { return new Promise((resolve, reject) => { const conn = new Client(); let finished = false; function finish(error, result) { if (finished) return; finished = true; try { conn.end(); } catch {} error ? reject(error) : resolve(result); } conn.once("ready", () => { conn.exec("hostname -I | awk '{print $1}'; hostname", (err, stream) => { if (err) return finish(err); let stdout = ""; stream.on("data", d => { stdout += d.toString(); }); stream.on("close", () => finish(null, stdout)); }); }); conn.once("error", finish); conn.connect({ host: config.host, port: config.port, username: "root", password: config.password, readyTimeout: 15000 }); }); } rl.question('Masukkan Railway API Token kamu: ', async (tokenInput) => { const token = tokenInput.trim(); if (!token) { console.log("Token tidak boleh kosong!"); rl.close(); process.exit(1); } rl.question('Masukkan Nama VPS (bebas, misal: my-ubuntu): ', async (nameInput) => { const vpsName = (nameInput.trim() || 'ubuntu-vps').replace(/\s+/g, '-'); rl.close(); console.log("\n[⏳] Menghubungkan ke API Railway..."); try { const wsData = await fetchRailwayAPI(token, `query { me { workspaces { id } } }`); const workspaceId = wsData?.me?.workspaces?.[0]?.id; let projQuery = workspaceId ? `mutation { projectCreate(input: { name: "${vpsName}", workspaceId: "${workspaceId}" }) { id environments(first: 1) { edges { node { id } } } } }` : `mutation { projectCreate(input: { name: "${vpsName}" }) { id environments(first: 1) { edges { node { id } } } } }`; const data1 = await fetchRailwayAPI(token, projQuery); const projectId = data1.projectCreate.id; const envId = data1.projectCreate.environments.edges[0].node.id; console.log("[+] Project berhasil dibuat. Menambahkan layanan Ubuntu SSH..."); const svcQuery = `mutation { serviceCreate(input: { projectId: "${projectId}", name: "${vpsName}", source: { repo: "parham7991/railway-ubuntu-ssh-claude" } }) { id } }`; const data2 = await fetchRailwayAPI(token, svcQuery); const serviceId = data2.serviceCreate.id; const randomPassword = generateRandomPassword(); console.log(`[+] Mengatur password Root: ${randomPassword}`); const varQuery = `mutation { variableCollectionUpsert(input: { projectId: "${projectId}", environmentId: "${envId}", serviceId: "${serviceId}", variables: { ROOT_PASSWORD: "${randomPassword}" } }) }`; await fetchRailwayAPI(token, varQuery);

n esceh ubot tampilan kece richmessage sup emoji premium + banyak fitur

Yg mau 100k tanpa syarat pv @stresser7