mirror of
https://github.com/cytopia/devilbox.git
synced 2025-06-24 18:25:17 +00:00
Compare commits
52 Commits
Author | SHA1 | Date | |
---|---|---|---|
b5566c1c52 | |||
826859a1cd | |||
71064a7296 | |||
f2088d63a7 | |||
8b70a01a16 | |||
a5f28e80c3 | |||
48e7133825 | |||
2e33d991b7 | |||
8227605036 | |||
565a5c7427 | |||
c165fd2ba0 | |||
d2d1ddfb63 | |||
f7c58ddbc4 | |||
b5a6c0e6ad | |||
ca56dff442 | |||
7c941000c8 | |||
dbfd086227 | |||
895558209e | |||
b6512388d7 | |||
5cce2a8a89 | |||
b00b1e77b9 | |||
f2cca91dd1 | |||
b600f9866a | |||
aae28e7d6d | |||
fe59793304 | |||
c5da81b83b | |||
503667a8da | |||
315fb9e3c4 | |||
fc28e32b0c | |||
180eac149b | |||
dfb6eaec69 | |||
248cf5ba5f | |||
07df58f13a | |||
3bffa62456 | |||
59205dc888 | |||
63437650ee | |||
a11419e82e | |||
234bdd6419 | |||
6a04527456 | |||
0bb019b8a8 | |||
d3492e4acc | |||
4418b305de | |||
933a1c65e1 | |||
cabb7b07aa | |||
97751fad37 | |||
81d896fa93 | |||
270cb45726 | |||
26cbb63f00 | |||
daefd0f927 | |||
44d1f0162f | |||
59619ca9c1 | |||
a6c45353bd |
@ -13,8 +13,8 @@ error_reporting(-1);
|
||||
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
|
||||
|
||||
|
||||
$DEVILBOX_VERSION = 'v2.1.1';
|
||||
$DEVILBOX_DATE = '2022-04-07';
|
||||
$DEVILBOX_VERSION = 'v2.4.0';
|
||||
$DEVILBOX_DATE = '2022-12-18';
|
||||
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
|
||||
|
||||
//
|
||||
|
@ -36,31 +36,32 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
//
|
||||
else if (isset($_GET['software'])) {
|
||||
$no = '<span class="text-danger">not installed</span>';
|
||||
$no_mod = '<span class="text-warning">PHP module not loaded</span>';
|
||||
$software = array();
|
||||
|
||||
if ($_GET['software'] == 'composer') {
|
||||
if ($_GET['software'] == 'angular_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getAngularCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'asgardcms_installer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getAsgardCmsInstallerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'codeception') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getCodeceptionVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'composer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getComposerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drupalc') {
|
||||
else if ($_GET['software'] == 'deployer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrupalConsoleVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush7') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion(7)) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush8') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion(8)) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'drush9') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDrushVersion(9)) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getDeployerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'git') {
|
||||
@ -68,9 +69,24 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGitVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel') {
|
||||
else if ($_GET['software'] == 'grunt_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelVersion()) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGruntCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'gulp') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getGulpVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel_installer') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelInstallerVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'laravel_lumen') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getLaravelLumenVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'mds') {
|
||||
@ -78,6 +94,11 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
$_GET['software'] => (($version = loadClass('Php')->getMdsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'mupdf_tools') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getMupdfToolsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'node') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getNodeVersion()) !== false) ? $version : $no
|
||||
@ -88,20 +109,51 @@ if (loadClass('Helper')->isLoggedIn()) {
|
||||
$_GET['software'] => (($version = loadClass('Php')->getNpmVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'phalcon') {
|
||||
else if ($_GET['software'] == 'phalcon_devtools') {
|
||||
if (!extension_loaded('phalcon')) {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => $no_mod
|
||||
));
|
||||
} else {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhalconDevtoolsVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
}
|
||||
else if ($_GET['software'] == 'phpunit') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhalconVersion()) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getPhpunitVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'symfony') {
|
||||
else if ($_GET['software'] == 'stylelint') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getSymfonyVersion()) !== false) ? $version : $no
|
||||
$_GET['software'] => (($version = loadClass('Php')->getStylelintVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'symfony_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getSymfonyCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'vue_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getVueCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'webpack_cli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getWebpackCliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'wpcli') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getWpcliVersion()) !== false) ? $version : $no
|
||||
));
|
||||
}
|
||||
else if ($_GET['software'] == 'yarn') {
|
||||
echo json_encode(array(
|
||||
$_GET['software'] => (($version = loadClass('Php')->getYarnVersion()) !== false) ? $version : $no
|
||||
));
|
||||
} else {
|
||||
echo json_encode(array($_GET['software'] => 'unknown software'));
|
||||
}
|
||||
|
@ -1,22 +0,0 @@
|
||||
class HtmlEmail extends HTMLElement {
|
||||
constructor() {
|
||||
super();
|
||||
this.attachShadow({ mode: 'open' });
|
||||
|
||||
let emailContent;
|
||||
const templateId = this.dataset.templateId;
|
||||
try {
|
||||
emailContent = document.getElementById(templateId).innerHTML;
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
return;
|
||||
}
|
||||
|
||||
const container = document.createElement('div');
|
||||
container.innerHTML = emailContent;
|
||||
|
||||
this.shadowRoot.appendChild(container);
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define('html-email', HtmlEmail);
|
@ -334,10 +334,117 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
|
||||
<div class="row">
|
||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12 col-margin">
|
||||
<div class="dash-box">
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> PHP Container Setup</div>
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> Available CLI Tools</div>
|
||||
<div class="dash-box-body">
|
||||
<p><small>You can also enter the php container via <code style="background-color:#3d3d3d;">./shell.sh</code> and use the following cli tools:</small></p>
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th colspan="2">Tools</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>Angular Cli</th>
|
||||
<td id="app_angular_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>AsgardCMS Installer</th>
|
||||
<td id="app_asgardcms_installer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Codeception</th>
|
||||
<td id="app_codeception"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Composer</th>
|
||||
<td id="app_composer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Deployer</th>
|
||||
<td id="app_deployer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Git</th>
|
||||
<td id="app_git"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Grunt Cli</th>
|
||||
<td id="app_grunt_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Gulp</th>
|
||||
<td id="app_gulp"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Laravel Installer</th>
|
||||
<td id="app_laravel_installer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Laravel Lumen</th>
|
||||
<td id="app_laravel_lumen"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Mupdf Tools</th>
|
||||
<td id="app_mupdf_tools"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>mysqldump-secure</th>
|
||||
<td id="app_mds"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Node</th>
|
||||
<td id="app_node"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Npm</th>
|
||||
<td id="app_npm"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Phalcon Devtools</th>
|
||||
<td id="app_phalcon_devtools"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Phpunit</th>
|
||||
<td id="app_phpunit"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Stylelint</th>
|
||||
<td id="app_stylelint"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Symfony Cli</th>
|
||||
<td id="app_symfony_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Vue Cli</th>
|
||||
<td id="app_vue_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Webpack Cli</th>
|
||||
<td id="app_webpack_cli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Wordpress Cli</th>
|
||||
<td id="app_wpcli"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Yarn</th>
|
||||
<td id="app_yarn"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12 offset-lg-4 offset-md-0 offset-sm-0 col-margin">
|
||||
<div class="dash-box">
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> PHP Container Status</div>
|
||||
<div class="dash-box-body">
|
||||
<p><small>You have made the following base configuration to the Devilbox:</small></p>
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<p><small>You can also enter the php container and work from inside. The following is available inside the container:</small></p>
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th colspan="2">Settings</th>
|
||||
@ -374,78 +481,7 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
<th colspan="2">Tools</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<th>composer</th>
|
||||
<td id="app_composer"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drupal-console</th>
|
||||
<td id="app_drupalc"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drush7</th>
|
||||
<td id="app_drush7"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drush8</th>
|
||||
<td id="app_drush8"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>drush9</th>
|
||||
<td id="app_drush9"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>git</th>
|
||||
<td id="app_git"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Laravel installer</th>
|
||||
<td id="app_laravel"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>mysqldump-secure</th>
|
||||
<td id="app_mds"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>node</th>
|
||||
<td id="app_node"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>npm</th>
|
||||
<td id="app_npm"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Phalcon devtools</th>
|
||||
<td id="app_phalcon"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Symfony installer</th>
|
||||
<td id="app_symfony"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Wordpress cli</th>
|
||||
<td id="app_wpcli"></td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="col-lg-4 col-md-6 col-sm-12 col-xs-12 offset-lg-4 offset-md-0 offset-sm-0 col-margin">
|
||||
<div class="dash-box">
|
||||
<div class="dash-box-head"><i class="fa fa-info-circle" aria-hidden="true"></i> PHP Container Status</div>
|
||||
<div class="dash-box-body">
|
||||
<p><small>The PHP Docker can connect to the following services via the specified hostnames and IP addresses.</small></p>
|
||||
<p><small>The PHP container can connect to the following services via the specified hostnames and IP addresses.</small></p>
|
||||
<table class="table table-striped table-hover table-bordered table-sm font-small">
|
||||
<thead class="thead-inverse">
|
||||
<tr>
|
||||
@ -913,19 +949,28 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
|
||||
xhttp.open('GET', '_ajax_callback.php?software='+app, true);
|
||||
xhttp.send();
|
||||
}
|
||||
updateVersions('angular_cli');
|
||||
updateVersions('asgardcms_installer');
|
||||
updateVersions('codeception');
|
||||
updateVersions('composer');
|
||||
updateVersions('drupalc');
|
||||
updateVersions('drush7');
|
||||
updateVersions('drush8');
|
||||
updateVersions('drush9');
|
||||
updateVersions('deployer');
|
||||
updateVersions('git');
|
||||
updateVersions('laravel');
|
||||
updateVersions('grunt_cli');
|
||||
updateVersions('gulp');
|
||||
updateVersions('laravel_installer');
|
||||
updateVersions('laravel_lumen');
|
||||
updateVersions('mds');
|
||||
updateVersions('mupdf_tools');
|
||||
updateVersions('node');
|
||||
updateVersions('npm');
|
||||
updateVersions('phalcon');
|
||||
updateVersions('symfony');
|
||||
updateVersions('phalcon_devtools');
|
||||
updateVersions('phpunit');
|
||||
updateVersions('stylelint');
|
||||
updateVersions('symfony_cli');
|
||||
updateVersions('vue_cli');
|
||||
updateVersions('webpack_cli');
|
||||
updateVersions('wpcli');
|
||||
updateVersions('yarn');
|
||||
})();
|
||||
</script>
|
||||
</body>
|
||||
|
@ -24,6 +24,28 @@ require $VEN_DIR . DIRECTORY_SEPARATOR . 'Mail' . DIRECTORY_SEPARATOR .'mimeDeco
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'Mail.php';
|
||||
require $LIB_DIR . DIRECTORY_SEPARATOR . 'Sort.php';
|
||||
|
||||
if (isset($_GET['get-body']) && is_numeric($_GET['get-body'])) {
|
||||
$messageNumber = $_GET['get-body'];
|
||||
$MyMbox = new \devilbox\Mail('/var/mail/devilbox');
|
||||
$message = $MyMbox->getMessage($messageNumber-1);
|
||||
$structure = $message['decoded'];
|
||||
|
||||
$body = null;
|
||||
if (isset($structure->body)) {
|
||||
$body = $structure->body;
|
||||
}
|
||||
elseif(isset($structure->parts[1]->body)) {
|
||||
$body = $structure->parts[1]->body;
|
||||
}
|
||||
elseif(isset($structure->parts[0]->body)) {
|
||||
$body = $structure->parts[0]->body;
|
||||
}
|
||||
|
||||
exit(json_encode(array(
|
||||
'raw' => htmlentities($message['raw']),
|
||||
'body' => $body,
|
||||
)));
|
||||
}
|
||||
|
||||
if (isset($_GET['delete']) && is_numeric($_GET['delete'])) {
|
||||
$message = $_GET['delete'];
|
||||
@ -171,17 +193,6 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<?php
|
||||
$message = htmlentities($data['raw']);
|
||||
$structure = $data['decoded'];
|
||||
$body = null;
|
||||
|
||||
if (isset($structure->body)) {
|
||||
$body = $structure->body;
|
||||
}
|
||||
elseif(isset($structure->parts[1]->body)) {
|
||||
$body = $structure->parts[1]->body;
|
||||
}
|
||||
elseif(isset($structure->parts[0]->body)) {
|
||||
$body = $structure->parts[0]->body;
|
||||
}
|
||||
?>
|
||||
<tr id="<?php echo $data['num'];?>" class="subject">
|
||||
<td><?php echo $data['num'];?></td>
|
||||
@ -198,17 +209,13 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<tr id="mail-<?php echo $data['num'];?>" style="display:none">
|
||||
<td></td>
|
||||
<td colspan="5">
|
||||
<?php if ($body !== null): ?>
|
||||
<template id="mail-body-<?=$data['num']?>"><?=$body?></template>
|
||||
<html-email data-template-id="mail-body-<?=$data['num']?>"></html-email>
|
||||
<?php else: ?>
|
||||
<div class="alert alert-warning" role="alert">
|
||||
No valid body found
|
||||
</div>
|
||||
<?php endif; ?>
|
||||
<div class="email-body"></div>
|
||||
<div class="alert alert-warning" role="alert" style="display:none">
|
||||
No valid body found
|
||||
</div>
|
||||
<hr>
|
||||
<p><a class="btn btn-primary" data-toggle="collapse" href="#email-<?php echo $data['num'];?>" aria-expanded="false" aria-controls="email-<?php echo $data['num'];?>">Raw source</a></p>
|
||||
<div class="collapse" id="email-<?php echo $data['num'];?>"><pre><?php echo $message;?></pre></div>
|
||||
<div class="collapse" id="email-<?php echo $data['num'];?>"><pre class="raw-email-body"></pre></div>
|
||||
</td>
|
||||
</tr>
|
||||
<?php endforeach; ?>
|
||||
@ -227,12 +234,34 @@ $messages = $MyMbox->get($sortOrderArr);
|
||||
<script>
|
||||
$(function() {
|
||||
$('.subject').click(function() {
|
||||
var id = ($(this).attr('id'));
|
||||
$('#mail-'+id).toggle();
|
||||
const id = ($(this).attr('id'));
|
||||
const row = $('#mail-'+id);
|
||||
row.toggle();
|
||||
|
||||
const bodyElement = row.find('.email-body')[0];
|
||||
if(bodyElement.shadowRoot !== null){
|
||||
// We've already fetched the message content.
|
||||
return;
|
||||
}
|
||||
|
||||
bodyElement.attachShadow({ mode: 'open' });
|
||||
bodyElement.shadowRoot.innerHTML = 'Loading...';
|
||||
|
||||
$.get('?get-body=' + id, function(response){
|
||||
response = JSON.parse(response);
|
||||
row.find('.raw-email-body').html(response.raw);
|
||||
|
||||
const body = response.body;
|
||||
if(body === null){
|
||||
row.find('.alert').show();
|
||||
}
|
||||
else{
|
||||
bodyElement.shadowRoot.innerHTML = body;
|
||||
}
|
||||
})
|
||||
})
|
||||
// Handler for .ready() called.
|
||||
});
|
||||
</script>
|
||||
<script src="/assets/js/html-email.js"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
@ -16,6 +16,7 @@
|
||||
<p>I am currently the sole creator and maintainer of the Devilbox and all of its required projects.<br/>If you find this useful or if it makes your daily programming life easier, consider donating to keep this project alive.</p>
|
||||
<ul>
|
||||
<li><a target="_blank" href="https://github.com/sponsors/cytopia"><strong>GitHub sponsorship</strong></a></li>
|
||||
<li><a target="_blank" href="https://opencollective.com/devilbox"><strong>Open Collective</strong></a></li>
|
||||
<li><a target="_blank" href="https://www.patreon.com/devilbox"><strong>Patreon</strong></a></li>
|
||||
</ul>
|
||||
<br/>
|
||||
@ -39,55 +40,59 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-5.2">docker-php-fpm-5.2</a></td>
|
||||
<td>Legacy PHP 5.2 base images (amd64 and i386)</td>
|
||||
<td>Legacy PHP 5.2 base images (<code>amd64</code> and <code>i386</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-5.3">docker-php-fpm-5.3</a></td>
|
||||
<td>Legacy PHP 5.3 base images (amd64 and arm64)</td>
|
||||
<td>Legacy PHP 5.3 base images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-5.4">docker-php-fpm-5.4</a></td>
|
||||
<td>Legacy PHP 5.4 base images (amd64 and arm64)</td>
|
||||
<td>Legacy PHP 5.4 base images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-5.5">docker-php-fpm-5.5</a></td>
|
||||
<td>Legacy PHP 5.5 base images (amd64 and arm64)</td>
|
||||
<td>Legacy PHP 5.5 base images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-8.0">docker-php-fpm-8.0</a></td>
|
||||
<td>PHP 8.0 base images (amd64 and arm64)</td>
|
||||
<td>PHP 8.0 base images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-8.1">docker-php-fpm-8.1</a></td>
|
||||
<td>PHP 8.1 base images (amd64 and arm64)</td>
|
||||
<td>PHP 8.1 base images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-8.2">docker-php-fpm-8.2</a></td>
|
||||
<td>Upcoming PHP 8.2 base images (amd64 and arm64)</td>
|
||||
<td>PHP 8.2 base images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm">docker-php-fpm</a></td>
|
||||
<td>PHP-FPM Devilbox images</td>
|
||||
<td>PHP-FPM Devilbox images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-php-fpm-community">docker-php-fpm-community</a></td>
|
||||
<td>PHP-FPM Community images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-mysql">docker-mysql</a></td>
|
||||
<td>MySQL, MariaDB and PerconaDB images (amd64 and arm64)</td>
|
||||
<td>MySQL, MariaDB and PerconaDB images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-apache-2.2">docker-apache-2.2</a></td>
|
||||
<td>Apache 2.2 images (amd64 and arm64)</td>
|
||||
<td>Apache 2.2 images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-apache-2.4">docker-apache-2.4</a></td>
|
||||
<td>Apache 2.4 images (amd64 and arm64)</td>
|
||||
<td>Apache 2.4 images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-nginx-stable">docker-nginx-stable</a></td>
|
||||
<td>Nginx stable images (amd64 and arm64)</td>
|
||||
<td>Nginx stable images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-nginx-mainline">docker-nginx-mainline</a></td>
|
||||
<td>Nginx mainline images (amd64 and arm64)</td>
|
||||
<td>Nginx mainline images (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-haproxy">docker-haproxy</a></td>
|
||||
@ -95,7 +100,7 @@
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-ngrok">docker-ngrok</a></td>
|
||||
<td>Ngrok image</td>
|
||||
<td>Ngrok image (<code>amd64</code> and <code>arm64</code>)</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/devilbox/docker-varnish">docker-varnish</a></td>
|
||||
@ -142,15 +147,19 @@
|
||||
<td>Re-usable GitHub Action Workflows</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/shell-command-retry-action">shell-command-retry-action</a></td>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/shell-command-retry-action">shell-command-retry</a></td>
|
||||
<td>GitHub Action</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/docker-tag-action">docker-tag-action</a></td>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/docker-tag-action">docker-tag</a></td>
|
||||
<td>GitHub Action</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/git-ref-matrix-action">git-ref-matrix-action</a></td>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/git-ref-matrix-action">git-ref-matrix</a></td>
|
||||
<td>GitHub Action</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><i class="fa fa-github-alt" aria-hidden="true"></i> <a target="_blank" href="https://github.com/cytopia/upload-artifact-verify-action">upload-artifact-verify</a></td>
|
||||
<td>GitHub Action</td>
|
||||
</tr>
|
||||
<tr>
|
||||
|
@ -76,6 +76,7 @@ class Connection {
|
||||
|
||||
// Detect version and choose appropriate database driver
|
||||
switch (substr($version,0,2)) {
|
||||
case '15': return 'Postgres';break;
|
||||
case '14': return 'Postgres';break;
|
||||
case '13': return 'Postgres13';break;
|
||||
case '12': return 'Postgres12';break;
|
||||
|
@ -263,7 +263,7 @@ HTML;
|
||||
<nav class="navbar navbar-toggleable-md navbar-inverse bg-inverse footer">
|
||||
<div class="container justify-content-end">
|
||||
<ul class="nav navbar-nav">
|
||||
<li class="nav-item nav-link">Render time: ${render_time} sec</li>
|
||||
<li class="nav-item nav-link">Render time: {$render_time} sec</li>
|
||||
<li class="nav-item"><a class="nav-link" target="_blank" href="https://github.com/cytopia/devilbox"><code>Github</code></a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/credits.php"><code>Credits</code></a></li>
|
||||
<li class="nav-item"><a class="nav-link" href="/support.php"><code>Support</code></a></li>
|
||||
|
@ -70,6 +70,22 @@ class Mail
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Returns a single message
|
||||
*
|
||||
* @param int $messageIndex The zero-based index of the message to return.
|
||||
*/
|
||||
public function getMessage($messageIndex){
|
||||
$message = $this->_Mbox->get($messageIndex);
|
||||
$Decoder = new \Mail_mimeDecode($message, "\r\n");
|
||||
return array(
|
||||
'num' => $messageIndex + 1,
|
||||
'raw' => $message,
|
||||
'decoded' => $Decoder->decode($this->_defaultMimeParams)
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieve emails.
|
||||
*
|
||||
@ -87,13 +103,7 @@ class Mail
|
||||
|
||||
// Get messages in reverse order (last entry first)
|
||||
for ($n = $total; $n >= 0; --$n) {
|
||||
$message = $this->_Mbox->get($n);
|
||||
$Decoder = new \Mail_mimeDecode($message, "\r\n");
|
||||
$messages[] = array(
|
||||
'num' => $n + 1,
|
||||
'raw' => $message,
|
||||
'decoded' => $Decoder->decode($this->_defaultMimeParams)
|
||||
);
|
||||
$messages[] = $this->getMessage($n);
|
||||
}
|
||||
|
||||
// Optionally sort messages
|
||||
|
@ -71,7 +71,8 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
public function __destruct()
|
||||
{
|
||||
if ($this->_link) {
|
||||
pg_close($this->_link);
|
||||
// DO NOT CLOSE. It is kind of shared.
|
||||
//pg_close($this->_link);
|
||||
}
|
||||
}
|
||||
|
||||
@ -148,7 +149,7 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
// Get schemas for each database
|
||||
foreach ($databases as $name => &$database) {
|
||||
$PSQL = new Pgsql(
|
||||
$this->getIpAddress(),
|
||||
$GLOBALS['PGSQL_HOST_NAME'],
|
||||
array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
@ -179,7 +180,7 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
public function getSchemaSize($database, $schema)
|
||||
{
|
||||
$PSQL = new Pgsql(
|
||||
$this->getIpAddress(),
|
||||
$GLOBALS['PGSQL_HOST_NAME'],
|
||||
array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
@ -217,7 +218,7 @@ class Pgsql extends BaseClass implements BaseInterface
|
||||
public function getTableCount($database, $schema)
|
||||
{
|
||||
$PSQL = new Pgsql(
|
||||
$this->getIpAddress(),
|
||||
$GLOBALS['PGSQL_HOST_NAME'],
|
||||
array(
|
||||
'user' => loadClass('Helper')->getEnv('PGSQL_ROOT_USER'),
|
||||
'pass' => loadClass('Helper')->getEnv('PGSQL_ROOT_PASSWORD'),
|
||||
|
@ -35,9 +35,19 @@ class Php extends BaseClass implements BaseInterface
|
||||
$uid = loadClass('Helper')->egrep('/[0-9]+/', $uid);
|
||||
return $uid;
|
||||
}
|
||||
public function getGitVersion()
|
||||
public function getAngularCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('git --version 2>/dev/null', $output);
|
||||
$output = loadClass('Helper')->exec('ng version 2>/dev/null | grep -i "^Angular CLI" | head -1', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getAsgardCmsInstallerVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('asgardcms --version --no-ansi 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getCodeceptionVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('codecept --version --no-ansi 2>/dev/null | grep -i ^Codecept', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getComposerVersion()
|
||||
@ -45,15 +55,45 @@ class Php extends BaseClass implements BaseInterface
|
||||
$output = loadClass('Helper')->exec('composer --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getDrushVersion($version)
|
||||
public function getDeployerVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('drush'.$version.' --version 2>/dev/null', $output);
|
||||
$output = loadClass('Helper')->exec('dep --version --no-ansi 2>/dev/null | grep -i ^Deploy', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getDrupalConsoleVersion()
|
||||
public function getGitVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('drupal --version 2>/dev/null | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+[-rc0-9.]*/', $output);
|
||||
$output = loadClass('Helper')->exec('git --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getGruntCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('grunt --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getGulpVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('gulp --version --no-color 2>/dev/null | head -1', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getLaravelInstallerVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('laravel --version --no-ansi 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getLaravelLumenVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('lumen --version --no-ansi 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getMdsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('mysqldump-secure --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getMupdfToolsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('mutool -v 2>&1', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getNodeVersion()
|
||||
{
|
||||
@ -65,31 +105,56 @@ class Php extends BaseClass implements BaseInterface
|
||||
$output = loadClass('Helper')->exec('npm --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getLaravelVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('laravel --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getMdsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('mysqldump-secure --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getPhalconVersion()
|
||||
public function getPhalconDevtoolsVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('phalcon --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getSymfonyVersion()
|
||||
public function getPhpunitVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('phpunit --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getStylelintVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('stylelint --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getSymfonyCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('symfony -V 2>/dev/null | tr -d "[:cntrl:]" | sed "s/\[[0-9]*m//g"', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getWpcliVersion()
|
||||
public function getVueCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('wp --version 2>/dev/null', $output);
|
||||
$output = loadClass('Helper')->exec('vue --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getWebpackCliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('webpack-cli --version --no-stats --no-target --no-watch --no-color 2>/dev/null | grep webpack-cli', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getWpcliVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('wp --version 2>/dev/null | grep -i ^WP', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
public function getYarnVersion()
|
||||
{
|
||||
$output = loadClass('Helper')->exec('yarn --version 2>/dev/null', $output);
|
||||
return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
}
|
||||
//public function getDrushVersion($version)
|
||||
//{
|
||||
// $output = loadClass('Helper')->exec('drush'.$version.' --version 2>/dev/null', $output);
|
||||
// return loadClass('Helper')->egrep('/[0-9.]+/', $output);
|
||||
//}
|
||||
//public function getDrupalConsoleVersion()
|
||||
//{
|
||||
// $output = loadClass('Helper')->exec('drupal --version 2>/dev/null | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[mGK]//g"', $output);
|
||||
// return loadClass('Helper')->egrep('/[0-9.]+[-rc0-9.]*/', $output);
|
||||
//}
|
||||
|
||||
|
||||
|
||||
|
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
1
.github/ISSUE_TEMPLATE/bug_report.yml
vendored
@ -152,6 +152,7 @@ body:
|
||||
attributes:
|
||||
label: "Config: .env file"
|
||||
description: "Please copy and paste your `.env` file into this text area"
|
||||
render: shell
|
||||
validations:
|
||||
required: true
|
||||
|
||||
|
12
.github/ISSUE_TEMPLATE/config.yml
vendored
12
.github/ISSUE_TEMPLATE/config.yml
vendored
@ -1,12 +1,18 @@
|
||||
---
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Devilbox Discord Chat
|
||||
url: https://discord.gg/2wP3V6kBj4
|
||||
about: Please notify or discuss about any other requests here.
|
||||
|
||||
- name: Devilbox Discourse Forum
|
||||
url: https://devilbox.discourse.group/
|
||||
about: Please ask and answer general questions here.
|
||||
|
||||
- name: Devilbox Community Support
|
||||
url: https://devilbox.discourse.group/
|
||||
about: Please ask and answer questions here.
|
||||
- name: Devilbox Gitter Chat
|
||||
url: https://gitter.im/devilbox/Lobby
|
||||
about: Please ask and answer questions here.
|
||||
|
||||
- name: Devilbox documentation
|
||||
url: https://devilbox.readthedocs.io/
|
||||
about: Find the Devilbox documentation here.
|
||||
|
4
.github/workflows/params-mysql.yml
vendored
4
.github/workflows/params-mysql.yml
vendored
@ -29,7 +29,9 @@ env:
|
||||
{"MYSQL_SERVER": "mariadb-10.5"},
|
||||
{"MYSQL_SERVER": "mariadb-10.6"},
|
||||
{"MYSQL_SERVER": "mariadb-10.7"},
|
||||
{"MYSQL_SERVER": "mariadb-10.8"}
|
||||
{"MYSQL_SERVER": "mariadb-10.8"},
|
||||
{"MYSQL_SERVER": "mariadb-10.9"},
|
||||
{"MYSQL_SERVER": "mariadb-10.10"}
|
||||
]
|
||||
|
||||
|
||||
|
2
.github/workflows/params-pgsql.yml
vendored
2
.github/workflows/params-pgsql.yml
vendored
@ -34,6 +34,8 @@ env:
|
||||
{"PGSQL_SERVER": "PgSQL 13-alpine"},
|
||||
{"PGSQL_SERVER": "PgSQL 14"},
|
||||
{"PGSQL_SERVER": "PgSQL 14-alpine"},
|
||||
{"PGSQL_SERVER": "PgSQL 15"},
|
||||
{"PGSQL_SERVER": "PgSQL 15-alpine"},
|
||||
{"PGSQL_SERVER": "PgSQL latest"},
|
||||
{"PGSQL_SERVER": "PgSQL alpine"}
|
||||
]
|
||||
|
2
.github/workflows/params-redis.yml
vendored
2
.github/workflows/params-redis.yml
vendored
@ -25,6 +25,8 @@ env:
|
||||
{"REDIS_SERVER": "Redis 6.0-alpine"},
|
||||
{"REDIS_SERVER": "Redis 6.2"},
|
||||
{"REDIS_SERVER": "Redis 6.2-alpine"},
|
||||
{"REDIS_SERVER": "Redis 7.0"},
|
||||
{"REDIS_SERVER": "Redis 7.0-alpine"},
|
||||
{"REDIS_SERVER": "Redis latest"},
|
||||
{"REDIS_SERVER": "Redis alpine"}
|
||||
]
|
||||
|
6
.gitignore
vendored
6
.gitignore
vendored
@ -50,9 +50,9 @@
|
||||
|
||||
|
||||
# Ignore custom global vhost gen templates
|
||||
/cfg/vhost-gen/apache22.conf
|
||||
/cfg/vhost-gen/apache24.conf
|
||||
/cfg/vhost-gen/nginx.conf
|
||||
/cfg/vhost-gen/apache22.yml
|
||||
/cfg/vhost-gen/apache24.yml
|
||||
/cfg/vhost-gen/nginx.yml
|
||||
|
||||
# Ignore custom HTTPD configs
|
||||
/cfg/apache-2.2/*.conf
|
||||
|
@ -20,326 +20,70 @@ RETRIES=10
|
||||
# -------------------------------------------------------------------------------------------------
|
||||
|
||||
PHP_TAG="$( grep 'devilbox/php' "${DVLBOX_PATH}/docker-compose.yml" | sed 's/^.*-work-//g' )"
|
||||
PHP_MOD="$( run "curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/doc/php-modules.md'" "${RETRIES}" )";
|
||||
|
||||
|
||||
###
|
||||
### Get PHP core modules (5 rounds)
|
||||
###
|
||||
if ! PHP52_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '52-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.2"
|
||||
exit 1
|
||||
fi
|
||||
get_modules() {
|
||||
local php_version="${1}"
|
||||
local stage="${2}"
|
||||
local modules=
|
||||
local names=
|
||||
|
||||
if ! PHP53_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '53-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.3"
|
||||
exit 1
|
||||
fi
|
||||
modules="$( \
|
||||
echo "${PHP_MOD}" \
|
||||
| grep -E "ext_${stage}_.+_${php_version}" \
|
||||
| grep -v '><' \
|
||||
| sed \
|
||||
-e "s|.*ext_${stage}_||g" \
|
||||
-e "s|_${php_version}.*||g" \
|
||||
)"
|
||||
# Ensure to fetch name with correct upper-/lower-case
|
||||
while read -r module; do
|
||||
name="$( \
|
||||
echo "${PHP_MOD}" \
|
||||
| grep -Eio ">${module}<" \
|
||||
| sed -e 's|>||g' -e 's|<||g' \
|
||||
| sort -u \
|
||||
)"
|
||||
names="$( printf "%s\n%s" "${names}" "${name}" )"
|
||||
done < <(echo "${modules}")
|
||||
|
||||
if ! PHP54_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '54-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.4"
|
||||
exit 1
|
||||
fi
|
||||
# Remove leading and trailing newline
|
||||
names="$( echo "${names}" | grep -v '^$' )"
|
||||
|
||||
if ! PHP55_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '55-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.5"
|
||||
exit 1
|
||||
fi
|
||||
# Output comma separated
|
||||
echo "${names}" | paste -d, -s
|
||||
}
|
||||
|
||||
if ! PHP56_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '56-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.6"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP70_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '70-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.0"
|
||||
exit 1
|
||||
fi
|
||||
PHP52_BASE="$( get_modules "5.2" "base" )"
|
||||
PHP53_BASE="$( get_modules "5.3" "base" )"
|
||||
PHP54_BASE="$( get_modules "5.4" "base" )"
|
||||
PHP55_BASE="$( get_modules "5.5" "base" )"
|
||||
PHP56_BASE="$( get_modules "5.6" "base" )"
|
||||
PHP70_BASE="$( get_modules "7.0" "base" )"
|
||||
PHP71_BASE="$( get_modules "7.1" "base" )"
|
||||
PHP72_BASE="$( get_modules "7.2" "base" )"
|
||||
PHP73_BASE="$( get_modules "7.3" "base" )"
|
||||
PHP74_BASE="$( get_modules "7.4" "base" )"
|
||||
PHP80_BASE="$( get_modules "8.0" "base" )"
|
||||
PHP81_BASE="$( get_modules "8.1" "base" )"
|
||||
PHP82_BASE="$( get_modules "8.2" "base" )"
|
||||
|
||||
if ! PHP71_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '71-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.1"
|
||||
exit 1
|
||||
fi
|
||||
PHP52_MODS="$( get_modules "5.2" "mods" )"
|
||||
PHP53_MODS="$( get_modules "5.3" "mods" )"
|
||||
PHP54_MODS="$( get_modules "5.4" "mods" )"
|
||||
PHP55_MODS="$( get_modules "5.5" "mods" )"
|
||||
PHP56_MODS="$( get_modules "5.6" "mods" )"
|
||||
PHP70_MODS="$( get_modules "7.0" "mods" )"
|
||||
PHP71_MODS="$( get_modules "7.1" "mods" )"
|
||||
PHP72_MODS="$( get_modules "7.2" "mods" )"
|
||||
PHP73_MODS="$( get_modules "7.3" "mods" )"
|
||||
PHP74_MODS="$( get_modules "7.4" "mods" )"
|
||||
PHP80_MODS="$( get_modules "8.0" "mods" )"
|
||||
PHP81_MODS="$( get_modules "8.1" "mods" )"
|
||||
PHP82_MODS="$( get_modules "8.2" "mods" )"
|
||||
|
||||
if ! PHP72_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '72-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP73_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '73-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.3"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP74_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '74-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.4"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP80_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '80-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP81_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '81-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP82_BASE="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '82-base' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
###
|
||||
### Get PHP mods modules (5 rounds)
|
||||
###
|
||||
|
||||
if ! PHP52_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '52-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP53_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '53-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.3"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP54_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '54-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.4"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP55_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '55-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.5"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP56_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '56-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 5.6"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP70_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '70-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP71_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '71-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP72_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '72-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP73_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '73-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.3"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP74_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '74-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 7.4"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP80_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '80-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.0"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP81_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '81-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.1"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! PHP82_MODS="$( run "\
|
||||
curl -sS 'https://raw.githubusercontent.com/devilbox/docker-php-fpm/${PHP_TAG}/README.md' \
|
||||
| tac \
|
||||
| tac \
|
||||
| grep -E '82-mods' \
|
||||
| sed \
|
||||
-e 's/.*\">//g' \
|
||||
-e 's/<.*//g'" "${RETRIES}" )"; then
|
||||
>&2 echo "Failed to retrieve modules for PHP 8.2"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
###
|
||||
### Todo: add ioncube
|
||||
|
@ -14,7 +14,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
|
||||
RETRIES=10
|
||||
# see framework-cakephp-php8.sh for PHP 8+ tests
|
||||
DISABLED_VERSIONS=("5.2" "5.3" "5.4" "5.5" "8.0" "8.1" "8.2")
|
||||
DISABLED_VERSIONS=("5.2" "5.3" "5.4" "5.5" "5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2")
|
||||
|
||||
PHP_VERSION="$( get_php_version "${DVLBOX_PATH}" )"
|
||||
|
||||
|
@ -13,7 +13,7 @@ DVLBOX_PATH="$( cd "${SCRIPT_PATH}/../.." && pwd -P )"
|
||||
. "${SCRIPT_PATH}/../scripts/.lib.sh"
|
||||
|
||||
RETRIES=10
|
||||
DISABLED_VERSIONS=("5.3" "5.4" "5.5" "5.6" "8.0" "8.1" "8.2")
|
||||
DISABLED_VERSIONS=("5.3" "5.4" "5.5" "5.6" "7.0" "7.1" "7.2" "7.3" "7.4" "8.0" "8.1" "8.2")
|
||||
DISABLED_MYSQL_VERSIONS=("mysql-8.0" "percona-8.0")
|
||||
|
||||
|
||||
|
@ -71,4 +71,4 @@ run "curl -sS --fail -XPOST 'http://localhost:${HOST_PORT_HTTPD}/mail.php' -d 'e
|
||||
# Validate
|
||||
run "curl -sS --fail 'http://localhost:${HOST_PORT_HTTPD}/mail.php' | tac | tac | grep '${MY_MAIL}' >/dev/null" "${RETRIES}"
|
||||
run "curl -sS --fail 'http://localhost:${HOST_PORT_HTTPD}/mail.php' | tac | tac | grep '${MY_SUBJ}' >/dev/null" "${RETRIES}"
|
||||
run "curl -sS --fail 'http://localhost:${HOST_PORT_HTTPD}/mail.php' | tac | tac | grep '${MY_MESS}' >/dev/null" "${RETRIES}"
|
||||
run "curl -sS --fail 'http://localhost:${HOST_PORT_HTTPD}/mail.php?get-body=1' | tac | tac | grep '${MY_MESS}' >/dev/null" "${RETRIES}"
|
||||
|
83
CHANGELOG.md
83
CHANGELOG.md
@ -6,6 +6,89 @@ Make sure to have a look at [UPDATING.md](https://github.com/cytopia/devilbox/bl
|
||||
## Unreleased
|
||||
|
||||
|
||||
## Release v2.4.0 (2022-12-18)
|
||||
|
||||
This release might be a bit bumpy due to a massive amount of changes in upstream projects. If you encounter issues, please do raise tickets.
|
||||
|
||||
### General
|
||||
|
||||
#### New PHP-FPM images
|
||||
This release uses a new set of PHP-FPM images. They have been heavily rewritten and modularized in order to make PHP extension and PHP tool generation more easy. See the following release notes for details:
|
||||
|
||||
> 499 changed files with 29,281 additions and 13,977 deletions.
|
||||
|
||||
* https://github.com/devilbox/docker-php-fpm/releases/tag/0.145
|
||||
* https://github.com/devilbox/docker-php-fpm/releases/tag/0.146
|
||||
* https://github.com/devilbox/docker-php-fpm/releases/tag/0.147
|
||||
|
||||
#### How to add modules/tools?
|
||||
* **[How to build PHP modules](https://github.com/devilbox/docker-php-fpm/blob/master/php_modules/README.md)**
|
||||
* **[How to install tools in PHP images](https://github.com/devilbox/docker-php-fpm/blob/master/php_tools/README.md)**
|
||||
|
||||
#### Available Tools
|
||||
You can now also find a detailed overview about what tools are installed in what PHP version image. See here: https://github.com/devilbox/docker-php-fpm/blob/master/doc/available-tools.md
|
||||
|
||||
#### Gitter -> Discord
|
||||
Additionally I am moving away from Gitter to **Discord**. See reason and announcement here: https://devilbox.discourse.group/t/migrating-from-gitter-to-discord/716/2
|
||||
|
||||
**🎮 Discord:** https://discord.gg/2wP3V6kBj4
|
||||
|
||||
### Fixed
|
||||
- Intranet: Fixed PostgreSQL database overview
|
||||
- Fixed PATH for all pre-installed composer and node tools
|
||||
|
||||
### Changed
|
||||
- Updated PHP versions (https://github.com/cytopia/devilbox/issues/940)
|
||||
- Updated MySQL versions
|
||||
- Intranet: Improved installed tools overview (index.php)
|
||||
- Intranet: Delayed message loading (https://github.com/cytopia/devilbox/pull/904)
|
||||
|
||||
### Added
|
||||
- Added tool `mhsendmail` for arm64 images
|
||||
- Added tool `wkhtmltopdf` for arm64 images (https://github.com/cytopia/devilbox/issues/936)
|
||||
- Added tool `taskfile` (https://github.com/cytopia/devilbox/issues/934)
|
||||
|
||||
### Removed
|
||||
- Removed tool `drush` (detail: https://github.com/cytopia/devilbox/issues/930#issuecomment-1344764908)
|
||||
|
||||
|
||||
## Release v2.3.0 (2022-12-04)
|
||||
|
||||
### Fixed
|
||||
- Fixed correct permission for `/opt/nvm` in PHP container [#499](https://github.com/cytopia/devilbox/issues/499), [#PHP-FPM 0.141](https://github.com/devilbox/docker-php-fpm/releases/tag/0.141)
|
||||
- Fixed Debian Jessie repository trust beyond EOL [#PHP-FPM 0.140](https://github.com/devilbox/docker-php-fpm/releases/tag/0.140)
|
||||
- Fixed phpPgAdmin to work with PostgreSQL 15
|
||||
|
||||
### Added
|
||||
- Added env var to Bind to specify overall memory consumption via `MAX_CACHE_SIZE` [#BIND 0.30](https://github.com/cytopia/docker-bind/releases/tag/0.30)
|
||||
- Added PHP extension: `lz4` [#PHP-FPM 0.144](https://github.com/devilbox/docker-php-fpm/releases/tag/0.144)
|
||||
- Added PHP extension: `lzf` [#PHP-FPM 0.144](https://github.com/devilbox/docker-php-fpm/releases/tag/0.144)
|
||||
- Added PHP extension: `zstd` [#PHP-FPM 0.144](https://github.com/devilbox/docker-php-fpm/releases/tag/0.144)
|
||||
- Added serializer to Redis extension: `lz4`, `lzf` and` zstd` [#PHP-FPM 0.144](https://github.com/devilbox/docker-php-fpm/releases/tag/0.144)
|
||||
- Added MariaDB 10.9 and 10.11 [#MYSQL 0.19](https://github.com/devilbox/docker-mysql/pull/24)
|
||||
- Added PGSQL 15
|
||||
- Added Redis 7.0
|
||||
|
||||
### Changed
|
||||
- Switched to `phalcon` 5.x extension for PHP 8.0 and PHP 8.1 [#913](https://github.com/cytopia/devilbox/issues/913), [#PHP-FPM 0.143](https://github.com/devilbox/docker-php-fpm/releases/tag/0.143)
|
||||
- Updated to latest minor versions of Apache 2.2, Apache 2.4, Nginx stable and Nginx mainline
|
||||
- Updated to latest minor versions of PHP [#917](https://github.com/cytopia/devilbox/issues/917)
|
||||
- Updated to latest minor versions of MySQL, MariaDB and Percona DB
|
||||
- Updated PHP extensions to lastest versions [#899](https://github.com/cytopia/devilbox/issues/899)
|
||||
|
||||
### Removed
|
||||
- Removed Phalcon DevTools for PHP 7.4 due to build error [#PHP-FPM 0.142](https://github.com/devilbox/docker-php-fpm/releases/tag/0.142)
|
||||
|
||||
|
||||
## Release v2.2.0 (2022-04-14)
|
||||
|
||||
This release adds PHP-FPM community images via `docker-compose.override.yml`, which easily allows you
|
||||
to build upon existing PHP images and customize them for your usecase/workflow.
|
||||
|
||||
#### Added
|
||||
- Added PHP-FPM Community images: https://github.com/devilbox/docker-php-fpm-community/
|
||||
|
||||
|
||||
## Release v2.1.1 (2022-04-07)
|
||||
|
||||
#### Changed
|
||||
|
52
README.md
52
README.md
@ -15,10 +15,9 @@
|
||||
**[License](#license)**
|
||||
|
||||

|
||||
|
||||
[](https://github.com/cytopia/devilbox/releases)
|
||||
[](https://gitter.im/devilbox/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://devilbox.discourse.group)
|
||||
[](https://discord.gg/2wP3V6kBj4)
|
||||
[](https://devilbox.discourse.group)
|
||||
[](https://www.docker.com/)
|
||||
[](https://opensource.org/licenses/MIT)
|
||||
|
||||
@ -115,15 +114,15 @@ works out of the box up to a shared development infrastructure for a corporate n
|
||||
In order to be aware about all that features, ensure to have skimmed over the
|
||||
**[documentation](https://devilbox.readthedocs.io)**, so you know what can be done and how that might
|
||||
simplify your every-day life. If you ever run into any unforseen issues, feel free to join the
|
||||
**[chat](https://gitter.im/devilbox/Lobby)** or visit the **[forums](https://devilbox.discourse.group)** and get community support quickly.
|
||||
**[Discord chat](https://discord.gg/2wP3V6kBj4)** or visit the **[forums](https://devilbox.discourse.group)** and get community support quickly.
|
||||
|
||||
<table width="100%" style="width:100%; display:table;">
|
||||
<thead>
|
||||
<tr>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">Documentation</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://gitter.im/devilbox/Lobby">Chat</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.discourse.group">Forum</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://github.com/devilbox/flames">Flames</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">📘 Docs</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://discord.gg/2wP3V6kBj4">🎮 Discord</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.discourse.group">🗪 Forum</a></h3></th>
|
||||
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://github.com/devilbox/flames">🔥 Flames</a></h3></th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody style="vertical-align: middle; text-align: center;">
|
||||
@ -134,8 +133,8 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
<a target="_blank" href="https://gitter.im/devilbox/Lobby">
|
||||
<img title="Chat on Gitter" name="Chat on Gitter" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/gitter.png" />
|
||||
<a target="_blank" href="https://discord.gg/2wP3V6kBj4">
|
||||
<img title="Chat on Discord" name="Chat on Discord" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/discord.png" />
|
||||
</a>
|
||||
</td>
|
||||
<td>
|
||||
@ -151,7 +150,7 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
|
||||
</tr>
|
||||
<tr>
|
||||
<td><a target="_blank" href="https://devilbox.readthedocs.io">devilbox.readthedocs.io</a></td>
|
||||
<td><a target="_blank" href="https://gitter.im/devilbox/Lobby">gitter.im/devilbox</a></td>
|
||||
<td><a target="_blank" href="https://discord.gg/2wP3V6kBj4">discord/devilbox</a></td>
|
||||
<td><a target="_blank" href="https://devilbox.discourse.group">devilbox.discourse.group</a></td>
|
||||
<td><a target="_blank" href="https://github.com/devilbox/flames">github.com/devilbox/flames</a></td>
|
||||
</tr>
|
||||
@ -323,7 +322,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td><a target="_blank" title="MariaDB 10.6" href="https://github.com/devilbox/docker-mysql">10.6</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PgSQL 10" href="https://github.com/docker-library/postgres">10</a></td>
|
||||
<td><a target="_blank" title="Redis latest" href="https://github.com/docker-library/redis">latest</a></td>
|
||||
<td><a target="_blank" title="Redis 7.0" href="https://github.com/docker-library/redis">7.0</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MongoDB 4.4" href="https://github.com/docker-library/mongo">4.4</a></td>
|
||||
</tr>
|
||||
@ -335,7 +334,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td><a target="_blank" title="MariaDB 10.7" href="https://github.com/devilbox/docker-mysql">10.7</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PgSQL 11" href="https://github.com/docker-library/postgres">11</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="Redis latest" href="https://github.com/docker-library/redis">latest</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MongoDB 5.0" href="https://github.com/docker-library/mongo">5.0</a></td>
|
||||
</tr>
|
||||
@ -344,7 +343,7 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 7.4" href="https://github.com/devilbox/docker-php-fpm">7.4</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MariaDB 10.8" href="https://github.com/devilbox/docker-mysql">10.8</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PgSQL 12" href="https://github.com/docker-library/postgres">12</a></td>
|
||||
<td></td>
|
||||
@ -356,9 +355,9 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 8.0" href="https://github.com/devilbox/docker-php-fpm">8.0</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MariaDB 10.9" href="https://github.com/devilbox/docker-mysql">10.9</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PgSQL 13" href="https://github.com/docker-library/postgres">13</a></td>
|
||||
<td><a target="_blank" title="PgSQL ..." href="https://github.com/docker-library/postgres">...</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
@ -368,9 +367,9 @@ Every single attachable container comes with many different versions. In order t
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PHP 8.1" href="https://github.com/devilbox/docker-php-fpm">8.1</a></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="MariaDB 10.10" href="https://github.com/devilbox/docker-mysql">10.10</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td><a target="_blank" title="PgSQL 14" href="https://github.com/docker-library/postgres">14</a></td>
|
||||
<td><a target="_blank" title="PgSQL 15" href="https://github.com/docker-library/postgres">15</a></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
<td></td>
|
||||
@ -773,6 +772,8 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
|
||||
| <sup>json</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>ldap</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>libxml</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>lz4</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>lzf</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>mbstring</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>mcrypt</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
|
||||
| <sup>memcache</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
@ -786,6 +787,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
|
||||
| <sup>mysqlnd</sup> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>OAuth</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>oci8</sup> | | d | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <sup>OPcache</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>openssl</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pcntl</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>pcre</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
@ -798,11 +800,12 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
|
||||
| <sup>pdo_sqlite</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pdo_sqlsrv</sup> | | | | | | d | d | d | d | d | d | d | d |
|
||||
| <sup>pgsql</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>phalcon</sup> | | d | d | d | d | d | d | d | d | d | | | |
|
||||
| <sup>phalcon</sup> | | d | d | d | d | d | d | d | d | d | d | d | |
|
||||
| <sup>Phar</sup> | 🗸 | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>posix</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>pspell</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>psr</sup> | | | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <sup>random</sup> | | | | | | | | | | | | | ✔ |
|
||||
| <sup>rdkafka</sup> | | d | d | d | d | d | d | d | d | d | d | d | d |
|
||||
| <sup>readline</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>recode</sup> | ✔ | ✔ | ✔ | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | |
|
||||
@ -817,11 +820,10 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
|
||||
| <sup>sodium</sup> | | | | | | | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>solr</sup> | | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
|
||||
| <sup>SPL</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>SQLite</sup> | ✔ | ✔ | | | | | | | | | | | |
|
||||
| <sup>sqlite</sup> | ✔ | ✔ | | | | | | | | | | | |
|
||||
| <sup>sqlite3</sup> | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>sqlsrv</sup> | | | | | | d | d | d | d | d | d | d | d |
|
||||
| <sup>ssh2</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | |
|
||||
| <sup>standard</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>swoole</sup> | | d | d | d | d | d | d | d | d | d | d | d | |
|
||||
| <sup>sysvmsg</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>sysvsem</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
@ -832,7 +834,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
|
||||
| <sup>uuid</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>vips</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
|
||||
| <sup>wddx</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | | | |
|
||||
| <sup>xdebug</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>Xdebug</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>xlswriter</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>xml</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>xmlreader</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
@ -840,9 +842,9 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
|
||||
| <sup>xmlwriter</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>xsl</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>yaml</sup> | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>Zend OPcache</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>zip</sup> | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
| <sup>zlib</sup> | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
|
||||
| <sup>zstd</sup> | | | | | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
|
||||
<!-- /modules -->
|
||||
|
||||
> * Core enabled (cannot be disabled): **✔**
|
||||
@ -869,7 +871,7 @@ As far as tested there are no limitations and you can use any Framework or CMS j
|
||||
<a target="_blank" title="Drupal" href="https://www.drupal.org"><img width="64" style="width:64px" src="docs/img/logo_fw/drupal.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="Joomla" href="https://www.joomla.org"><img width="64" style="width:64px" src="docs/img/logo_fw/joomla.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="Laravel" href="https://laravel.com"><img width="64" style="width:64px" src="docs/img/logo_fw/laravel.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="Magento" href="https://magento.com"><img width="64" style="width:64px" src="docs/img/logo_fw/magento.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="Magento 2" href="https://magento.com"><img width="64" style="width:64px" src="docs/img/logo_fw/magento.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="PhalconPHP" href="https://phalconphp.com"><img width="64" style="width:64px" src="docs/img/logo_fw/phalcon.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="PhotonCMS" href="https://photoncms.com"><img width="64" style="width:64px" src="docs/img/logo_fw/photoncms.png" alt="Devilbox"/></a>
|
||||
<a target="_blank" title="PrestaShop" href="https://www.prestashop.com/en"><img width="64" style="width:64px" src="docs/img/logo_fw/prestashop.png" alt="Devilbox"/></a>
|
||||
@ -889,7 +891,7 @@ As far as tested there are no limitations and you can use any Framework or CMS j
|
||||
> [Setup Drupal](https://devilbox.readthedocs.io/en/latest/examples/setup-drupal.html) |
|
||||
> [Setup Joomla](https://devilbox.readthedocs.io/en/latest/examples/setup-joomla.html) |
|
||||
> [Setup Laravel](https://devilbox.readthedocs.io/en/latest/examples/setup-laravel.html) |
|
||||
> [Setup Magento](https://devilbox.readthedocs.io/en/latest/examples/setup-magento.html) |
|
||||
> [Setup Magento 2](https://devilbox.readthedocs.io/en/latest/examples/setup-magento2.html) |
|
||||
> [Setup PhalconPHP](https://devilbox.readthedocs.io/en/latest/examples/setup-phalcon.html) |
|
||||
> [Setup PhotonCMS](https://devilbox.readthedocs.io/en/latest/examples/setup-photon-cms.html) |
|
||||
> [Setup PrestaShop](https://devilbox.readthedocs.io/en/latest/examples/setup-presta-shop.html) |
|
||||
|
@ -7,6 +7,12 @@ version: '2.3'
|
||||
###
|
||||
services:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# PHP Community image
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
php:
|
||||
image: devilbox/php-fpm-community:${PHP_SERVER}-${PHP_COMMUNITY_FLAVOUR:-devilbox}
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# Blackfire
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
|
11
compose/docker-compose.override.yml-php-community
Normal file
11
compose/docker-compose.override.yml-php-community
Normal file
@ -0,0 +1,11 @@
|
||||
# vim: set ft=yaml:
|
||||
---
|
||||
version: '2.3'
|
||||
|
||||
services:
|
||||
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
# PHP Community image
|
||||
# -----------------------------------------------------------------------------------------------
|
||||
php:
|
||||
image: devilbox/php-fpm-community:${PHP_SERVER}-${PHP_COMMUNITY_FLAVOUR:-devilbox}
|
@ -34,7 +34,7 @@ services:
|
||||
# Bind (DNS Server)
|
||||
# ------------------------------------------------------------
|
||||
bind:
|
||||
image: cytopia/bind:alpine-0.28
|
||||
image: cytopia/bind:alpine-0.34
|
||||
hostname: bind
|
||||
restart: always
|
||||
ports:
|
||||
@ -48,6 +48,11 @@ services:
|
||||
##
|
||||
- DEBUG_ENTRYPOINT=${DEBUG_COMPOSE_ENTRYPOINT}
|
||||
|
||||
##
|
||||
## Memory consumption
|
||||
##
|
||||
- MAX_CACHE_SIZE=${BIND_MAX_CACHE_SIZE:-90%}
|
||||
|
||||
##
|
||||
## Bind wildcard/host settings
|
||||
##
|
||||
@ -94,7 +99,7 @@ services:
|
||||
# PHP
|
||||
# ------------------------------------------------------------
|
||||
php:
|
||||
image: devilbox/php-fpm:${PHP_SERVER}-work-0.139
|
||||
image: devilbox/php-fpm:${PHP_SERVER}-work-0.147
|
||||
hostname: php
|
||||
|
||||
##
|
||||
@ -220,7 +225,7 @@ services:
|
||||
# Web Server
|
||||
# ------------------------------------------------------------
|
||||
httpd:
|
||||
image: devilbox/${HTTPD_SERVER}:${HTTPD_FLAVOUR:-alpine}-0.47
|
||||
image: devilbox/${HTTPD_SERVER}:${HTTPD_FLAVOUR:-alpine}-0.48
|
||||
hostname: httpd
|
||||
|
||||
environment:
|
||||
@ -324,7 +329,7 @@ services:
|
||||
# MySQL Database
|
||||
# ------------------------------------------------------------
|
||||
mysql:
|
||||
image: devilbox/mysql:${MYSQL_SERVER}-0.15
|
||||
image: devilbox/mysql:${MYSQL_SERVER}-0.21
|
||||
hostname: mysql
|
||||
|
||||
environment:
|
||||
@ -508,6 +513,8 @@ volumes:
|
||||
devilbox-mariadb-10.6:
|
||||
devilbox-mariadb-10.7:
|
||||
devilbox-mariadb-10.8:
|
||||
devilbox-mariadb-10.9:
|
||||
devilbox-mariadb-10.10:
|
||||
devilbox-percona-5.5:
|
||||
devilbox-percona-5.6:
|
||||
devilbox-percona-5.7:
|
||||
@ -538,6 +545,8 @@ volumes:
|
||||
devilbox-pgsql-13-alpine:
|
||||
devilbox-pgsql-14:
|
||||
devilbox-pgsql-14-alpine:
|
||||
devilbox-pgsql-15:
|
||||
devilbox-pgsql-15-alpine:
|
||||
devilbox-pgsql-latest:
|
||||
devilbox-pgsql-alpine:
|
||||
|
||||
|
@ -34,6 +34,18 @@
|
||||
Github: MailHog <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_php_community_dockerhub| raw:: html
|
||||
|
||||
<a target="_blank" href="https://hub.docker.com/r/devilbox/php-fpm-community">
|
||||
Dockerhub: PHP-FPM Community <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_php_community_github| raw:: html
|
||||
|
||||
<a target="_blank" href="https://github.com/devilbox/docker-php-fpm-community/">
|
||||
Github: PHP-FPM Community <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_mailhog_dockerhub| raw:: html
|
||||
|
||||
<a target="_blank" href="https://hub.docker.com/r/mailhog/mailhog/">
|
||||
|
@ -4,7 +4,13 @@
|
||||
Official CakePHP Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_example_codeignitor_documentation| raw:: html
|
||||
.. |ext_lnk_example_codeigniter_documentation| raw:: html
|
||||
|
||||
<a target="_blank" href="https://www.codeigniter.com/userguide3/installation/index.html">
|
||||
Official CodeIgniter Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
</a>
|
||||
|
||||
.. |ext_lnk_example_codeigniter4_documentation| raw:: html
|
||||
|
||||
<a target="_blank" href="https://www.codeigniter.com/user_guide/installation/index.html">
|
||||
Official CodeIgniter Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
|
||||
|
@ -0,0 +1,11 @@
|
||||
.. |ext_lnk_php_community_github_announce| raw:: html
|
||||
|
||||
<a target="_blank" href="https://github.com/devilbox/docker-php-fpm-community/">
|
||||
<strong>PHP-FPM Community <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" /></strong>
|
||||
</a>
|
||||
|
||||
|
||||
|
||||
.. attention::
|
||||
|
||||
You can now create your own **custom flavour** of PHP-FPM Community images and easily add them to the Devilbox: |ext_lnk_php_community_github_announce|
|
||||
|
@ -1,6 +1,8 @@
|
||||
+-------------------------------------+-----------+-----------+----------------+
|
||||
| Container | Name | Hostname | IP Address |
|
||||
+=====================================+===========+===========+================+
|
||||
| PHP Community | php | php | 172.16.238.10 |
|
||||
+-------------------------------------+-----------+-----------+----------------+
|
||||
| Blackfire | blackfire | blackfire | 172.16.238.200 |
|
||||
+-------------------------------------+-----------+-----------+----------------+
|
||||
| MailHog | mailhog | mailhog | 172.16.238.201 |
|
||||
|
@ -13,6 +13,7 @@ However, each example also exists in its standalone file as shown below:
|
||||
├── docker-compose.override.yml-elk
|
||||
├── docker-compose.override.yml-mailhog
|
||||
├── docker-compose.override.yml-ngrok
|
||||
├── docker-compose.override.yml-php-community
|
||||
├── docker-compose.override.yml-python-flask
|
||||
├── docker-compose.override.yml-rabbitmq
|
||||
├── docker-compose.override.yml-solr
|
||||
|
@ -659,6 +659,8 @@ All values are already available in the ``.env`` file and just need to be commen
|
||||
MYSQL_SERVER=mariadb-10.6
|
||||
#MYSQL_SERVER=mariadb-10.7
|
||||
#MYSQL_SERVER=mariadb-10.8
|
||||
#MYSQL_SERVER=mariadb-10.9
|
||||
#MYSQL_SERVER=mariadb-10.10
|
||||
|
||||
|
||||
.. _env_pgsql_server:
|
||||
@ -704,6 +706,8 @@ All values are already available in the ``.env`` file and just need to be commen
|
||||
#PGSQL_SERVER=13-alpine
|
||||
#PGSQL_SERVER=14
|
||||
PGSQL_SERVER=14-alpine
|
||||
#PGSQL_SERVER=15
|
||||
#PGSQL_SERVER=15-alpine
|
||||
#PGSQL_SERVER=latest
|
||||
#PGSQL_SERVER=alpine
|
||||
|
||||
@ -747,6 +751,8 @@ All values are already available in the ``.env`` file and just need to be commen
|
||||
#REDIS_SERVER=6.0-alpine
|
||||
#REDIS_SERVER=6.2
|
||||
REDIS_SERVER=6.2-alpine
|
||||
#REDIS_SERVER=7.0
|
||||
#REDIS_SERVER=7.0-alpine
|
||||
#REDIS_SERVER=latest
|
||||
#REDIS_SERVER=alpine
|
||||
|
||||
|
@ -56,6 +56,7 @@ That includes, but is not limited to:
|
||||
In order to fully customize each container, refer to their own documentation section:
|
||||
|
||||
.. seealso::
|
||||
* :ref:`custom_container_enable_php_community`
|
||||
* :ref:`custom_container_enable_blackfire`
|
||||
* :ref:`custom_container_enable_elk_stack`
|
||||
* :ref:`custom_container_enable_mailhog`
|
||||
|
135
docs/custom-container/enable-php-community.rst
Normal file
135
docs/custom-container/enable-php-community.rst
Normal file
@ -0,0 +1,135 @@
|
||||
.. include:: /_includes/all.rst
|
||||
.. include:: /_includes/snippets/__ANNOUNCEMENTS__.rst
|
||||
|
||||
.. _custom_container_enable_php_community:
|
||||
|
||||
**********************************
|
||||
Enable and configure PHP Community
|
||||
**********************************
|
||||
|
||||
This section will guide you through getting PHP community images integrated into the Devilbox.
|
||||
|
||||
.. seealso::
|
||||
* |ext_lnk_php_community_github|
|
||||
* |ext_lnk_php_community_dockerhub|
|
||||
* :ref:`custom_container_enable_all_additional_container`
|
||||
* :ref:`docker_compose_override_yml_how_does_it_work`
|
||||
|
||||
|
||||
**Table of Contents**
|
||||
|
||||
.. contents:: :local:
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
Available overwrites
|
||||
--------------------
|
||||
|
||||
.. include:: /_includes/snippets/docker-compose-override-tree-view.rst
|
||||
|
||||
|
||||
PHP-FPM Community settings
|
||||
--------------------------
|
||||
|
||||
In case of PHP-FPM Community, the file is ``compose/docker-compose.override.yml-php-community``. This file
|
||||
must be copied into the root of the Devilbox git directory.
|
||||
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| What | How and where |
|
||||
+=======================+===========================================================================================================+
|
||||
| Example compose file | ``compose/docker-compose.override.yml-all`` or |br| ``compose/docker-compose.override.yml-php-community`` |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Container IP address | ``172.16.238.10`` |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Container host name | ``php`` |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Container name | ``php`` |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Mount points | Same as default php image |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Exposed port | Same as default php image |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Available at | n.a. |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
| Further configuration | ``PHP_COMMUNITY_FLAVOUR`` must be set via ``.env`` |
|
||||
+-----------------------+-----------------------------------------------------------------------------------------------------------+
|
||||
|
||||
PHP Community env variables
|
||||
---------------------------
|
||||
|
||||
Additionally the following ``.env`` variables can be created for easy configuration:
|
||||
|
||||
+------------------------------+---------------+-------------------------------------------------------------------------+
|
||||
| Variable | Default value | Description |
|
||||
+==============================+===============+=========================================================================+
|
||||
| ``PHP_COMMUNITY_FLAVOUR`` | ``devilbox`` | Controls the PHP Community flavour. |
|
||||
+------------------------------+---------------+-------------------------------------------------------------------------+
|
||||
|
||||
|
||||
Instructions
|
||||
============
|
||||
|
||||
1. Copy docker-compose.override.yml
|
||||
-----------------------------------
|
||||
|
||||
Copy the PHP-FPM Community Docker Compose overwrite file into the root of the Devilbox git directory.
|
||||
(It must be at the same level as the default ``docker-compose.yml`` file).
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
host> cp compose/docker-compose.override.yml-php-community docker-compose.override.yml
|
||||
|
||||
.. seealso::
|
||||
* :ref:`docker_compose_override_yml`
|
||||
* :ref:`add_your_own_docker_image`
|
||||
* :ref:`overwrite_existing_docker_image`
|
||||
|
||||
|
||||
2. Adjust ``env`` settings
|
||||
--------------------------
|
||||
|
||||
By default PHP-FPM Community is using the Devilbox reference flavour ``devilbox``.
|
||||
You can change this flavour via the ``.env`` variable ``PHP_COMMUNITY_FLAVOUR``.
|
||||
|
||||
.. code-block:: bash
|
||||
:caption: .env
|
||||
|
||||
PHP_COMMUNITY_FLAVOUR=devilbox
|
||||
|
||||
|
||||
.. seealso:: :ref:`env_file`
|
||||
|
||||
|
||||
3. Start the Devilbox
|
||||
---------------------
|
||||
|
||||
The final step is to start the Devilbox with the newly added PHP-FPM Community images.
|
||||
|
||||
Let's assume you want to start ``php``, ``httpd``, and ``bind``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
host> docker-compose up -d php httpd bind
|
||||
|
||||
.. seealso:: :ref:`start_the_devilbox`
|
||||
|
||||
|
||||
TL;DR
|
||||
=====
|
||||
|
||||
For the lazy readers, here are all commands required to get you started.
|
||||
Simply copy and paste the following block into your terminal from the root of your Devilbox git
|
||||
directory:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
# Copy compose-override.yml into place
|
||||
cp compose/docker-compose.override.yml-php-community docker-compose.override.yml
|
||||
|
||||
# Set Community flavour
|
||||
echo "PHP_COMMUNITY_FLAVOUR=devilbox" >> .env
|
||||
|
||||
# Start container
|
||||
docker-compose up -d php httpd bind
|
@ -136,7 +136,7 @@ Let's assume you want to start ``php``, ``httpd``, ``bind``, ``rabbit``.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
host> docker-compose up -d php httpd bind rabbitmq
|
||||
host> docker-compose up -d php httpd bind rabbit
|
||||
|
||||
.. seealso:: :ref:`start_the_devilbox`
|
||||
|
||||
|
@ -12,7 +12,7 @@ This example will use ``wget`` to install CodeIgniter from within the Devilbox P
|
||||
After completing the below listed steps, you will have a working CodeIgniter setup ready to be
|
||||
served via http and https.
|
||||
|
||||
.. seealso:: |ext_lnk_example_codeignitor_documentation|
|
||||
.. seealso:: |ext_lnk_example_codeigniter_documentation|
|
||||
|
||||
|
||||
**Table of Contents**
|
||||
|
216
docs/examples/setup-codeigniter4.rst
Normal file
216
docs/examples/setup-codeigniter4.rst
Normal file
@ -0,0 +1,216 @@
|
||||
.. include:: /_includes/all.rst
|
||||
.. include:: /_includes/snippets/__ANNOUNCEMENTS__.rst
|
||||
|
||||
.. _example_setup_codeigniter4:
|
||||
|
||||
******************
|
||||
Setup CodeIgniter4
|
||||
******************
|
||||
|
||||
After completing the below listed steps, you will have a working CodeIgniter setup ready to be
|
||||
served via http and https.
|
||||
|
||||
.. seealso:: |ext_lnk_example_codeigniter4_documentation|
|
||||
|
||||
|
||||
**Table of Contents**
|
||||
|
||||
.. contents:: :local:
|
||||
|
||||
|
||||
Overview
|
||||
========
|
||||
|
||||
The following configuration will be used:
|
||||
|
||||
+--------------+--------------------------+-------------+------------+-----------------------------------------+
|
||||
| Project name | VirtualHost directory | Database | TLD_SUFFIX | Project URL |
|
||||
+==============+==========================+=============+============+=========================================+
|
||||
| my-ci | /shared/httpd/my-ci | my_ci | loc | http://my-ci.loc |br| https://my-ci.loc |
|
||||
+--------------+--------------------------+-------------+------------+-----------------------------------------+
|
||||
|
||||
.. note::
|
||||
* Inside the Devilbox PHP container, projects are always in ``/shared/httpd/``.
|
||||
* On your host operating system, projects are by default in ``./data/www/`` inside the
|
||||
Devilbox git directory. This path can be changed via :ref:`env_httpd_datadir`.
|
||||
|
||||
|
||||
Walk through
|
||||
============
|
||||
|
||||
It will be ready in eight simple steps:
|
||||
|
||||
1. Enter the PHP container
|
||||
2. Create a new VirtualHost directory
|
||||
3. Download CodeIgniter
|
||||
4. Symlink webroot directory
|
||||
5. Add MySQL database
|
||||
6. Configure datbase connection
|
||||
7. Setup DNS record
|
||||
8. Visit http://my-ci.loc in your browser
|
||||
|
||||
|
||||
1. Enter the PHP container
|
||||
--------------------------
|
||||
|
||||
All work will be done inside the PHP container as it provides you with all required command line
|
||||
tools.
|
||||
|
||||
Navigate to the Devilbox git directory and execute ``shell.sh`` (or ``shell.bat`` on Windows) to
|
||||
enter the running PHP container.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
host> ./shell.sh
|
||||
|
||||
.. seealso::
|
||||
* :ref:`enter_the_php_container`
|
||||
* :ref:`work_inside_the_php_container`
|
||||
* :ref:`available_tools`
|
||||
|
||||
|
||||
2. Create new vhost directory
|
||||
-----------------------------
|
||||
|
||||
The vhost directory defines the name under which your project will be available. |br|
|
||||
( ``<vhost dir>.TLD_SUFFIX`` will be the final URL ).
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd $ mkdir my-ci
|
||||
|
||||
.. seealso:: :ref:`env_tld_suffix`
|
||||
|
||||
|
||||
3. Download CodeIgniter
|
||||
-----------------------
|
||||
|
||||
Navigate into your newly created vhost directory and install CodeIgniter.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd $ cd my-ci
|
||||
devilbox@php-8.1.6 in /shared/httpd/my-ci $ composer create-project codeigniter4/appstarter ci4app
|
||||
|
||||
How does the directory structure look after installation:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd/my-ci $ tree -L 1
|
||||
.
|
||||
└── ci4app
|
||||
|
||||
1 directory, 0 files
|
||||
|
||||
|
||||
4. Symlink webroot
|
||||
------------------
|
||||
|
||||
Symlinking the actual webroot directory to ``htdocs`` is important. The web server expects every
|
||||
project's document root to be in ``<vhost dir>/htdocs/``. This is the path where it will serve
|
||||
the files. This is also the path where your frameworks entrypoint (usually ``index.php``) should
|
||||
be found.
|
||||
|
||||
Some frameworks however provide its actual content in nested directories of unknown levels.
|
||||
This would be impossible to figure out by the web server, so you manually have to symlink it back
|
||||
to its expected path.
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd/my-ci $ ln -s ci4app/public htdocs
|
||||
|
||||
How does the directory structure look after symlinking:
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd/my-ci $ tree -L 1
|
||||
.
|
||||
├── ci4app
|
||||
└── htdocs -> ci4app/public
|
||||
|
||||
2 directories, 0 files
|
||||
|
||||
As you can see from the above directory structure, ``htdocs`` is available in its expected
|
||||
path and points to the frameworks entrypoint.
|
||||
|
||||
.. important::
|
||||
When using **Docker Toolbox**, you need to **explicitly allow** the usage of **symlinks**.
|
||||
See below for instructions:
|
||||
|
||||
* Docker Toolbox and :ref:`howto_docker_toolbox_and_the_devilbox_windows_symlinks`
|
||||
|
||||
|
||||
5. Add MySQL Database
|
||||
---------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd/my-ci $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_ci;'
|
||||
|
||||
|
||||
6. Configure database connection
|
||||
--------------------------------
|
||||
|
||||
.. code-block:: bash
|
||||
|
||||
devilbox@php-8.1.6 in /shared/httpd/my-ci $ vi htdocs/app/Config/Database.php
|
||||
|
||||
.. code-block:: php
|
||||
:caption: htdocs/app/Config/Database.php
|
||||
:emphasize-lines: 4-7
|
||||
|
||||
<?php
|
||||
public $default = [
|
||||
'DSN' => '',
|
||||
'hostname' => '127.0.0.1',
|
||||
'username' => 'root',
|
||||
'password' => '',
|
||||
'database' => 'my_ci',
|
||||
'DBDriver' => 'MySQLi',
|
||||
'DBPrefix' => '',
|
||||
'pConnect' => false,
|
||||
'DBDebug' => (ENVIRONMENT !== 'production'),
|
||||
'charset' => 'utf8',
|
||||
'DBCollat' => 'utf8_general_ci',
|
||||
'swapPre' => '',
|
||||
'encrypt' => false,
|
||||
'compress' => false,
|
||||
'strictOn' => false,
|
||||
'failover' => [],
|
||||
'port' => 3306,
|
||||
];
|
||||
|
||||
|
||||
7. DNS record
|
||||
-------------
|
||||
|
||||
If you **have** Auto DNS configured already, you can skip this section, because DNS entries will
|
||||
be available automatically by the bundled DNS server.
|
||||
|
||||
If you **don't have** Auto DNS configured, you will need to add the following line to your
|
||||
host operating systems ``/etc/hosts`` file (or ``C:\Windows\System32\drivers\etc`` on Windows):
|
||||
|
||||
.. code-block:: bash
|
||||
:caption: /etc/hosts
|
||||
|
||||
127.0.0.1 my-ci.loc
|
||||
|
||||
.. seealso::
|
||||
|
||||
* :ref:`howto_add_project_hosts_entry_on_mac`
|
||||
* :ref:`howto_add_project_hosts_entry_on_win`
|
||||
* :ref:`setup_auto_dns`
|
||||
|
||||
|
||||
8. Open your browser
|
||||
--------------------
|
||||
|
||||
All set now, you can visit http://my-ci.loc or https://my-ci.loc in your browser.
|
||||
|
||||
.. seealso:: :ref:`setup_valid_https`
|
||||
|
||||
|
||||
Next steps
|
||||
==========
|
||||
|
||||
.. include:: /_includes/snippets/examples/next-steps.rst
|
@ -92,6 +92,8 @@ It will look something like this:
|
||||
#PHP_SERVER=7.3
|
||||
#PHP_SERVER=7.4
|
||||
#PHP_SERVER=8.0
|
||||
#PHP_SERVER=8.1
|
||||
#PHP_SERVER=8.2
|
||||
|
||||
As you can see, all available values are already there, but commented. Only one is uncommented.
|
||||
In this example it is ``7.1``, which is the PHP version that will be started, once the Devilbox
|
||||
@ -117,6 +119,8 @@ In order to enable PHP 5.5, you would change the ``.env`` file like this:
|
||||
#PHP_SERVER=7.3
|
||||
#PHP_SERVER=7.4
|
||||
#PHP_SERVER=8.0
|
||||
#PHP_SERVER=8.1
|
||||
#PHP_SERVER=8.2
|
||||
|
||||
Start the Devilbox
|
||||
^^^^^^^^^^^^^^^^^^
|
||||
@ -237,6 +241,8 @@ Consider this ``.env`` file:
|
||||
#PHP_SERVER=7.3
|
||||
#PHP_SERVER=7.4
|
||||
#PHP_SERVER=8.0
|
||||
#PHP_SERVER=8.1
|
||||
#PHP_SERVER=8.2
|
||||
|
||||
Both, PHP 5.5 and PHP 7.0 are uncommented, however, when you start the Devilbox, it will use
|
||||
PHP 7.0 as this value overwrites any previous ones.
|
||||
|
@ -44,7 +44,7 @@ copied to a file named ``.env``. (Pay attention to the leading dot).
|
||||
|
||||
host> cp env-example .env
|
||||
|
||||
The ``.env`` file does nothing else then providing environment variables for Docker Compose
|
||||
The ``.env`` file does nothing else than providing environment variables for Docker Compose
|
||||
and in this case it is used as the main configuration file for the Devilbox by providing all kinds
|
||||
of settings (such as which version to start up).
|
||||
|
||||
|
@ -118,6 +118,7 @@ host is ready to be served with your custom domain.
|
||||
:maxdepth: 2
|
||||
|
||||
custom-container/enable-all-container
|
||||
custom-container/enable-php-community
|
||||
custom-container/enable-blackfire
|
||||
custom-container/enable-elk-stack
|
||||
custom-container/enable-mailhog
|
||||
@ -176,6 +177,7 @@ host is ready to be served with your custom domain.
|
||||
|
||||
examples/setup-cakephp
|
||||
examples/setup-codeigniter
|
||||
examples/setup-codeigniter4
|
||||
examples/setup-contao
|
||||
examples/setup-craftcms
|
||||
examples/setup-drupal
|
||||
|
@ -90,6 +90,10 @@ Your DNS server IP address is ``127.0.0.1``.
|
||||
|
||||
.. seealso:: :ref:`howto_add_custom_dns_server_on_mac`
|
||||
|
||||
.. important::
|
||||
The `.local` TLD will not resolve on MacOs, due to Apple's use of
|
||||
Multicast DNS for this TLD. If you want to use `.local`, you will need
|
||||
to specify each domain in `/etc/hosts` manually.
|
||||
|
||||
Docker for Windows
|
||||
------------------
|
||||
|
@ -87,6 +87,8 @@ LOCAL_LISTEN_ADDR=
|
||||
### It is also required for the internal DNS server to be setup.
|
||||
###
|
||||
### Note: In addition to period or dot character ('.'), only ALPHA ([a-zA-Z]+) characters are supported.
|
||||
### Mac users should not use the .local TLD, as this will not resolve properly due Apple's
|
||||
### use of Multicast DNS.##
|
||||
###
|
||||
### Example:
|
||||
### TLD_SUFFIX=loc
|
||||
@ -306,6 +308,8 @@ HTTPD_SERVER=nginx-stable
|
||||
MYSQL_SERVER=mariadb-10.6
|
||||
#MYSQL_SERVER=mariadb-10.7
|
||||
#MYSQL_SERVER=mariadb-10.8
|
||||
#MYSQL_SERVER=mariadb-10.9
|
||||
#MYSQL_SERVER=mariadb-10.10
|
||||
|
||||
|
||||
###
|
||||
@ -344,6 +348,8 @@ MYSQL_SERVER=mariadb-10.6
|
||||
#PGSQL_SERVER=13-alpine
|
||||
#PGSQL_SERVER=14
|
||||
PGSQL_SERVER=14-alpine
|
||||
#PGSQL_SERVER=15
|
||||
#PGSQL_SERVER=15-alpine
|
||||
#PGSQL_SERVER=latest
|
||||
#PGSQL_SERVER=alpine
|
||||
|
||||
@ -373,6 +379,8 @@ PGSQL_SERVER=14-alpine
|
||||
#REDIS_SERVER=6.0-alpine
|
||||
#REDIS_SERVER=6.2
|
||||
REDIS_SERVER=6.2-alpine
|
||||
#REDIS_SERVER=7.0
|
||||
#REDIS_SERVER=7.0-alpine
|
||||
#REDIS_SERVER=latest
|
||||
#REDIS_SERVER=alpine
|
||||
|
||||
|
Reference in New Issue
Block a user