blob: 9c338009c856788c669b4884328d468d80b82cc1 [file] [log] [blame]
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +01001<?php
2require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
3
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +01004if (!isset($_SESSION['mailcow_cc_role']) || $_SESSION['mailcow_cc_role'] != "admin") {
5 header('Location: /');
6 exit();
7}
8
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +01009require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
10$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
11$solr_status = (preg_match("/^([yY][eE][sS]|[yY])+$/", $_ENV["SKIP_SOLR"])) ? false : solr_status();
12$clamd_status = (preg_match("/^([yY][eE][sS]|[yY])+$/", $_ENV["SKIP_CLAMD"])) ? false : true;
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010013
Matthias Andreas Benkard3c18a082022-12-27 17:32:58 +010014
15if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CACHE')) {
16 $_SESSION['gal'] = json_decode($license_cache, true);
17}
18
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010019$js_minifier->add('/web/js/site/debug.js');
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010020
21// vmail df
22$exec_fields = array('cmd' => 'system', 'task' => 'df', 'dir' => '/var/vmail');
23$vmail_df = explode(',', (string)json_decode(docker('post', 'dovecot-mailcow', 'exec', $exec_fields), true));
24
25// containers
26$containers = (array) docker('info');
27if ($clamd_status === false) unset($containers['clamd-mailcow']);
28if ($solr_status === false) unset($containers['solr-mailcow']);
29ksort($containers);
30foreach ($containers as $container => $container_info) {
31 date_default_timezone_set('UTC');
32 $StartedAt = date_parse($container_info['State']['StartedAt']);
33 if ($StartedAt['hour'] !== false) {
34 $date = new \DateTime();
35 $date->setTimestamp(mktime(
36 $StartedAt['hour'],
37 $StartedAt['minute'],
38 $StartedAt['second'],
39 $StartedAt['month'],
40 $StartedAt['day'],
41 $StartedAt['year']));
Matthias Andreas Benkard9dabdab2024-03-06 13:12:09 +010042 try {
43 $user_tz = new DateTimeZone(getenv('TZ'));
44 $date->setTimezone($user_tz);
45 $started = $date->format('r');
46 } catch(Exception $e) {
47 $started = '?';
48 }
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010049 }
50 else {
51 $started = '?';
52 }
53 $containers[$container]['State']['StartedAtHR'] = $started;
54}
55
Matthias Andreas Benkard3c18a082022-12-27 17:32:58 +010056// get mailcow data
57$hostname = getenv('MAILCOW_HOSTNAME');
58$timezone = getenv('TZ');
59
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010060$template = 'debug.twig';
61$template_data = [
62 'log_lines' => getenv('LOG_LINES'),
63 'vmail_df' => $vmail_df,
Matthias Andreas Benkard3c18a082022-12-27 17:32:58 +010064 'hostname' => $hostname,
65 'timezone' => $timezone,
66 'gal' => @$_SESSION['gal'],
67 'license_guid' => license('guid'),
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010068 'solr_status' => $solr_status,
69 'solr_uptime' => round($solr_status['status']['dovecot-fts']['uptime'] / 1000 / 60 / 60),
70 'clamd_status' => $clamd_status,
71 'containers' => $containers,
Matthias Andreas Benkardd63fe562023-11-18 13:18:30 +010072 'ip_check' => customize('get', 'ip_check'),
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010073 'lang_admin' => json_encode($lang['admin']),
Matthias Andreas Benkard3c18a082022-12-27 17:32:58 +010074 'lang_debug' => json_encode($lang['debug']),
75 'lang_datatables' => json_encode($lang['datatables']),
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010076];
77
Matthias Andreas Benkard4edeb9f2021-01-02 15:32:21 +010078require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';
Matthias Andreas Benkardb4b5cc12021-12-28 18:02:04 +010079
80