From f75c9e4f0ca4f7417ea0c7f2184be4dd1332be05 Mon Sep 17 00:00:00 2001 From: Louis Lam Date: Thu, 14 Oct 2021 14:09:16 +0800 Subject: [PATCH] add UPTIME_KUMA_HOST, UPTIME_KUMA_PORT and special handling for FreeBSD --- server/ping-lite.js | 5 +---- server/server.js | 20 +++++++++++++++----- server/util-server.js | 6 ++++++ 3 files changed, 22 insertions(+), 9 deletions(-) diff --git a/server/ping-lite.js b/server/ping-lite.js index 0af0e9706..37709aaf4 100644 --- a/server/ping-lite.js +++ b/server/ping-lite.js @@ -4,10 +4,7 @@ const net = require("net"); const spawn = require("child_process").spawn; const events = require("events"); const fs = require("fs"); -const WIN = /^win/.test(process.platform); -const LIN = /^linux/.test(process.platform); -const MAC = /^darwin/.test(process.platform); -const FBSD = /^freebsd/.test(process.platform); +const { MAC, FBSD, LIN, WIN } = require("./util-server"); module.exports = Ping; diff --git a/server/server.js b/server/server.js index 7dbd6155f..376e7bb3f 100644 --- a/server/server.js +++ b/server/server.js @@ -43,7 +43,7 @@ console.log("Importing this project modules"); debug("Importing Monitor"); const Monitor = require("./model/monitor"); debug("Importing Settings"); -const { getSettings, setSettings, setting, initJWTSecret, checkLogin, startUnitTest } = require("./util-server"); +const { getSettings, setSettings, setting, initJWTSecret, checkLogin, startUnitTest, FBSD } = require("./util-server"); debug("Importing Notification"); const { Notification } = require("./notification"); @@ -61,12 +61,22 @@ console.info("Version: " + checkVersion.version); // If host is omitted, the server will accept connections on the unspecified IPv6 address (::) when IPv6 is available and the unspecified IPv4 address (0.0.0.0) otherwise. // Dual-stack support for (::) -const hostname = args.host || process.env.HOST; -const port = parseInt(args.port || process.env.PORT || 3001); +let hostname = process.env.UPTIME_KUMA_HOST || args.host; + +// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD +if (!hostname && !FBSD) { + hostname = process.env.HOST; +} + +if (hostname) { + console.log("Custom hostname: " + hostname); +} + +const port = parseInt(process.env.UPTIME_KUMA_PORT || process.env.PORT || args.port || 3001); // SSL -const sslKey = process.env.SSL_KEY || args["ssl-key"] || undefined; -const sslCert = process.env.SSL_CERT || args["ssl-cert"] || undefined; +const sslKey = process.env.UPTIME_KUMA_SSL_KEY || process.env.SSL_KEY || args["ssl-key"] || undefined; +const sslCert = process.env.UPTIME_KUMA_SSL_CERT || process.env.SSL_CERT || args["ssl-cert"] || undefined; /** * Run unit test after the server is ready diff --git a/server/util-server.js b/server/util-server.js index 5620d674b..f6faa7a2f 100644 --- a/server/util-server.js +++ b/server/util-server.js @@ -7,6 +7,12 @@ const dayjs = require("dayjs"); const { Resolver } = require("dns"); const child_process = require("child_process"); +// From ping-lite +exports.WIN = /^win/.test(process.platform); +exports.LIN = /^linux/.test(process.platform); +exports.MAC = /^darwin/.test(process.platform); +exports.FBSD = /^freebsd/.test(process.platform); + /** * Init or reset JWT secret * @returns {Promise}