This commit is contained in:
seb
2026-10-25 12:13:29 +01:00
parent 369fbb2a70
commit c07e4dc083
4 changed files with 11 additions and 8 deletions

View File

@@ -1,4 +1,6 @@
# Server
# Host interface to listen on (defaults to 127.0.0.1 for local only, use 0.0.0.0 for all network interfaces)
HOST=127.0.0.1
PORT=4208
# HTTPS server port (defaults to 8443, set to 0 or false to disable)
HTTPS_PORT=8443

View File

@@ -182,7 +182,7 @@ export async function buildApiApp() {
return app;
}
function listenOnPort(instance, port, protocol) {
function listenOnPort(instance, port, protocol, host = env.host) {
return new Promise((resolve, reject) => {
instance.once('listening', () => {
resolve();
@@ -197,14 +197,14 @@ function listenOnPort(instance, port, protocol) {
} catch {
// lsof unavailable or no match
}
apiLog.error(`Port ${port} (${protocol}) is already in use${detail}. Check with: lsof -i :${port}`);
apiLog.error(`Port ${port} (${protocol}) on ${host} is already in use${detail}. Check with: lsof -i :${port}`);
} else {
apiLog.error(`${protocol} server error:`, err.message);
}
reject(err);
});
instance.listen(port);
instance.listen(port, host);
});
}
@@ -225,7 +225,7 @@ export async function startApi() {
const httpInstance = http.createServer(app);
await listenOnPort(httpInstance, env.port, 'HTTP');
server = httpInstance;
apiLog.info(`API listening on port ${env.port} (HTTP)`);
apiLog.info(`API listening on ${env.host}:${env.port} (HTTP)`);
if (env.httpsPort) {
try {
@@ -233,7 +233,7 @@ export async function startApi() {
const httpsInstance = https.createServer(tls, app);
await listenOnPort(httpsInstance, env.httpsPort, 'HTTPS');
httpsServer = httpsInstance;
apiLog.info(`API listening on port ${env.httpsPort} (HTTPS self-signed)`);
apiLog.info(`API listening on ${env.host}:${env.httpsPort} (HTTPS self-signed)`);
} catch (err) {
apiLog.error('Failed to start HTTPS server:', err.message);
}

View File

@@ -152,14 +152,14 @@ export async function startBackendMonitor() {
await new Promise((resolve, reject) => {
serverInstance.once('listening', () => resolve());
serverInstance.once('error', (err) => {
monitorLog.error(`Failed to listen on port ${env.monitorPort}:`, err.message);
monitorLog.error(`Failed to listen on ${env.host}:${env.monitorPort}:`, err.message);
reject(err);
});
serverInstance.listen(env.monitorPort);
serverInstance.listen(env.monitorPort, env.host);
});
monitorServer = serverInstance;
monitorLog.info(`Backend Monitor Interface running on http://localhost:${env.monitorPort} (dev mode, no auth)`);
monitorLog.info(`Backend Monitor Interface running on http://${env.host}:${env.monitorPort} (dev mode, no auth)`);
return monitorServer;
}

View File

@@ -13,6 +13,7 @@ function parseHttpsPort(val) {
}
export default {
host: process.env.HOST || '127.0.0.1',
port: Number(process.env.PORT) || 4208,
httpsPort: parseHttpsPort(process.env.HTTPS_PORT),
monitorPort: Number(process.env.MONITOR_PORT || process.env.SQL_STUDIO_PORT) || 4210,