add certificate manager stub
This commit is contained in:
37
src/certificatemanager.js
Normal file
37
src/certificatemanager.js
Normal file
@@ -0,0 +1,37 @@
|
||||
/* jslint node:true */
|
||||
|
||||
'use strict';
|
||||
|
||||
var acme = require('./cert/acme.js'),
|
||||
assert = require('assert'),
|
||||
async = require('async'),
|
||||
config = require('./config.js'),
|
||||
debug = require('debug')('src/certificatemanager'),
|
||||
paths = require('./paths.js'),
|
||||
sysinfo = require('./sysinfo.js');
|
||||
|
||||
exports = module.exports = {
|
||||
initialize: initialize,
|
||||
uninitialize: uninitialize,
|
||||
autoRenew: autoRenew
|
||||
};
|
||||
|
||||
function initialize(callback) {
|
||||
if (!config.isCustomDomain()) return callback();
|
||||
|
||||
callback();
|
||||
// TODO: check if dns is in sync first!
|
||||
|
||||
// acme.getCertificate(config.adminFqdn(), paths.APP_CERTS_DIR, function (error) {
|
||||
// copy to nginx cert dir
|
||||
// reload nginx
|
||||
// });
|
||||
}
|
||||
|
||||
function uninitialize(callback) {
|
||||
callback();
|
||||
}
|
||||
|
||||
function autoRenew() {
|
||||
debug('will automatically renew certs');
|
||||
}
|
||||
15
src/cron.js
15
src/cron.js
@@ -7,6 +7,7 @@ exports = module.exports = {
|
||||
|
||||
var apps = require('./apps.js'),
|
||||
assert = require('assert'),
|
||||
certificateManager = require('./certificatemanager.js'),
|
||||
cloudron = require('./cloudron.js'),
|
||||
config = require('./config.js'),
|
||||
CronJob = require('cron').CronJob,
|
||||
@@ -23,7 +24,8 @@ var gAutoupdaterJob = null,
|
||||
gBackupJob = null,
|
||||
gCleanupTokensJob = null,
|
||||
gDockerVolumeCleanerJob = null,
|
||||
gSchedulerSyncJob = null;
|
||||
gSchedulerSyncJob = null,
|
||||
gCertificateRenewJob = null;
|
||||
|
||||
var NOOP_CALLBACK = function (error) { if (error) console.error(error); };
|
||||
|
||||
@@ -107,6 +109,14 @@ function recreateJobs(unusedTimeZone, callback) {
|
||||
timeZone: allSettings[settings.TIME_ZONE_KEY]
|
||||
});
|
||||
|
||||
if (gCertificateRenewJob) gCertificateRenewJob.stop();
|
||||
gCertificateRenewJob = new CronJob({
|
||||
cronTime: '00 00 */12 * * *', // every 12 hours
|
||||
onTick: certificateManager.autoRenew,
|
||||
start: true,
|
||||
timeZone: allSettings[settings.TIME_ZONE_KEY]
|
||||
});
|
||||
|
||||
settings.events.removeListener(settings.AUTOUPDATE_PATTERN_KEY, autoupdatePatternChanged);
|
||||
settings.events.on(settings.AUTOUPDATE_PATTERN_KEY, autoupdatePatternChanged);
|
||||
autoupdatePatternChanged(allSettings[settings.AUTOUPDATE_PATTERN_KEY]);
|
||||
@@ -179,5 +189,8 @@ function uninitialize(callback) {
|
||||
if (gSchedulerSyncJob) gSchedulerSyncJob.stop();
|
||||
gSchedulerSyncJob = null;
|
||||
|
||||
if (gCertificateRenewJob) gCertificateRenewJob.stop();
|
||||
gCertificateRenewJob = null;
|
||||
|
||||
callback();
|
||||
}
|
||||
|
||||
@@ -10,6 +10,7 @@ exports = module.exports = {
|
||||
var assert = require('assert'),
|
||||
async = require('async'),
|
||||
auth = require('./auth.js'),
|
||||
certificateManager = require('./certificatemanager.js'),
|
||||
cloudron = require('./cloudron.js'),
|
||||
cron = require('./cron.js'),
|
||||
config = require('./config.js'),
|
||||
@@ -234,6 +235,7 @@ function start(callback) {
|
||||
async.series([
|
||||
auth.initialize,
|
||||
database.initialize,
|
||||
certificateManager.initialize,
|
||||
cloudron.initialize, // keep this here because it reads activation state that others depend on
|
||||
taskmanager.initialize,
|
||||
mailer.initialize,
|
||||
@@ -254,6 +256,7 @@ function stop(callback) {
|
||||
taskmanager.uninitialize,
|
||||
cron.uninitialize,
|
||||
mailer.uninitialize,
|
||||
certificateManager.initialize,
|
||||
database.uninitialize,
|
||||
gHttpServer.close.bind(gHttpServer),
|
||||
gInternalHttpServer.close.bind(gInternalHttpServer)
|
||||
|
||||
Reference in New Issue
Block a user