diff --git a/src/certificates.js b/src/certificates.js index 407b59e8d..998298ea6 100644 --- a/src/certificates.js +++ b/src/certificates.js @@ -9,6 +9,7 @@ var acme = require('./cert/acme.js'), config = require('./config.js'), constants = require('./constants.js'), debug = require('debug')('box:src/certificates'), + eventlog = require('./eventlog.js'), fs = require('fs'), mailer = require('./mailer.js'), nginx = require('./nginx.js'), @@ -159,7 +160,9 @@ function autoRenew(callback) { var certFilePath = path.join(paths.APP_CERTS_DIR, domain + '.cert'); var keyFilePath = path.join(paths.APP_CERTS_DIR, domain + '.key'); - mailer.certificateRenewed(domain, error ? error.message : ''); + var errorMessage = error ? error.message : ''; + eventlog.add(eventlog.ACTION_CERTIFICATE_RENEWAL, { username: 'cron' }, { domain: domain, error: errorMessage }); + mailer.certificateRenewed(domain, errorMessage); if (error) { debug('autoRenew: could not renew cert for %s because %s', domain, error); diff --git a/src/eventlog.js b/src/eventlog.js index 638b74ac2..7802e7c63 100644 --- a/src/eventlog.js +++ b/src/eventlog.js @@ -15,6 +15,7 @@ exports = module.exports = { ACTION_APP_UNINSTALL: 'app.uninstall', ACTION_APP_UPDATE: 'app.update', ACTION_BACKUP: 'cloudron.backup', + ACTION_CERTIFICATE_RENEWAL: 'certificate.renew', ACTION_CLI_MODE: 'settings.climode', ACTION_PROFILE: 'user.profile', ACTION_REBOOT: 'cloudron.reboot', diff --git a/webadmin/src/js/index.js b/webadmin/src/js/index.js index b88f37aa8..6a2887388 100644 --- a/webadmin/src/js/index.js +++ b/webadmin/src/js/index.js @@ -218,6 +218,7 @@ var ACTION_APP_RESTORE = 'app.restore'; var ACTION_APP_UNINSTALL = 'app.uninstall'; var ACTION_APP_UPDATE = 'app.update'; var ACTION_BACKUP = 'cloudron.backup'; +var ACTION_CERTIFICATE_RENEWAL = 'certificate.renew'; var ACTION_CLI_MODE = 'settings.climode'; var ACTION_PROFILE = 'user.profile'; var ACTION_REBOOT = 'cloudron.reboot'; @@ -238,6 +239,7 @@ app.filter('eventLogDetails', function() { case ACTION_APP_UNINSTALL: return 'App ' + data.id + ' uninstalled'; case ACTION_APP_UPDATE: return 'App ' + data.id + ' updated to version ' + data.appStoreId + '@' + data.toVersion; case ACTION_BACKUP: return 'Backup'; + case ACTION_CERTIFICATE_RENEWAL: return 'Certificate renewal for ' + data.domain + (data.error ? 'succeeded' : 'failed'); case ACTION_CLI_MODE: return 'CLI mode was ' + (data.enabled ? 'enabled' : 'disabled'); case ACTION_PROFILE: return 'User profile change'; case ACTION_REBOOT: return 'Reboot';