mirror of
https://github.com/mailcow/mailcow-dockerized.git
synced 2024-12-23 02:04:46 +02:00
4d688c5500
* update.sh: precaution ask for deletion of dns_blocklists.cf if old format (#6154) * [Web] Updated lang.zh-cn.json (#6151) [Web] Updated lang.zh-cn.json Co-authored-by: Easton Man <me@eastonman.com> * compose: bump sogo version to include 5.11.2 (#6156) * php: use correct php image + workaround of #6149 (#6159) * compose: bump php-fpm container to correctly use patched c-ares * [Web] check $containers_info contains required fields --------- Co-authored-by: FreddleSpl0it <patschul@posteo.de> --------- Co-authored-by: milkmaker <milkmaker@mailcow.de> Co-authored-by: Easton Man <me@eastonman.com> Co-authored-by: FreddleSpl0it <patschul@posteo.de>
85 lines
2.8 KiB
PHP
85 lines
2.8 KiB
PHP
<?php
|
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/prerequisites.inc.php';
|
|
|
|
if (!isset($_SESSION['mailcow_cc_role']) || $_SESSION['mailcow_cc_role'] != "admin") {
|
|
header('Location: /');
|
|
exit();
|
|
}
|
|
|
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/header.inc.php';
|
|
$_SESSION['return_to'] = $_SERVER['REQUEST_URI'];
|
|
$solr_status = (preg_match("/^([yY][eE][sS]|[yY])+$/", $_ENV["SKIP_SOLR"])) ? false : solr_status();
|
|
$clamd_status = (preg_match("/^([yY][eE][sS]|[yY])+$/", $_ENV["SKIP_CLAMD"])) ? false : true;
|
|
|
|
|
|
if (!isset($_SESSION['gal']) && $license_cache = $redis->Get('LICENSE_STATUS_CACHE')) {
|
|
$_SESSION['gal'] = json_decode($license_cache, true);
|
|
}
|
|
|
|
$js_minifier->add('/web/js/site/debug.js');
|
|
|
|
// vmail df
|
|
$exec_fields = array('cmd' => 'system', 'task' => 'df', 'dir' => '/var/vmail');
|
|
$vmail_df = explode(',', (string)json_decode(docker('post', 'dovecot-mailcow', 'exec', $exec_fields), true));
|
|
|
|
// containers
|
|
$containers_info = (array) docker('info');
|
|
if ($clamd_status === false) unset($containers_info['clamd-mailcow']);
|
|
if ($solr_status === false) unset($containers_info['solr-mailcow']);
|
|
ksort($containers_info);
|
|
$containers = array();
|
|
foreach ($containers_info as $container => $container_info) {
|
|
if (!isset($container_info['State']) || !is_array($container_info['State']) || !isset($container_info['State']['StartedAt'])){
|
|
continue;
|
|
}
|
|
date_default_timezone_set('UTC');
|
|
$StartedAt = date_parse($container_info['State']['StartedAt']);
|
|
if ($StartedAt['hour'] !== false) {
|
|
$date = new \DateTime();
|
|
$date->setTimestamp(mktime(
|
|
$StartedAt['hour'],
|
|
$StartedAt['minute'],
|
|
$StartedAt['second'],
|
|
$StartedAt['month'],
|
|
$StartedAt['day'],
|
|
$StartedAt['year']));
|
|
try {
|
|
$user_tz = new DateTimeZone(getenv('TZ'));
|
|
$date->setTimezone($user_tz);
|
|
$container_info['State']['StartedAtHR'] = $date->format('r');
|
|
} catch(Exception $e) {
|
|
$container_info['State']['StartedAtHR'] = '?';
|
|
}
|
|
}
|
|
else {
|
|
$container_info['State']['StartedAtHR'] = '?';
|
|
}
|
|
$containers[$container] = $container_info;
|
|
}
|
|
|
|
// get mailcow data
|
|
$hostname = getenv('MAILCOW_HOSTNAME');
|
|
$timezone = getenv('TZ');
|
|
|
|
$template = 'debug.twig';
|
|
$template_data = [
|
|
'log_lines' => getenv('LOG_LINES'),
|
|
'vmail_df' => $vmail_df,
|
|
'hostname' => $hostname,
|
|
'timezone' => $timezone,
|
|
'gal' => @$_SESSION['gal'],
|
|
'license_guid' => license('guid'),
|
|
'solr_status' => $solr_status,
|
|
'solr_uptime' => round($solr_status['status']['dovecot-fts']['uptime'] / 1000 / 60 / 60),
|
|
'clamd_status' => $clamd_status,
|
|
'containers' => $containers,
|
|
'ip_check' => customize('get', 'ip_check'),
|
|
'lang_admin' => json_encode($lang['admin']),
|
|
'lang_debug' => json_encode($lang['debug']),
|
|
'lang_datatables' => json_encode($lang['datatables']),
|
|
];
|
|
|
|
require_once $_SERVER['DOCUMENT_ROOT'] . '/inc/footer.inc.php';
|
|
|
|
|