mirror of
				https://github.com/louislam/uptime-kuma.git
				synced 2025-11-04 13:46:13 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			47 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.6 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;
 | 
						|
 | 
						|
/**
 | 
						|
 * Get the local WebSocket URL
 | 
						|
 * @returns {string} The local WebSocket URL
 | 
						|
 */
 | 
						|
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,
 | 
						|
};
 |