public
nobgit
read
NobMail
Based on mailcow: dockerized
Languages
Repository composition by tracked source files.
PHP
49%
JavaScript
35%
HTML
9%
CSS
4%
Shell
2%
Python
1%
Lua
0%
Perl
0%
Ruby
0%
SCSS
0%
Create file
Wiki Documentation
Clone
https://nobgit.com/orgs/nobgit/nobmail.git
ssh://[email protected]:2222/orgs/nobgit/nobmail.git
Commit
[API] Added new status route to get some system infos
2ab73da2
data/web/json_api.php | 53 +++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 53 insertions(+)
Diff
diff --git a/data/web/json_api.php b/data/web/json_api.php
index 442428f8..dddb0160 100644
--- a/data/web/json_api.php
+++ b/data/web/json_api.php
@@ -1117,6 +1117,59 @@ if (isset($_SESSION['mailcow_cc_role']) || isset($_SESSION['pending_mailcow_cc_u
break;
}
break;
+ case "status":
+ switch ($object) {
+ case "containers":
+ $containers = (docker('info'));
+ foreach ($containers as $container => $container_info) {
+ $container . ' (' . $container_info['Config']['Image'] . ')';
+ $containerstarttime = ($container_info['State']['StartedAt']);
+ $containerstate = ($container_info['State']['Status']);
+ $containerimage = ($container_info['Config']['Image']);
+
+ $temp[$container] = array(
+ 'type' => 'info',
+ 'container' => $container,
+ 'state' => $containerstate,
+ 'started_at' => $containerstarttime,
+ 'image' => $containerimage
+ );
+
+ }
+ echo json_encode($temp, JSON_UNESCAPED_SLASHES);
+ break;
+ case "vmail":
+ $exec_fields_vmail = array('cmd' => 'system', 'task' => 'df', 'dir' => '/var/vmail');
+ $vmail_df = explode(',', json_decode(docker('post', 'dovecot-mailcow', 'exec', $exec_fields_vmail), true));
+
+ $temp = array(
+ 'type' => 'info',
+ 'disk' => $vmail_df[0],
+ 'used' => $vmail_df[2],
+ 'total'=> $vmail_df[1],
+ 'used_percent' => $vmail_df[4]
+ );
+
+ echo json_encode($temp, JSON_UNESCAPED_SLASHES);
+ break;
+ case "solr":
+ $solr_size = ($solr_status['status']['dovecot-fts']['index']['size']);
+ $solr_documents = ($solr_status['status']['dovecot-fts']['index']['numDocs']);
+
+ if (strtolower(getenv('SKIP_SOLR')) != 'n') {
+ $solr_status = false;
+ }
+
+ echo json_encode(array(
+ 'type' => 'info',
+ 'solr_enabled' => $solr_status,
+ 'solr_size' => $solr_size,
+ 'solr_documents' => $solr_documents
+ ));
+
+ break;
+ }
+ break;
break;
// return no route found if no case is matched
default: