The communications platform that puts data protection first.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Rocket.Chat/server/startup/serverRunning.js

50 lines
1.7 KiB

/* globals MongoInternals, SystemLogger */
import fs from 'fs';
import path from 'path';
import semver from 'semver';
Meteor.startup(function() {
let oplogState = 'Disabled';
if (MongoInternals.defaultRemoteCollectionDriver().mongo._oplogHandle && MongoInternals.defaultRemoteCollectionDriver().mongo._oplogHandle.onOplogEntry) {
oplogState = 'Enabled';
if (RocketChat.settings.get('Force_Disable_OpLog_For_Cache') === true) {
oplogState += ' (Disabled for Cache Sync)';
}
}
const desiredNodeVersion = semver.clean(fs.readFileSync(path.join(process.cwd(), '../../.node_version.txt')).toString());
const desiredNodeVersionMajor = String(semver.parse(desiredNodeVersion).major);
return Meteor.setTimeout(function() {
let msg = [
`Rocket.Chat Version: ${RocketChat.Info.version}`,
` NodeJS Version: ${process.versions.node} - ${process.arch}`,
` Platform: ${process.platform}`,
` Process Port: ${process.env.PORT}`,
` Site URL: ${RocketChat.settings.get('Site_Url')}`,
` ReplicaSet OpLog: ${oplogState}`
];
if (RocketChat.Info.commit && RocketChat.Info.commit.hash) {
msg.push(` Commit Hash: ${RocketChat.Info.commit.hash.substr(0, 10)}`);
}
if (RocketChat.Info.commit && RocketChat.Info.commit.branch) {
msg.push(` Commit Branch: ${RocketChat.Info.commit.branch}`);
}
msg = msg.join('\n');
if (semver.satisfies(process.versions.node, desiredNodeVersionMajor)) {
return SystemLogger.startup_box(msg, 'SERVER RUNNING');
}
msg += ['', '', 'YOUR CURRENT NODEJS VERSION IS NOT SUPPORTED,', `PLEASE UPGRADE / DOWNGRADE TO VERSION ${desiredNodeVersionMajor}.X.X`].join('\n');
SystemLogger.error_box(msg, 'SERVER ERROR');
return process.exit();
}, 100);
});