omnitool_on_hf / launch.js
manu-sapiens's picture
copy of omnitool_latest - should be working
b39afbe
raw
history blame
1.35 kB
const fastify = require('fastify')({ logger: true });
const http = require('http');
const { spawn } = require('child_process');
const PROXY_PORT = 7860; // Change this to a port different from 1688
const TARGET_HOST = '127.0.0.1';
const TARGET_PORT = 1688;
// Function to start the request forwarding server
async function startRequestForwardingServer() {
const server = http.createServer((req, res) => {
const options = {
hostname: TARGET_HOST,
port: TARGET_PORT,
path: req.url,
method: req.method,
headers: req.headers,
};
const proxy = http.request(options, (proxyRes) => {
res.writeHead(proxyRes.statusCode, proxyRes.headers);
proxyRes.pipe(res, { end: true });
});
req.pipe(proxy, { end: true });
});
server.listen(PROXY_PORT, '0.0.0.0');
console.log(`Request forwarding server listening on port ${PROXY_PORT}`);
}
// Function to start the background process
function startYarnStartProcess() {
const child = spawn('yarn', ['start'], {
detached: true,
stdio: 'ignore'
});
child.unref();
}
// Main function to start everything
async function startServers() {
try {
startYarnStartProcess();
await startRequestForwardingServer();
} catch (error) {
console.error('Failed to start servers:', error);
}
}
// Start the servers
startServers();