README.md

The Devilbox

The Devilbox is a modern and highly customisable dockerized PHP stack supporting full LAMP
and MEAN and running on all major platforms. The main goal is to easily switch and combine
any version required for local development. It supports an unlimited number of projects for
which vhosts, SSL certificates and DNS records are created automatically.
Reverse proxies per project are supported to ensure listening server such as NodeJS can also be reached.
Email catch-all and popular development tools will be at your service as well. Configuration is not necessary, as everything is already pre-setup.

Furthermore, the Devilbox provides an identical and reproducible development environment for different host operating systems.

Community

The Devilbox has a lot of features reaching from a simple single-user development environment that
works out of the box up to a shared development infrastructure for a corporate network.

In order to be aware about all that features, ensure to have skimmed over the
documentation, 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 or visit the forums and get community support quickly.

Run different versions

Every single attachable container comes with many different versions. In order to select the desired version for a container, simply edit the .env file and uncomment the version of choice. Any combination is possible.

[1]PHP 5.2 is available to use, but it is not officially supported. The Devilbox intranet does not work with this version as PHP 5.2 does not support namespaces.
Furthermore PHP 5.2 does only work with Apache 2.4, Nginx stable and Nginx mainline. It does not work with Apache 2.2. Use at your own risk.

[2]PHP 7.4 is the upcoming unreleased version of PHP, which is directly built out of their master branch.
It will improve every day as the image is rebuilt every day from the latest commits.

Enter the container

You can also work directly inside the php container. Simply use the bundled scripts shell.sh (or shell.bat for Windows).
The PS1 will automatically be populated with current chosen php version.
Navigate the the Devilbox directory and type the below listed command:

Linux and MacOS

Windows

host> ./shell.sh
devilbox@php-7.0.19 in /shared/httpd $

C:\devilbox> shell.bat
devilbox@php-7.0.19 in /shared/httpd $

Your projects can be found in /shared/httpd. DNS records are automatically available inside the php container. Also every other service will be available on 127.0.0.1 inside the php container (tricky socat port-forwarding).

Quick Video intro

Feature overview

The Devilbox has everything setup for you. The only thing you will have to install is Docker and Docker Compose. Virtual hosts and DNS entries will be created automatically, just by adding new project folders.

Supported reverse proxied applications

As far as tested there are no limitations and you can use any application that creates an open port.
These ports will be reverse proxied by the web server and even allow you to use valid HTTPS for them.
By the built-in autostart feature of the Devilbox you can ensure that your application automatically
starts up as soon as you run docker-compose up.

Intranet overview

The Devilbox comes with a pre-configured intranet on http://localhost and https://localhost. This can be explicitly disabled or password-protected. The intranet will not only show you, the chosen configuration, but also validate the status of the current configuration, such as if DNS records exists (on host and container), are directories properly set-up. Additionally it provides external tools to let you interact with databases and emails.