// Einfacher TCP-Relay fuer CI unter Docker-in-Docker (Issue #38, D2). // // Die Supabase-Ports (Kong 54321, Postgres 54322, Mailpit 54324, Extra-GoTrue 9998) liegen im dind, // nicht im Job-Container. Die Tests und die Web-App erwarten 127.0.0.1. Dieses Skript leitet // 127.0.0.1: an : weiter (HTTP und Postgres, rein TCP). // // Aufruf: node tcp-forward.mjs [ ...] import net from 'node:net'; const [host, ...ports] = process.argv.slice(2); if (!host || ports.length === 0) { console.error('Aufruf: node tcp-forward.mjs [ ...]'); process.exit(2); } for (const p of ports) { const port = Number(p); if (!Number.isInteger(port) || port < 1 || port > 65535) { console.error(`Ungueltiger Port: ${p}`); process.exit(2); } net .createServer((client) => { const upstream = net.connect(port, host); client.pipe(upstream).pipe(client); const close = () => { client.destroy(); upstream.destroy(); }; client.on('error', close); upstream.on('error', close); client.on('close', close); upstream.on('close', close); }) .on('error', (err) => { console.error(`Relay ${port}: ${err.message}`); process.exit(1); }) .listen(port, '127.0.0.1', () => console.log(`127.0.0.1:${port} -> ${host}:${port}`)); }