Make sure to have a look at UPDATING.md to see any required steps for updating major or minor versions.
This release provides the dvl.to
domain to be used with TLD_SUFFIX
(set to default), which eliminates the need to set any entries in /etc/hosts
, as all of its subdomain will point to 127.0.0.1
via official DNS. Domain has been acquired thanks to awesome sponsors!
- Intranet: mail.php fixed deprecation warnings #798
- Added
host.docker.internal
to extra_hosts to be able to connect to the host system #919
- Use
dvl.to
as defaultTLD_SUFFIX
(it always poits to127.0.0.1
removing the need to create/etc/hosts
entries)
- Intranet: vhost overview shows listening ports
- Intranet: vhost overview now has modals to show httpd and vhost-gen configs
- Docs: Show available tools per version in README.md
- Added
xhprof
PHP extension
The Backend configuration now supports websockets as well:
file: /shared/httpd/<project>/.devilbox/backend.cfg
# PHP-FPM backend
conf:phpfpm:tcp:php80:9000
# HTTP Reverse Proxy backend
conf:rproxy:http:172.16.238.10:3000
# HTTPS Reverse Proxy backend
conf:rproxy:https:172.16.238.10:3000
# Websocket Reverse Proxy backend
conf:rproxy:ws:172.16.238.10:3000
# SSL Websocket Reverse Proxy backend
conf:rproxy:wss:172.16.238.10:3000
Once you're done with backend.cfg
changes, head over to the Intranet C&C page (http://localhost/cnc.php) and Reload watcherd
.
- Intranet: vhost overview: allow HTTP 426 to succeed in vhost page (websocket projects)
- Intranet: vhost overview: Reverse Proxy or Websocket backends do not require a
htdocs/
dir for healthcheck - Fixed reverse proxy template generation for Apache 2.2 and Apache 2.4 vhost-gen #51
- Fixed Nginx hash bucket size length to allow long hostnames
- Reverse Proxy automation for websocket projects (
ws://<host>:<port>
orwss:<host>:<port>
) (Does not work with Apache 2.2) - Added tool
wscat
to be able to test websocket connections - Intranet: show
wscat
version - Intranet: vhost overview now also shows websocket projects
- Do not mount any startup/autostart script directories for multi-php compose as they do not contain tools
- Updated vhost-gen templates in
cfg/vhost-gen
(replace your project templates with new ones)
This is a beta release, using a completely rewritten set of HTTPD server, which allow easy reverse Proxy integration and different PHP versions per project:
- devilbox/docker-nginx-stable#55
- devilbox/docker-nginx-mainline#57
- devilbox/docker-apache-2.2#53
- devilbox/docker-apache-2.4#54
Once it has been tested by the community, and potential errors have been addressed, a new major version will be released.
IMPORTANT: This release required you to copy env-example
over onto .env
due to some changes in variables.
- Multiple PHP Versions
Here is an example to run one project with a specific PHP version
file:# Enable all PHP versions cp compose/docker-compose.override.yml-php-multi.yml docker-compose.override.yml # Start default set and php80 docker-compose up php httpd bind php80
/shared/httpd/<project>/.devilbox/backend.cfg
conf:phpfpm:tcp:php80:9000
- Automated Reverse Proxy setup
Here is an example to proxy one project to a backend service (e.g. NodeJS or Python application, which runs in the PHP container on port 3000)
file:/shared/httpd/<project>/.devilbox/backend.cfg
conf:rproxy:http:127.0.0.1:3000
PHP Version | Hostname | IP address |
---|---|---|
5.4 | php54 | 172.16.238.201 |
5.5 | php55 | 172.16.238.202 |
5.6 | php56 | 172.16.238.203 |
7.0 | php70 | 172.16.238.204 |
7.1 | php71 | 172.16.238.205 |
7.2 | php72 | 172.16.238.206 |
7.3 | php73 | 172.16.238.207 |
7.4 | php74 | 172.16.238.208 |
8.0 | php80 | 172.16.238.209 |
8.1 | php81 | 172.16.238.210 |
8.2 | php82 | 172.16.238.211 |
- Fixed Protocol substitution bug in Reverse Proxy generation for Apache 2.2 and Apache 2.4 vhost-gen #49 vhost-gen #50
- Fixed missing module
mod_proxy_html
in Apache 2.4 as per requirement fromvhost-gen
for Reverse Proxy setup - Fixed encoding issue with Apache 2.4 Reverse Proxy by enabling
mod_xml2enc
module (Required bymod_proxy_html
) - Allow to run different PHP versions per project. fixes #146
- New HTTPD server capable of auto reverse proxy creation (and different PHP versions per project)
- Intranet: Added Command & Control center to view watcherd logs and retrigger config in case of vhost changes
- Intranet: vhost page now also shows the configured Backend
- Environment variable
DEVILBOX_HTTPD_MGMT_PASS
- Environment variable
DEVILBOX_HTTPD_MGMT_USER
- New Docker Compose Override file
docker-compose.override.yml-php-multi.yml
(allows to run multiple PHP versions). - Update Bind to latest version
- Disabled
psr
extension by default php-psr #78 - Disabled
phalcon
extension by default - Environment variable
DEBUG_COMPOSE_ENTRYPOINT
renamed toDEBUG_ENTRYPOINT
- Environment variable
HTTPD_TIMEOUT_TO_PHP_FPM
renamed toHTTPD_BACKEND_TIMEOUT
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.
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
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
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
- Intranet: Fixed PostgreSQL database overview
- Fixed PATH for all pre-installed composer and node tools
- Updated PHP versions (#940)
- Updated MySQL versions
- Intranet: Improved installed tools overview (index.php)
- Intranet: Delayed message loading (#904)
- Added tool
mhsendmail
for arm64 images - Added tool
wkhtmltopdf
for arm64 images (#936) - Added tool
taskfile
(#934)
- Removed tool
drush
(detail: #930 (comment))
- Fixed correct permission for
/opt/nvm
in PHP container #499, #PHP-FPM 0.141 - Fixed Debian Jessie repository trust beyond EOL #PHP-FPM 0.140
- Fixed phpPgAdmin to work with PostgreSQL 15
- Added env var to Bind to specify overall memory consumption via
MAX_CACHE_SIZE
#BIND 0.30 - Added PHP extension:
lz4
#PHP-FPM 0.144 - Added PHP extension:
lzf
#PHP-FPM 0.144 - Added PHP extension:
zstd
#PHP-FPM 0.144 - Added serializer to Redis extension:
lz4
,lzf
andzstd
#PHP-FPM 0.144 - Added MariaDB 10.9 and 10.11 #MYSQL 0.19
- Added PGSQL 15
- Added Redis 7.0
- Switched to
phalcon
5.x extension for PHP 8.0 and PHP 8.1 #913, #PHP-FPM 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
- Updated to latest minor versions of MySQL, MariaDB and Percona DB
- Updated PHP extensions to lastest versions #899
- Removed Phalcon DevTools for PHP 7.4 due to build error #PHP-FPM 0.142
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 PHP-FPM Community images: https://github.com/devilbox/docker-php-fpm-community/
- Used tagged PHP images (auto-updating)instead early release branch one.
This is now a 100% arm64
compatible release.
- Fixed imklog: cannot open kernel log (/proc/kmsg): Operation not permitted.
- Fixed missing
arm64
support: #855
- Added PHP images with
arm64
support for PHP: https://github.com/devilbox/docker-php-fpm/releases/tag/0.138 - Added
vips
to PHP 8.0 - Added
vips
to PHP 8.1 - Added
swoole
to PHP 8.1
- Removed homebrew due to arm64 issues
- Removed Ansible due to arm64 issues
The goal of this release is to reduce the overall size of Docker images and bring in latest versions.
Important: This release introduces backwards incompatible changes due to only keeping major versions of PostreSQL and therefore removing old volumes. Additionally the PostgreSQL volume names have changed. In order to guarantee a smooth transition, backup your PostgreSQL databases in the previous version before switching and then re-importing them in this version.
- Added CakePHP integration tests for PHP 8+
- Added
.env
variableHTTPD_FLAVOUR
to decide betweenDebian
orAlpine
for HTTP server
- Changed default PostgreSQL server from
12.4
to14-alpine
(breaking change) - Changed default Redis server from
6.0
to6.2-alpine
- Changed default Memcached server from
1.6
to1.6-alpine
- Changed default MongoDB server from
4.4
to5.0
- Changed default HTTPD server flavour from
Debian
toAlpine
- Use tiny Alpine version of Bind container
- Removed CI for MongoDB
2.8
and MongoDB3.0
due to segfault: docker-library/mongo#251
- Fixed pidof issue on QUEMU by replacing it with pgrep #854
- Fixed array definition for PHP < 5.4
- Fixed bind caching issue #37
- Fixed Adminer 4.8.1 CSS issues #867
- Allow to globally enable/disable HTTP/2 #844
- Added New
.env
variable:HTTPD_HTTP2_ENABLE
- Make MariaDB 10.6 the default
- Make PHP 8.1 the default
- Updated Apache 2.2
- Updated Apache 2.4
- Updated Nginx stable
- Updated Nginx mainline
- Updated PHP-FPM images #230
- Updated PHP-FPM images #231
- Updated phpMyAdmin to 5.1.3
- Added MariaDB 10.8
- Updated Bind #36
- Updated MySQL
- Fixed SSL-Cache Mutex on M1 CPU #862
- Changed Intranet mail tester to using POST instead of GET for larger body size
- Made vhost error message more verbose
- Updated Nginx Stable #36
- Updated Nginx Mainline #39
- Updated Apache 2.2 #33
- Updated Apache 2.4 #35
- Added PHP 8.2
- Fixed
nvm
PATH priority #846
- Added extension
sqlsrv
to php 8.1 - Added extension
pdo_sqlsrv
to php 8.1
- Changed postfix hostname to
localhost
instead of GitHub runners long name - Updated PHP-FPM images #224
- Fixed evaluation of
MASS_VHOST_SSL_GEN
env var #830
- Added feature to delete emails from within control center #754
- Added binary
sqlite3
to all PHP images #856 - Added binary
laravel
to PHP 8.0 and PHP 8.1 #823 - Added AVIF support in GD for PHP 8.1 #834
- Added extension
amqp
to PHP 8.0 and PHP 8.1 #826 - Added extension
uploadprogress
to PHP 8.0 and PHP 8.1 #158 - Added extension
imagick
to PHP 8.0 and PHP 8.1 - Added extension
rdkafka
to PHP 8.0 and PHP 8.1 - Added extension
xlswriter
to PHP 8.1 - Added extension
pdo_dblib
to PHP 8.1 - Added extension
uuid
to all PHP versions (except 5.2) - Added MySQL image: MariaDB 10.6
- Added MySQL image: MariaDB 10.7
- Updated
php-cs-fixer
to latest version #219 - Updated Nginx Stable #33
- Updated Nginx Stable #34
- Updated Nginx Mainline #36
- Updated Nginx Mainline #37
- Updated Apache 2.2 #30
- Updated Apache 2.2 #31
- Updated Apache 2.4 #32
- Updated Apache 2.4 #33
- Updated PHP Docker Images: #221
- Updated PHP Docker Images: #222
- Update MySQL Docker Images: #10
- Fixed documentation build issues
- Fixed intranet PHP code to work with legacy versions
- Added Homebrew for all PHP images
- Added
pdo_sqlsrv
PHP extension for 7.4 and 8.0 - Xdebug 3.0 documentation
- Added PHP Xdebug info page for intranet
- #769 Adjusted Xdebug 3.0 defaults
- Update PHP images to 0.125
- MySQL database use binlog by default
- Updated Adminer to 4.8.1
- #783 Kibana 6.6 and above uses ELASTICSEARCH_HOSTS
- #801 Intranet not available when some php modules disabled or not compiled
- #761 Fixed missing Varnish config env var
- #10 watcherd performance issues
- Fixed
mdl
rubygen for PHP images - Fixed
drupal
(Drupal Console Launcher) for PHP images
- Added
ioncube
extension to PHP 7.4 - Added
sqlsrv
extension to PHP 7.4 - Added
apcu
extension to PHP 8.0 - Added
blackfire
extension to PHP 8.0 - Added
igbinary
extension to PHP 8.0 - Added
imap
extension to PHP 8.0 - Added
mcrypt
extension to PHP 8.0 - Added
memcache
extension to PHP 8.0 - Added
msgpack
extension to PHP 8.0 - Added
oauth
extension to PHP 8.0 - Added
psr
extension to PHP 8.0 - Added
solr
extension to PHP 8.0 - Added
xlswriter
extension to PHP 8.0 - Added
yaml
extension to PHP 8.0 - Added
apcu
extension to PHP 8.1 - Added
igbinary
extension to PHP 8.1 - Added
imap
extension to PHP 8.1 - Added
mcrypt
extension to PHP 8.1 - Added
memcache
extension to PHP 8.1 - Added
msgpack
extension to PHP 8.1 - Added
oauth
extension to PHP 8.1 - Added
psr
extension to PHP 8.1 - Added
solr
extension to PHP 8.1 - Added
xlswriter
extension to PHP 8.1 - Added
yaml
extension to PHP 8.1 - Added checks for TLD_SUFFIX in check-config.sh
- #763
redis
extension compiles withmsgpack
andigbinary
as available serializers - Updated xdebug to latest version
- Updated
watcherd
to latest version - Updated
vhost-gen
to latest version
- #755 Added ~/.composer/vendor/bin to $PATH
- #692 Added custom supervisor configs
- Added project and customization checks in check-config.sh
- Intranet: show custom PHP configuration files
- Intranet: show custom Httpd configuration files
- #643 Wrong entrypoint in mysql images
- #703 Don't fail on uid/gid change
- #749 Fix to disable PHP modules without
*.so
ext - Fixed
check-config.sh
to properly expand~
character in path
- #707 New
.env
variable:HOST_PATH_BACKUPDIR
- #547 Added link to official Contao Devilbox Documentation
- Silence PHP warnings in phpmemcached and opcache GUIs
- #746 Fix xdebug config for PHP 8.0 and 8.1
- Added
check-config.sh
script to check against correct Devilbox configuration
- #739 Disabled gd-jis: https://bugs.php.net/bug.php?id=73582
- #740 Use latest PHP 8.0 image
- #715 PHP module mongodb is re-added to PHP 8.0
- Added PHP 8.1: https://github.com/devilbox/docker-php-fpm-8.1
- Added Postgres images: 11.7, 11.8, 11.9, 12.2, 12.3, 12.4, 13.0
- Added Redis images: 6.0
- Added Memcache images: 1.6
- Added MongoDB images: 4.4
- Added MySQL images: MariaDB 10.5
- #736 Composer is updated to v2 (
/usr/local/bin/composer
) - #728 Updated phpPgAdmin from 7.12 to 7.13
- Updated phpMyAdmin from 5.0.0 to 5.0.4
- Updated phpMyAdmin from 4.9.3 to 4.9.7
- Updated Adminer from 4.7.5 to 4.7.7
- Composer is available as v1 and v2 (
/usr/local/bin/composer-1
and/usr/local/bin/composer-2
) - New default PHP version: 7.4
- New default MySQL version: MariaDB 10.5
- New default Postgres version: 12.4
- New default Redis version: 6.0
- New default Memcached version 1.6
- New default MongoDB version: 4.4
- #166 Added
locale-gen
binary - #716 Adding
vips
PHP module - #721 Adding
xlswriter
PHP module - #724 Adding
xdebug
PHP module for PHP 8.0 - Added
COMPOSER_MEMORY_LIMIT=-1
env variable to PHP
- #700 Re-added imap for PHP 7.4
- #611 Adding
certbot
binary to PHP - #713 Added
gsfonts
- #713 Added
mupdf
andmupdf-tools
- #714 Added PDF support for imagick
- Updated Nginx (stable and mainline)
- Updated MySQL/MariaDB/PerconaDB images
- Python Flask
- Fixed PHP FPM images
- Fixed cert-gen for HAProxy
- Various spelling errors in documentation
- PostgreSQL startup without a password
- #686 Added documentation for ExpressEngine
- New .env var:
PGSQL_HOST_AUTH_METHOD
- #662 Update to latest Symfony CLI
- #654 Added Opcache Control Panel
- Integration tests for MySQL Docker image
- #618 Update Compose version to 2.3
- #614 Update to latest mhsendmail binary with
-o
flag - #265 Fix http to https redirect for projects
- #642 Be able to disable email catch-all and still run postfix
- #626 Cannot create MongoDB database with Adminer
- latest PHP-FPM images
- PHP module: solr
- PHP module: ssh2
- phpMyAdmin to 5.0.0
- Use official PHP 7.4 Docker image as base
- Updated Adminer to 4.7.5
sed -i'' 's/^<?php$/<?php if(!function_exists("get_magic_quotes_runtime")){function get_magic_quotes_runtime(){return false;}}if(!function_exists("get_magic_quotes_gpc")){function get_magic_quotes_gpc(){return false;}}/g' adminer-4.7.5-en.php
sed -i'' 's/while(list(\$y,\$X)=each(\$qg))/foreach ($qg as $y => $x)/g' adminer-4.7.5-en.php
sed -i'' 's/error_reporting(6135)/error_reporting(0)/g' adminer-4.7.5-en.php
- Updated phpMyAdmin to 4.9.3
- #622 Certificate Generation Settings
- #640 Mac OS Catalina invalidates virtual host certificates
- #592 sqlsrv connection problem
- Added latest PHP-FPM images
- Added latest MySQL images
- Added latest Apache/Nginx images
- Made PHP 7.3 the default version
- Make Ngrok region configurable via
NGROK_REGION
env variable - #641 Added phpPgAdmin v7 for PHP >=7
- #594 Tool: ghostscript
- Extensive GitHub Action CI checks
- Added new PostgreSQL images
- Added new MongoDB images
- Updated PHP Docker images (PHP version, modules and tools)
- Fixed various typos in documentation
- Fix CI tests: They still expected a mounted mail directory instead of a Docker volume
- Fix mods for PHP 8.0
- Make npm binaries available in $PATH
- Remove orphaned mentions of HOST_PATH_MYSQL_DATADIR
- Allow symlinks in autostart scripts
- Documentation: Setup ProcessWire
- Tool: Angular CLI
- Tool: Laravel Lumen
- Tool: prestissimo
- Tool: yq
- Module: OAuth
- Enchant module for PHP 7.4 and PHP 8.0 (build breaks)
This is a bugfix release and everybody is encouraged to upgrade to this tag as soon as possible. No explicit actions to be taken for updating.
- #373 Read custom MySQL configuration
- #540 Fix '&' password substitution in mysqldump-secure
- #209 Documentation for Xdebug on Docker for Windows
- Updated MongoDB cli tools in PHP image
- Updated PostgreSQL cli tools in PHP image
- MySQL images are now bound to a specific Docker tag and are built nightly
- #506 Documentation improvements for connecting to databases
- #536 Added @vue/cli and @vue/cli-service-global
This is the first major stable release of the Devilbox.
- Everything from v1.0.0-alpha1 has been backported
- Everything from v0.15.0 has been backported
- Use Docker volumes instead of directory mounts for stateful data (MySQL, PgSQL and MongoDB)
- This fixes various mount issues on Windows: #175 #382
- This improves general performance
- Use Official MySQL, MariaDB and Percona Docker container
This will be the last v0.x release.
- break on errors in wrong vhost-gen overwrite
- XSS vulnerability in email display
- Various fixes in Documentation
- vhost-gen fixes
- Use semantic versioning
- This allows for faster releases
- This allows for better visibility of breaking changes (note that breaking changes might still occur before release v1.0.0)
- Autologin for phpMyAdmin
- Autologin for phpPgAdmin
- Intranet to show vhost and vhost-gen overwrite config per vhost
- Allow to specify Redis startup arguments (e.g.: password)
- Fixed hostnames for all Docker container
- PHP-FPM workers changed from
dynamic
toondemand
- Allow Apache to server underscore domains
- Changed Nginx
client_max_body_size
to0
to be in sync with Apache - Document failing start behaviour of MySQL container
- CHANGELOG by the standard of: https://keepachangelog.com
- UPDATING provides information how to update between major versions
- HTTP/2 support
- Reverse Proxy support
- Autostart scripts
- Allow to enable/disable PHP modules
- Allow to set Nginx worker_processes via .env
- Allow to set Nginx worker_connections via .env
- Intranet vendors
- PHPRedMin
- PHPMemcachedAdmin
- Mount options for volumes
- Docker Compose images:
- PHP 5.2
- PHP 5.3
- PHP 7.4
- PHP 8.0
- Alpine images where possible
- Docker Compose overwrite images:
- Blackfire
- ELK (Elastic Search, Logstash and Kibana)
- MailHog
- Ngrok
- RabbitMQ
- Solr
- Varnish
- HAProxy
- New binaries
blackfire
dep
(Deployer)drush6
drush7
drush8
php-cs-fixer
rsync
unzip
wkhtmltopdf
zip
zsh
- New PHP modules
blackfire
ffi
ioncube
oci8
phalcon
pdo_oci
pdo_sqlsrv
rdkafka
sqlsrv
- Framework documentation:
- Codeignitor
- Contao CMS
- Craft CMS
- NodeJS Reverse proxy
- Photon CMS
- Presta Shop
- Shopware CMS
- Sphinx documentation Reverse proxy
- Typo3
- GitHub Issue templates
- Discourse forum link: https://devilbox.discourse.group