mirror of
https://github.com/louislam/uptime-kuma.git
synced 2024-11-23 23:04:04 +00:00
482049c72b
* WIP, still need to handle npm run reset-password * Implement it for "npm run reset-password" Bug fixes and change along with this commit - Move `ssl`, `hostname`, `port` to ./server/config.js, so `reset-password` is able to read it - Fix: FBSD is missing, no idea who dropped it. - Fix: Frontend code should not require any backend code (./server/config.js), moved "badgeConstants" to the common util (./src/util.ts) and drop vite-common.js * Minor
42 lines
1.5 KiB
JavaScript
42 lines
1.5 KiB
JavaScript
const isFreeBSD = /^freebsd/.test(process.platform);
|
|
|
|
// Interop with browser
|
|
const args = (typeof process !== "undefined") ? require("args-parser")(process.argv) : {};
|
|
|
|
// 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 (::)
|
|
// Also read HOST if not FreeBSD, as HOST is a system environment variable in FreeBSD
|
|
let hostEnv = isFreeBSD ? null : process.env.HOST;
|
|
const hostname = args.host || process.env.UPTIME_KUMA_HOST || hostEnv;
|
|
|
|
const port = [ args.port, process.env.UPTIME_KUMA_PORT, process.env.PORT, 3001 ]
|
|
.map(portValue => parseInt(portValue))
|
|
.find(portValue => !isNaN(portValue));
|
|
|
|
const sslKey = args["ssl-key"] || process.env.UPTIME_KUMA_SSL_KEY || process.env.SSL_KEY || undefined;
|
|
const sslCert = args["ssl-cert"] || process.env.UPTIME_KUMA_SSL_CERT || process.env.SSL_CERT || undefined;
|
|
const sslKeyPassphrase = args["ssl-key-passphrase"] || process.env.UPTIME_KUMA_SSL_KEY_PASSPHRASE || process.env.SSL_KEY_PASSPHRASE || undefined;
|
|
|
|
const isSSL = sslKey && sslCert;
|
|
|
|
function getLocalWebSocketURL() {
|
|
const protocol = isSSL ? "wss" : "ws";
|
|
const host = hostname || "localhost";
|
|
return `${protocol}://${host}:${port}`;
|
|
}
|
|
|
|
const localWebSocketURL = getLocalWebSocketURL();
|
|
|
|
const demoMode = args["demo"] || false;
|
|
|
|
module.exports = {
|
|
args,
|
|
hostname,
|
|
port,
|
|
sslKey,
|
|
sslCert,
|
|
sslKeyPassphrase,
|
|
isSSL,
|
|
localWebSocketURL,
|
|
demoMode,
|
|
};
|