Modernize intranet

This commit is contained in:
cytopia 2016-10-22 16:39:08 +02:00
parent e7418b4c61
commit 093ab03b86
No known key found for this signature in database
GPG Key ID: 6D56EDB8695128A2
44 changed files with 522 additions and 753 deletions

View File

@ -1,459 +1,101 @@
/**
* Most CSS is taken from Twitter Bootstrap...
* License info taken from Bootstrap:
* // Copyright 2014-2015 Twitter, Inc.
* // Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
*/
/********************************************************************************
* Element Defaults
********************************************************************************/
html, body {
-webkit-tap-highlight-color: rgba(0,0,0,0);
font-family: "Helvetica Neue",Helvetica,Arial,sans-serif;
font-size: 13px;
line-height: 1.42857143;
color: #333;
background-color: #fff;
margin: 0;
box-sizing: border-box;
tab-size: 4;
}
h1, h2, h3 {
margin-top: 20px;
margin-bottom: 10px;
}
h1, h2, h3, h4, h5, h6 {
font-family: inherit;
font-weight: 500;
line-height: 1.1;
color: inherit;
}
h1 {
margin: .67em 0;
font-size: 2em;
}
h3 {
font-size: 24px;
}
ol, ul {
margin-top: 0;
margin-bottom: 10px;
}
article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary {
display: block;
}
button, input, select, textarea {
font-family: inherit;
font-size: inherit;
line-height: inherit;
}
button, html input[type=button], input[type=reset], input[type=submit] {
-webkit-appearance: button;
cursor: pointer;
}
button, select {
text-transform: none;
}
button {
overflow: visible;
}
button, input, optgroup, select, textarea {
margin: 0;
font: inherit;
color: inherit;
}
a {
color: #337ab7;
text-decoration: none;
background-color: transparent;
}
table {
background-color: transparent;
border-spacing: 0;
border-collapse: collapse;
}
th {
text-align: left;
}
td, th {
padding: 0;
}
pre {
display: block;
padding: 9.5px;
margin: 0 0 10px;
font-size: 13px;
line-height: 1.42857143;
color: #333;
/* Fix tables
-------------------------------------------------- */
td {
word-break: break-all;
word-wrap: break-word;
background-color: #f5f5f5;
border: 1px solid #ccc;
border-radius: 4px;
overflow: auto;
}
code, kbd, pre, samp {
font-family: Menlo,Monaco,Consolas,"Courier New",monospace;
font-size: 1em;
}
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
/********************************************************************************
* Custom
********************************************************************************/
/* navbar */
.navbar-inverse {
background-color: #222;
border-color: #080808;
}
.navbar-static-top {
z-index: 1000;
border-width: 0 0 1px;
}
.navbar {
/* Sticky footer styles
-------------------------------------------------- */
html {
position: relative;
min-height: 50px;
margin-bottom: 20px;
border: 1px solid transparent;
min-height: 100%;
}
.navbar-nav {
margin: 7.5px -15px;
body {
/* Margin bottom by footer height */
margin-bottom: 80px;
}
.nav {
padding-left: 0;
margin-bottom: 0;
list-style: none;
}
/* navbar header */
.container-fluid>.navbar-collapse, .container-fluid>.navbar-header, .container>.navbar-collapse, .container>.navbar-header {
margin-right: -15px;
margin-left: -15px;
}
/* navbar toggle */
.navbar-inverse .navbar-toggle {
border-color: #333;
}
.navbar-inverse .navbar-toggle .icon-bar {
background-color: #fff;
}
.navbar-toggle .icon-bar+.icon-bar {
margin-top: 4px;
}
.navbar-toggle .icon-bar {
display: block;
width: 22px;
height: 2px;
border-radius: 1px;
}
.navbar-toggle {
position: relative;
float: right;
padding: 9px 10px;
margin-top: 8px;
margin-right: 15px;
margin-bottom: 8px;
background-color: transparent;
background-image: none;
border: 1px solid transparent;
border-radius: 4px;
}
.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form {
border-color: #101010;
}
.navbar-collapse {
padding-right: 15px;
padding-left: 15px;
overflow-x: visible;
-webkit-overflow-scrolling: touch;
border-top: 1px solid transparent;
-webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.collapse {
display: none;
}
/* navbar brand */
span.navbar-brand {
background-color: transparent !important;
cursor:default;
}
.navbar-brand {
float: left;
height: 50px;
padding: 15px 15px;
font-size: 18px;
line-height: 20px;
color: #337ab7;
}
/* misc */
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0,0,0,0);
border: 0;
}
/* li */
.nav>li {
position: relative;
display: block;
}
.navbar-inverse .navbar-nav>li>a {
background-color: transparent !important;
}
.navbar-inverse .navbar-nav>li>a {
color: #9d9d9d;
}
.navbar-inverse .navbar-nav>.active>a, .navbar-inverse .navbar-nav>.active>a:focus, .navbar-inverse .navbar-nav>.active>a:hover {
color: #fff;
background-color: #080808;
}
.navbar-nav>li>a {
padding-top: 10px;
padding-bottom: 10px;
line-height: 20px;
}
.nav>li>a {
position: relative;
display: block;
padding: 10px 15px;
}
/* container, row, column */
.container {
padding-right: 15px;
padding-left: 15px;
margin-right: auto;
margin-left: auto;
}
.row {
margin-right: -15px;
margin-left: -15px;
}
.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 {
position: relative;
min-height: 1px;
padding-right: 15px;
padding-left: 15px;
}
/* Footer */
.footer {
width: 100%;
height: 60px;
background-color: #f5f5f5;
}
/* table */
.table {
position: absolute;
bottom: 0;
width: 100%;
max-width: 100%;
margin-bottom: 20px;
}
.table-striped>tbody>tr:nth-of-type(odd) {
background-color: #f9f9f9;
}
.table>caption+thead>tr:first-child>td, .table>caption+thead>tr:first-child>th, .table>colgroup+thead>tr:first-child>td, .table>colgroup+thead>tr:first-child>th, .table>thead:first-child>tr:first-child>td, .table>thead:first-child>tr:first-child>th {
border-top: 0;
}
.table>thead>tr>th {
vertical-align: bottom;
border-bottom: 2px solid #ddd;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
.table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
padding: 8px;
line-height: 1.42857143;
vertical-align: top;
border-top: 1px solid #ddd;
}
.table>tbody>tr.success>td,
.table>tbody>tr.success>th,
.table>tbody>tr>td.success,
.table>tbody>tr>th.success,
.table>tfoot>tr.success>td,
.table>tfoot>tr.success>th,
.table>tfoot>tr>td.success,
.table>tfoot>tr>th.success,
.table>thead>tr.success>td,
.table>thead>tr.success>th,
.table>thead>tr>td.success,
.table>thead>tr>th.success {
background-color: #dff0d8;
}
.table>tbody>tr.danger>td,
.table>tbody>tr.danger>th,
.table>tbody>tr>td.danger,
.table>tbody>tr>th.danger,
.table>tfoot>tr.danger>td,
.table>tfoot>tr.danger>th,
.table>tfoot>tr>td.danger,
.table>tfoot>tr>th.danger,
.table>thead>tr.danger>td,
.table>thead>tr.danger>th,
.table>thead>tr>td.danger,
.table>thead>tr>th.danger {
background-color: #f2dede;
/* Set the fixed height of the footer here */
height: 60px;
background-color: #f5f5f5;
}
/* Circle Box
-------------------------------------------------- */
.text-right {
text-align: right;
.circles{
margin:0px auto;
}
.circles > div {
overflow:hidden;
float:left;
width:auto;
height:auto;
position: relative;
border-radius:50%;
-moz-border-radius:50%;
-webkit-border-radius:50%;
-khtml-border-radius: 50%;
background:#eee;
}
/********************************************************************************
* Clearings
********************************************************************************/
.btn-group-vertical>.btn-group:after, .btn-toolbar:after, .clearfix:after, .container-fluid:after, .container:after, .dl-horizontal dd:after, .form-horizontal .form-group:after, .modal-footer:after, .modal-header:after, .nav:after, .navbar-collapse:after, .navbar-header:after, .navbar:after, .pager:after, .panel-body:after, .row:after {
clear: both;
.circles > div > div {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
}
.btn-group-vertical>.btn-group:after, .btn-group-vertical>.btn-group:before, .btn-toolbar:after, .btn-toolbar:before, .clearfix:after, .clearfix:before, .container-fluid:after, .container-fluid:before, .container:after, .container:before, .dl-horizontal dd:after, .dl-horizontal dd:before, .form-horizontal .form-group:after, .form-horizontal .form-group:before, .modal-footer:after, .modal-footer:before, .modal-header:after, .modal-header:before, .nav:after, .nav:before, .navbar-collapse:after, .navbar-collapse:before, .navbar-header:after, .navbar-header:before, .navbar:after, .navbar:before, .pager:after, .pager:before, .panel-body:after, .panel-body:before, .row:after, .row:before {
.circles > div > div > div {
display: table;
content: " ";
width: 100%;
height: 100%;
}
:after, :before {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
.circles > div > div > div > div {
display: table-cell;
text-align: center;
vertical-align: middle;
}
@media (max-width: 320px)
{
.circles > div {padding: 50%;}
}
@media (min-width: 321px) and (max-width: 800px)
{
.circles > div {padding: 50%;}
}
@media (min-width: 801px)
{
.circles > div {padding: 40%;}
}
/********************************************************************************
* Media queries
********************************************************************************/
@media (min-width: 768px) {
.navbar-static-top {
border-radius: 0;
}
.navbar {
border-radius: 4px;
}
.container {
width: 750px;
}
.container-fluid>.navbar-collapse, .container-fluid>.navbar-header, .container>.navbar-collapse, .container>.navbar-header {
margin-right: 0;
margin-left: 0;
}
.navbar-header {
float: left;
}
.navbar-toggle {
display: none;
}
.container-fluid>.navbar-collapse, .container-fluid>.navbar-header, .container>.navbar-collapse, .container>.navbar-header {
margin-right: 0;
margin-left: 0;
}
.navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse {
padding-right: 0;
padding-left: 0;
}
.navbar-collapse.collapse {
display: block!important;
height: auto!important;
padding-bottom: 0;
overflow: visible!important;
}
.navbar-collapse {
width: auto;
border-top: 0;
-webkit-box-shadow: none;
box-shadow: none;
}
.navbar-nav {
float: left;
margin: 0;
}
.navbar-nav>li {
float: left;
}
.navbar-nav>li>a {
padding-top: 15px;
padding-bottom: 15px;
}
}
@media (min-width: 992px) {
.container {
width: 970px;
}
.col-md-12 {
width: 100%;
}
.col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9 {
float: left;
}
}
@media (min-width: 1200px) {
.container {
width: 1170px;
}
}
/* Overwrites for PHPinfo(); */
/* Overwrites for PHPinfo();
-------------------------------------------------- */
a.navbar-brand {
background-color: transparent !important;
}
.navbar-inverse .navbar-nav>li>a {
background-color: transparent !important;
a.nav-link {
background-color: transparent !important;
}
img.d-inline-block {
float: none;
}
nav.navbar {
font-family: -apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
font-size: 1rem;
line-height: 1.5;
color: #373a3c;
background-color: #fff;
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.1 KiB

View File

@ -0,0 +1,2 @@
<?xml version="1.0" encoding="utf-8"?>
<browserconfig><msapplication><tile><square70x70logo src="/assets/favicon/ms-icon-70x70.png"/><square150x150logo src="/assets/favicon/ms-icon-150x150.png"/><square310x310logo src="/assets/favicon/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>

View File

@ -2,49 +2,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<link href="/assets/css/custom.css" rel="stylesheet">
<title>DevilBox</title>
<?php require '../include/head.php'; ?>
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand" href="#">DevilBox</span>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/vhosts.php">Virtual Hosts</a></li>
<li class="active"><a href="#">Databases</a></li>
<li> | </li>
<li><a href="/phpinfo.php">PHP info</a></li>
<li><a href="/opcache.php">PHP opcache</a></li>
<li><a href="/mysqlinfo.php">MySQL info</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<?php require '../include/navigation.php'; ?>
<div class="container">
<h1>Databases</h1>
<br/>
<br/>
<div class="row">
<div class="col-md-12">
@ -52,7 +18,7 @@
$databases = getDatabases();
?>
<table class="table table-striped">
<thead>
<thead class="thead-inverse">
<tr>
<th>Name</th>
<th>Charset</th>
@ -74,6 +40,7 @@
<?php endforeach; ?>
</tbody>
</table>
</div>
</div>

Binary file not shown.

After

Width:  |  Height:  |  Size: 928 B

View File

@ -2,185 +2,174 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<link href="/assets/css/custom.css" rel="stylesheet">
<title>DevilBox</title>
<?php require '../include/head.php'; ?>
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand" href="#">DevilBox</span>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li class="active"><a href="#">Home</a></li>
<li><a href="/vhosts.php">Virtual Hosts</a></li>
<li><a href="/databases.php">Databases</a></li>
<li> | </li>
<li><a href="/phpinfo.php">PHP info</a></li>
<li><a href="/opcache.php">PHP opcache</a></li>
<li><a href="/mysqlinfo.php">MySQL info</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<?php require '../include/navigation.php'; ?>
<div class="container">
<h1>DevilBox Overview</h1>
<div class="row">
<div class="col-md-12">
<img class="float-xs-left" src="/assets/img/devilbox_80.png" />
<h1 class="float-xs-left text-muted">The devilbox</h1>
</div>
</div>
<br/>
<hr/>
<br/>
<div class="row">
<div class="col-md-12">
<h2 class="text-xs-center">Docker setup</h2>
</div>
</div>
<table class="table table-striped">
<br/>
<br/>
<div class="row">
<!-- ############################################################ -->
<!-- HTTPD Docker Circle -->
<!-- ############################################################ -->
<div class="col-md-4">
<div class="circles">
<div>
<div class="bg-danger">
<div>
<div>
<?php echo getHttpVersion();?>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- ############################################################ -->
<!-- PHP Docker Circle -->
<!-- ############################################################ -->
<div class="col-md-4">
<div class="circles">
<div>
<div class="bg-info">
<div>
<div>
<?php echo getPHPVersion(); ?>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- ############################################################ -->
<!-- MySQL Docker Circle-->
<!-- ############################################################ -->
<div class="col-md-4">
<div class="circles">
<div>
<div class="bg-warning">
<div>
<div>
<?php echo getMySQLVersion();?>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<br/><br/>
<div class="row">
<!-- ############################################################ -->
<!-- HTTPD Docker -->
<!-- ############################################################ -->
<div class="col-md-4">
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th colspan="2">httpd docker</th>
</tr>
</thead>
<tbody>
<tr></tr>
<!--
Docker Images
-->
<tr>
<th colspan="2"><h3>Docker Images</h3></th>
</tr>
<tr>
<th>Webserver</th>
<td><?php echo getHttpVersion();?></td>
</tr>
<tr>
<th>PHP</th>
<td><?php echo getPHPVersion(); ?></td>
</tr>
<tr>
<th>MySQL Server</th>
<td><?php echo getMySQLVersion();?></td>
</tr>
<!--
Docker Host (your computer)
-->
<tr>
<th colspan="2"><h3>Host computer</h3></th>
</tr>
<tr>
<th>MySQL datadir</th>
<td><?php echo $ENV['HOST_PATH_TO_MYSQL_DATADIR'];?></td>
</tr>
<tr>
<th>MySQL socket</th>
<td>./run/mysql/mysql.sock</td>
</tr>
<tr>
<th>WWW Document Roots</th>
<td><?php echo $ENV['HOST_PATH_TO_WWW_DOCROOTS'];?></td>
</tr>
<tr>
<th>Log dir</th>
<td>./log</td>
</tr>
<tr></tr>
<!-- ############################################################ -->
<!-- HTTPD Docker -->
<!-- ############################################################ -->
<tr>
<th colspan="2"><h3>[docker] HTTPD</h3></th>
</tr>
<tr>
<th>IP Adress</th>
<th>IP Address</th>
<td><?php echo $HTTPD_HOST_ADDR;?></td>
</tr>
<!-- ############################################################ -->
<!-- PHP Docker -->
<!-- ############################################################ -->
<?php
$error_loc;
$error_127;
$error_rem;
my_mysql_connection_test($error_loc, 'localhost');
my_mysql_connection_test($error_127, '127.0.0.1');
my_mysql_connection_test($error_rem);
?>
<tr>
<th colspan="2"><h3>[docker] PHP</h3></th>
<th>Document Root</th>
<td>/shared/httpd</td>
</tr>
</tbody>
</table>
</div>
<!-- ############################################################ -->
<!-- PHP Docker -->
<!-- ############################################################ -->
<div class="col-md-4">
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th>IP Adress</th>
<th colspan="2">php docker</th>
</tr>
</thead>
<tbody>
<tr>
<th>IP Address</th>
<td><?php echo $PHP_HOST_ADDR;?></td>
</tr> <tr>
<th>MySQL Remote Port forwarded to PHP Docker?</th>
<td><?php echo ($ENV['FORWARD_MYSQL_PORT_TO_LOCALHOST']) ? 'To: 127.0.0.1:'.$ENV['MYSQL_LOCAL_PORT'] : 'No'; ?></td>
</tr>
<tr>
<th>MySQL Remote Socket mounted on PHP Docker?</th>
<td class="<?php echo file_exists($ENV['MYSQL_SOCKET_PATH']) && getMySQLConfigByKey('socket') == $ENV['MYSQL_SOCKET_PATH']? 'success' : 'danger'; ?>">
<?php
if ($ENV['MOUNT_MYSQL_SOCKET_TO_LOCALDISK']) {
if (file_exists($ENV['MYSQL_SOCKET_PATH'])) {
if (getMySQLConfigByKey('socket') == $ENV['MYSQL_SOCKET_PATH']) {
echo 'OK: '.$ENV['MYSQL_SOCKET_PATH'];
} else {
echo 'ERR: Mounted from mysql:'.$ENV['MYSQL_SOCKET_PATH']. ', but socket is in mysql:'.getMySQLConfigByKey('socket');
}
} else {
echo 'ERR: '.$ENV['MYSQL_SOCKET_PATH']. ' does not exist inside docker';
}
} else {
echo 'No';
}
?>
</td>
<th>Document Root</th>
<td>/shared/httpd</td>
</tr>
<tr>
<th>PHP-MySQL connection test: localhost</th>
<td class="<?php echo !$error_loc ? 'success' : 'danger';?>"><?php echo !$error_loc ? 'OK' : $error_loc;?></td>
</tr>
<tr>
<th>PHP-MySQL connection test: 127.0.0.1</th>
<td class="<?php echo !$error_127 ? 'success' : 'danger';?>"><?php echo !$error_127 ? 'OK' : $error_127;?></td>
</tr>
<tr>
<th>PHP-MySQL connection test: <?php echo $MYSQL_HOST_ADDR;?></th>
<td class="<?php echo !$error_rem ? 'success' : 'danger';?>"><?php echo !$error_rem ? 'OK' : $error_rem;?></td>
</tr>
<tr>
<th>PHP: Custom mounted config files</th>
<th>Custom config</th>
<td>
<?php
$files = scandir('/etc/php-custom.d');
foreach ($files as $file) {
if (preg_match('/.*\.ini$/', $file) === 1) {
echo $file.'<br/>';
}
}
?>
<?php foreach (scandir('/etc/php-custom.d') as $file): ?>
<?php if (preg_match('/.*\.ini$/', $file) === 1): ?>
<?php echo $file.'<br/>';?>
<?php endif; ?>
<?php endforeach; ?>
</td>
</tr>
<tr>
<th>PHP: Xdebug enabled</th>
<?php $error; $valid = php_has_valid_mysql_socket($error); ?>
<th>MySQL socket</th>
<td class="<?php echo !$valid ? 'bg-danger' : '';?>">
<?php echo !$valid ? 'Error' : $ENV['MYSQL_SOCKET_PATH']; ?>
</td>
</tr>
<tr>
<?php $err; $valid = my_mysql_connection_test($err, 'localhost'); ?>
<th>MySQL test</th>
<td class="<?php echo !$valid ? 'bg-danger' : '';?>">
<?php echo $valid ? '<span class="bg-success">OK</span> localhost:3306' : 'Failoed: localhost:3306'; ?>
</td>
</tr>
<tr>
<?php $err; $valid = my_mysql_connection_test($err, '127.0.0.1'); ?>
<th>MySQL test</th>
<td class="<?php echo !$valid ? 'bg-danger' : '';?>">
<?php echo $valid ? '<span class="bg-success">OK</span> 127.0.0.1:3306' : 'Failed: 127.0.0.1:3306'; ?>
</td>
</tr>
<tr>
<?php $err; $valid = my_mysql_connection_test($err, $MYSQL_HOST_ADDR); ?>
<th>MySQL test</th>
<td class="<?php echo !$valid ? 'bg-danger' : '';?>">
<?php echo $valid ? '<span class="bg-success">OK</span> '.$MYSQL_HOST_ADDR.':3306' : 'Failed: '.$MYSQL_HOST_ADDR.':3306'; ?>
</td>
</tr>
<tr>
<th>Xdebug enabled</th>
<td>
<?php if ($ENV['PHP_XDEBUG_ENABLE'] == ini_get('xdebug.remote_enable')): ?>
<?php echo ini_get('xdebug.remote_enable') == 1 ? 'Yes' : ini_get('xdebug.remote_enable'); ?>
@ -191,7 +180,7 @@
</td>
</tr>
<tr>
<th>PHP: Xdebug remote Host</th>
<th>Xdebug remote</th>
<td>
<?php if ($ENV['PHP_XDEBUG_REMOTE_HOST'] == ini_get('xdebug.remote_host')): ?>
<?php echo ini_get('xdebug.remote_host'); ?>
@ -202,7 +191,7 @@
</td>
</tr>
<tr>
<th>PHP: Xdebug remote Port</th>
<th>Xdebug Port</th>
<td>
<?php if ($ENV['PHP_XDEBUG_REMOTE_PORT'] == ini_get('xdebug.remote_port')): ?>
<?php echo ini_get('xdebug.remote_port'); ?>
@ -212,39 +201,142 @@
<?php endif; ?>
</td>
</tr>
<tr></tr>
<!-- ############################################################ -->
<!-- MySQL Docker -->
<!-- ############################################################ -->
</tbody>
</table>
</div>
<!-- ############################################################ -->
<!-- MySQL Docker -->
<!-- ############################################################ -->
<div class="col-md-4">
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th colspan="2"><h3>[docker] MySQL</h3></th>
<th colspan="2">db docker</th>
</tr>
</thead>
<tbody>
<tr>
<th>IP Adress</th>
<th>IP Address</th>
<td><?php echo $MYSQL_HOST_ADDR;?></td>
</tr> <tr>
<th>MySQL root password</th>
<td><?php echo $MYSQL_ROOT_PASS; ?></td>
</tr>
<tr>
<th>MySQL socket</th>
<td><?php echo getMySQLConfigByKey('socket'); ?></td>
</tr>
<tr>
<th>MySQL logging</th>
<td><?php echo getMySQLConfigByKey('general-log');?></td>
<th>MySQL datadir</th>
<td><?php echo getMySQLConfigByKey('datadir'); ?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div><!-- /.col -->
</div><!-- /.row -->
<br/>
<br/>
<div class="row">
<div class="col-md-12">
<h2 class="text-xs-center">Docker to Host mounts</h2>
</div>
</div>
<br/>
<br/>
<div class="row">
<!-- ############################################################ -->
<!-- HTTPD Docker Mounts -->
<!-- ############################################################ -->
<div class="col-md-4">
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th>httpd docker</th>
<th>host</th>
</tr>
</thead>
<tbody>
<tr>
<th>Document Root</th>
<td><?php echo $ENV['HOST_PATH_TO_WWW_DOCROOTS'];?></td>
</tr>
<tr>
<th>Log directory</th>
<td>./log</td>
</tr>
</tbody>
</table>
</div>
<!-- ############################################################ -->
<!-- PHP Docker Mounts -->
<!-- ############################################################ -->
<div class="col-md-4">
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th>php docker</th>
<th>host</th>
</tr>
</thead>
<tbody>
<tr>
<th>Document Root</th>
<td><?php echo $ENV['HOST_PATH_TO_WWW_DOCROOTS'];?></td>
</tr>
<tr>
<th>Custom config</th>
<td>./etc</td>
</tr>
<tr>
<th>Log directory</th>
<td>./log</td>
</tr>
</tbody>
</table>
</div>
<!-- ############################################################ -->
<!-- MySQL Docker Mounts -->
<!-- ############################################################ -->
<div class="col-md-4">
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th>db docker</th>
<th>host</th>
</tr>
</thead>
<tbody>
<tr>
<th>MySQL datadir</th>
<td><?php echo $ENV['HOST_PATH_TO_MYSQL_DATADIR'];?></td>
</tr>
<tr>
<th>MySQL socket</th>
<td>./run/mysql/mysqld.sock</td>
</tr>
<tr>
<th>Log directory</th>
<td>./log</td>
</tr>
</tbody>
</table>
</div>
</div>
</div><!-- /.container -->

View File

@ -0,0 +1,41 @@
{
"name": "App",
"icons": [
{
"src": "\/assets\/favicon\/android-icon-36x36.png",
"sizes": "36x36",
"type": "image\/png",
"density": "0.75"
},
{
"src": "\/assets\/favicon\/android-icon-48x48.png",
"sizes": "48x48",
"type": "image\/png",
"density": "1.0"
},
{
"src": "\/assets\/favicon\/android-icon-72x72.png",
"sizes": "72x72",
"type": "image\/png",
"density": "1.5"
},
{
"src": "\/assets\/favicon\/android-icon-96x96.png",
"sizes": "96x96",
"type": "image\/png",
"density": "2.0"
},
{
"src": "\/assets\/favicon\/android-icon-144x144.png",
"sizes": "144x144",
"type": "image\/png",
"density": "3.0"
},
{
"src": "\/assets\/favicon\/android-icon-192x192.png",
"sizes": "192x192",
"type": "image\/png",
"density": "4.0"
}
]
}

View File

@ -2,49 +2,15 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<link href="/assets/css/custom.css" rel="stylesheet">
<title>DevilBox</title>
<?php require '../include/head.php'; ?>
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand" href="#">DevilBox</span>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/vhosts.php">Virtual Hosts</a></li>
<li><a href="/databases.php">Databases</a></li>
<li> | </li>
<li><a href="/phpinfo.php">PHP info</a></li>
<li><a href="/opcache.php">PHP opcache</a></li>
<li class="active"><a href="#">MySQL info</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<?php require '../include/navigation.php'; ?>
<div class="container">
<h1>MySQL Info</h1>
<br/>
<br/>
<div class="row">
<div class="col-md-12">
@ -56,8 +22,8 @@
<li><a target="_blank" href="https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html">https://dev.mysql.com/doc/refman/5.7/en/server-system-variables.html</a></li>
</ul>
<table class="table table-striped">
<thead>
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th>Variable</th>
<th>Value</th>

View File

@ -2,43 +2,11 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<link href="/assets/css/custom.css" rel="stylesheet">
<title>DevilBox</title>
<?php require '../include/head.php'; ?>
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand" href="#">DevilBox</span>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li><a href="/vhosts.php">Virtual Hosts</a></li>
<li><a href="/databases.php">Databases</a></li>
<li> | </li>
<li class="active"><a href="#">PHP info</a></li>
<li><a href="/opcache.php">PHP opcache</a></li>
<li><a href="/mysqlinfo.php">MySQL info</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<?php require '../include/navigation.php'; ?>
<div class="container">
@ -47,7 +15,6 @@
<?php phpinfo(); ?>
</div>
</div>
</div><!-- /.container -->
<?php require '../include/footer.php'; ?>

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

View File

@ -2,56 +2,22 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="description" content="">
<meta name="author" content="">
<link rel="icon" href="favicon.ico">
<link href="/assets/css/custom.css" rel="stylesheet">
<title>DevilBox</title>
<?php require '../include/head.php'; ?>
</head>
<body>
<nav class="navbar navbar-inverse navbar-static-top">
<div class="container">
<div class="navbar-header">
<button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#navbar" aria-expanded="false" aria-controls="navbar">
<span class="sr-only">Toggle navigation</span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
<span class="icon-bar"></span>
</button>
<span class="navbar-brand" href="#">DevilBox</span>
</div>
<div id="navbar" class="collapse navbar-collapse">
<ul class="nav navbar-nav">
<li><a href="/">Home</a></li>
<li class="active"><a href="#">Virtual Hosts</a></li>
<li><a href="/databases.php">Databases</a></li>
<li> | </li>
<li><a href="/phpinfo.php">PHP info</a></li>
<li><a href="/opcache.php">PHP opcache</a></li>
<li><a href="/mysqlinfo.php">MySQL info</a></li>
</ul>
</div><!--/.nav-collapse -->
</div>
</nav>
<?php require '../include/navigation.php'; ?>
<div class="container">
<h1>Virtual Hosts</h1>
<br/>
<br/>
<div class="row">
<div class="col-md-12">
<?php $vHosts = getVirtualHosts(); ?>
<?php if ($vHosts): ?>
<table class="table table-striped">
<thead>
<table class="table table-striped table-sm">
<thead class="thead-inverse">
<tr>
<th>Project</th>
<th>DocumentRoot</th>
@ -71,7 +37,7 @@
<tr>
<td><?php echo $vHost['name'];?></td>
<td><?php echo $ENV['HOST_PATH_TO_WWW_DOCROOTS'];?>/<?php echo $vHost['name'];?>/htdocs</td>
<td id="valid-<?php echo $vHost['name'];?>">&nbsp;&nbsp;&nbsp;</td>
<td class="text-xs-center text-xs-small" id="valid-<?php echo $vHost['name'];?>">&nbsp;&nbsp;&nbsp;</td>
<td id="href-<?php echo $vHost['name'];?>"><?php echo $filler;?></td>
</tr>
<input type="hidden" name="vhost[]" class="vhost" value="<?php echo $vHost['name'];?>" />
@ -110,11 +76,11 @@
error = this.responseText;
if (error.length) {
el_valid.className += ' danger';
el_valid.className += ' bg-danger';
el_valid.innerHTML = 'ERR';
el_href.innerHTML = error;
} else {
el_valid.className += ' success';
el_valid.className += ' bg-success';
el_valid.innerHTML = 'OK';
el_href.innerHTML = '<a target="_blank" href="http://'+vhost+'.loc">'+vhost+'.loc</a>';
}

View File

@ -1,6 +1,14 @@
<footer class="footer">
<nav class="navbar navbar-full footer navbar-dark bg-inverse">
<div class="container">
<p class="text-muted">Render time: <?php echo round((microtime(true) - $TIME_START), 2); ?> sec</p>
</div>
</footer>
<?php my_mysqli_close($GLOBALS['MY_MYSQL_LINK']); ?>
</nav>
<?php my_mysqli_close($GLOBALS['MY_MYSQL_LINK']); ?>
<?php /*
<!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
<script src="/vendor/jquery/jquery.min.js"></script>
<!-- Include all compiled plugins (below), or include individual files as needed -->
<script src="/vendor/bootstrap/bootstrap.min.js"></script>
*/
?>

View File

@ -255,8 +255,28 @@ function getMySQLConfig() {
function php_has_valid_mysql_socket(&$error) {
global $ENV;
if (!$ENV['MOUNT_MYSQL_SOCKET_TO_LOCALDISK']) {
$error = 'Socket mount not enabled.';
return FALSE;
}
if (!file_exists($ENV['MYSQL_SOCKET_PATH'])) {
$error = 'Socket file not found.';
return FALSE;
}
if (getMySQLConfigByKey('socket') != $ENV['MYSQL_SOCKET_PATH']) {
$error = 'Mounted from mysql:'.$ENV['MYSQL_SOCKET_PATH']. ', but socket is in mysql:'.getMySQLConfigByKey('socket');
return FALSE;
}
$error = '';
return TRUE;
}

View File

@ -0,0 +1,32 @@
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Meta -->
<meta name="description" content="The devilbox - your customizable LAMP/LEMP stack.">
<meta name="author" content="cytopia">
<!-- Favicons -->
<link rel="apple-touch-icon" sizes="57x57" href="/assets/favicon/apple-icon-57x57.png">
<link rel="apple-touch-icon" sizes="60x60" href="/assets/favicon/apple-icon-60x60.png">
<link rel="apple-touch-icon" sizes="72x72" href="/assets/favicon/apple-icon-72x72.png">
<link rel="apple-touch-icon" sizes="76x76" href="/assets/favicon/apple-icon-76x76.png">
<link rel="apple-touch-icon" sizes="114x114" href="/assets/favicon/apple-icon-114x114.png">
<link rel="apple-touch-icon" sizes="120x120" href="/assets/favicon/apple-icon-120x120.png">
<link rel="apple-touch-icon" sizes="144x144" href="/assets/favicon/apple-icon-144x144.png">
<link rel="apple-touch-icon" sizes="152x152" href="/assets/favicon/apple-icon-152x152.png">
<link rel="apple-touch-icon" sizes="180x180" href="/assets/favicon/apple-icon-180x180.png">
<link rel="icon" type="image/png" sizes="192x192" href="/assets/favicon/android-icon-192x192.png">
<link rel="icon" type="image/png" sizes="32x32" href="/assets/favicon/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="96x96" href="/assets/favicon/favicon-96x96.png">
<link rel="icon" type="image/png" sizes="16x16" href="/assets/favicon/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<meta name="msapplication-TileColor" content="#ffffff">
<meta name="msapplication-TileImage" content="/assets/favicon/ms-icon-144x144.png">
<meta name="theme-color" content="#ffffff">
<!-- CSS/JS -->
<link href="/vendor/bootstrap/bootstrap.min.css" rel="stylesheet">
<link href="/assets/css/custom.css" rel="stylesheet">
<title>The DevilBox</title>

View File

@ -0,0 +1,46 @@
<?php $current = basename($_SERVER['SCRIPT_FILENAME']);?>
<nav class="navbar navbar-full navbar-dark bg-inverse">
<div class="container">
<a class="navbar-brand" href="#">
<img src="/assets/img/logo_30.png" width="30" height="30" class="d-inline-block align-top" alt="">
devilbox
</a>
<ul class="nav navbar-nav">
<?php $file = 'index.php'; $name = 'Home';?>
<li class="nav-item <?php echo $file == $current ? 'active' : '';?>">
<a class="nav-link" href="<?php echo $file == $current ? '#' : '/'.$file;?>"><?php echo $name;?><?php echo $file == $current ? ' <span class="sr-only">(current)</span>' : '';?></a>
</li>
<?php $file = 'vhosts.php'; $name = 'Virtual Hosts';?>
<li class="nav-item <?php echo $file == $current ? 'active' : '';?>">
<a class="nav-link" href="<?php echo $file == $current ? '#' : '/'.$file;?>"><?php echo $name;?><?php echo $file == $current ? ' <span class="sr-only">(current)</span>' : '';?></a>
</li>
<?php $file = 'databases.php'; $name = 'Databases';?>
<li class="nav-item <?php echo $file == $current ? 'active' : '';?>">
<a class="nav-link" href="<?php echo $file == $current ? '#' : '/'.$file;?>"><?php echo $name;?><?php echo $file == $current ? ' <span class="sr-only">(current)</span>' : '';?></a>
</li>
<?php $file = 'phpinfo.php'; $name = 'PHP info';?>
<li class="nav-item <?php echo $file == $current ? 'active' : '';?>">
<a class="nav-link" href="<?php echo $file == $current ? '#' : '/'.$file;?>"><?php echo $name;?><?php echo $file == $current ? ' <span class="sr-only">(current)</span>' : '';?></a>
</li>
<?php $file = 'mysqlinfo.php'; $name = 'MySQL info';?>
<li class="nav-item <?php echo $file == $current ? 'active' : '';?>">
<a class="nav-link" href="<?php echo $file == $current ? '#' : '/'.$file;?>"><?php echo $name;?><?php echo $file == $current ? ' <span class="sr-only">(current)</span>' : '';?></a>
</li>
<?php $file = 'opcache.php'; $name = 'Opcache';?>
<li class="nav-item <?php echo $file == $current ? 'active' : '';?>">
<a class="nav-link" href="<?php echo $file == $current ? '#' : '/'.$file;?>"><?php echo $name;?><?php echo $file == $current ? ' <span class="sr-only">(current)</span>' : '';?></a>
</li>
</ul>
</div>
</nav>
<br/>