mirror of
				https://github.com/Ylianst/MeshCentral.git
				synced 2025-03-09 15:40:18 +00:00 
			
		
		
		
	Added encrypted auto-backup support.
This commit is contained in:
		
							parent
							
								
									b52033d868
								
							
						
					
					
						commit
						c25658f5f0
					
				
					 6 changed files with 105 additions and 495 deletions
				
			
		|  | @ -69,12 +69,14 @@ function CreateMeshCentralServer(config, args) { | |||
|         obj.parentpath = obj.path.join(__dirname, '../..'); | ||||
|         obj.datapath = obj.path.join(__dirname, '../../meshcentral-data'); | ||||
|         obj.filespath = obj.path.join(__dirname, '../../meshcentral-files'); | ||||
|         obj.backuppath = obj.path.join(__dirname, '../../meshcentral-backup'); | ||||
|         if (obj.fs.existsSync(obj.path.join(__dirname, '../../meshcentral-web/views'))) { obj.webViewsPath = obj.path.join(__dirname, '../../meshcentral-web/views'); } else { obj.webViewsPath = obj.path.join(__dirname, 'views'); } | ||||
|         if (obj.fs.existsSync(obj.path.join(__dirname, '../../meshcentral-web/public'))) { obj.webPublicPath = obj.path.join(__dirname, '../../meshcentral-web/public'); } else { obj.webPublicPath = obj.path.join(__dirname, 'public'); } | ||||
|     } else { | ||||
|         obj.parentpath = __dirname; | ||||
|         obj.datapath = obj.path.join(__dirname, '../meshcentral-data'); | ||||
|         obj.filespath = obj.path.join(__dirname, '../meshcentral-files'); | ||||
|         obj.backuppath = obj.path.join(__dirname, '../meshcentral-backups'); | ||||
|         if (obj.fs.existsSync(obj.path.join(__dirname, '../meshcentral-web/views'))) { obj.webViewsPath = obj.path.join(__dirname, '../meshcentral-web/views'); } else { obj.webViewsPath = obj.path.join(__dirname, 'views'); } | ||||
|         if (obj.fs.existsSync(obj.path.join(__dirname, '../meshcentral-web/public'))) { obj.webPublicPath = obj.path.join(__dirname, '../meshcentral-web/public'); } else { obj.webPublicPath = obj.path.join(__dirname, 'public'); } | ||||
|     } | ||||
|  | @ -506,7 +508,7 @@ function CreateMeshCentralServer(config, args) { | |||
|         ); | ||||
|     }; | ||||
| 
 | ||||
|     // Time to start the serverf or real.
 | ||||
|     // Time to start the server or real.
 | ||||
|     obj.StartEx1b = function () { | ||||
|         var i; | ||||
| 
 | ||||
|  | @ -865,6 +867,11 @@ function CreateMeshCentralServer(config, args) { | |||
|                 //obj.debug(1, 'Server started');
 | ||||
|                 if (obj.args.nousers == true) { obj.updateServerState('nousers', '1'); } | ||||
|                 obj.updateServerState('state', 'running'); | ||||
| 
 | ||||
|                 // Setup database backup
 | ||||
|                 if (obj.config.settings.autobackup && (typeof obj.config.settings.autobackup.backupinvervalhours == 'number')) { | ||||
|                     setInterval(obj.db.performBackup, obj.config.settings.autobackup.backupinvervalhours * 60 * 60 * 1000); | ||||
|                 } | ||||
|             }); | ||||
|         }); | ||||
|     }; | ||||
|  | @ -1615,10 +1622,7 @@ function CreateMeshCentralServer(config, args) { | |||
| // Return the server configuration
 | ||||
| function getConfig(createSampleConfig) { | ||||
|     // Figure out the datapath location
 | ||||
|     var i; | ||||
|     var fs = require('fs'); | ||||
|     var path = require('path'); | ||||
|     var datapath = null; | ||||
|     var i, fs = require('fs'), path = require('path'), datapath = null; | ||||
|     var args = require('minimist')(process.argv.slice(2)); | ||||
|     if ((__dirname.endsWith('/node_modules/meshcentral')) || (__dirname.endsWith('\\node_modules\\meshcentral')) || (__dirname.endsWith('/node_modules/meshcentral/')) || (__dirname.endsWith('\\node_modules\\meshcentral\\'))) { | ||||
|         datapath = path.join(__dirname, '../../meshcentral-data'); | ||||
|  | @ -1686,7 +1690,7 @@ function InstallModule(modulename, func, tag1, tag2) { | |||
|     // Looks like we need to keep a global reference to the child process object for this to work correctly.
 | ||||
|     InstallModuleChildProcess = child_process.exec('npm install --no-optional --save ' + modulename, { maxBuffer: 512000, timeout: 10000, cwd: parentpath }, function (error, stdout, stderr) { | ||||
|         InstallModuleChildProcess = null; | ||||
|         if (error != null) { | ||||
|         if ((error != null) && (error != '')) { | ||||
|             console.log('ERROR: Unable to install required module "' + modulename + '". MeshCentral may not have access to npm, or npm may not have suffisent rights to load the new module. Try "npm install ' + modulename + '" to manualy install this module.\r\n'); | ||||
|             process.exit(); | ||||
|             return; | ||||
|  | @ -1735,7 +1739,7 @@ function mainStart(args) { | |||
|         if (ldap == true) { modules.push('ldapauth-fork'); } | ||||
|         if (config.letsencrypt != null) { modules.push('greenlock'); modules.push('le-store-certbot'); modules.push('le-challenge-fs'); modules.push('le-acme-core'); } // Add Greenlock Modules
 | ||||
|         if (config.settings.mongodb != null) { modules.push('mongojs'); } // Add MongoJS
 | ||||
|         else if (config.settings.mongo != null) { modules.push('mongodb'); } // Add MongoDB
 | ||||
|         else if (config.settings.xmongodb != null) { modules.push('mongodb'); } // Add MongoDB
 | ||||
|         if (config.smtp != null) { modules.push('nodemailer'); } // Add SMTP support
 | ||||
| 
 | ||||
|         // Get the current node version
 | ||||
|  | @ -1744,6 +1748,9 @@ function mainStart(args) { | |||
|         // If running NodeJS < 8, install "util.promisify"
 | ||||
|         if (nodeVersion < 8) { modules.push('util.promisify'); } | ||||
| 
 | ||||
|         // Setup encrypted zip support if needed
 | ||||
|         if (config.settings.autobackup && config.settings.autobackup.zippassword) { modules.push('archiver-zip-encrypted'); } | ||||
| 
 | ||||
|         // Setup 2nd factor authentication
 | ||||
|         if (config.settings.no2factorauth !== true) { | ||||
|             // Setup YubiKey OTP if configured
 | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue