2017-10-16 09:17:27 +02:00
< p align = "center" >
2018-03-25 12:07:45 +02:00
< h1 align = "center" > The Devilbox< / h1 >
2017-10-16 09:17:27 +02:00
< / p >

2016-10-09 18:47:49 +02:00
2017-10-16 10:21:54 +02:00
**[Usage ](#usage )** |
2018-03-25 12:07:45 +02:00
**[Community ](#community )** |
2017-10-16 10:21:54 +02:00
**[Features ](#feature-overview )** |
**[Intranet ](#intranet-overview )** |
**[Screenshots ](#screenshots )** |
2018-02-26 14:02:31 -06:00
**[Contributing ](#contributing- )** |
2017-10-16 10:21:54 +02:00
**[Logos ](#logos )** |
**[License ](#license )**
2016-10-09 18:47:49 +02:00
2018-03-25 12:07:45 +02:00

2017-05-06 11:17:00 +02:00
2018-04-05 09:14:09 +02:00
[](https://travis-ci.org/cytopia/devilbox)
[](https://devilbox.readthedocs.io)

[](https://www.docker.com/)
[](https://opensource.org/licenses/MIT)
2016-10-09 18:47:49 +02:00
2018-05-05 12:22:30 +02:00
< img width = "200" style = "width:200px;" src = "docs/_static/img/global-configuration/https-ssl-address-bar.png" / >
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. Email catch-all and popular development tools will be at your service as well. Configuration is not necessary, as everything is pre-setup with mass virtual hosting.
2016-10-22 19:58:42 +02:00
2018-03-25 12:29:27 +02:00
**Requirements**
2016-10-22 19:58:42 +02:00
  
2018-03-25 12:29:27 +02:00
* [Docker Engine 1.12.0+ ](https://docs.docker.com/compose/compose-file/compose-versioning/#version-21 )
* [Docker Compose 1.9.0+ ](https://docs.docker.com/compose/compose-file/compose-versioning/#version-21 )
2017-06-25 13:46:50 +02:00
2018-03-25 12:07:45 +02:00
## Community
2018-05-13 17:21:32 +02:00
Find documentation and help here
2018-03-25 12:07:45 +02:00
< table width = "100%" style = "width:100%; display:table;" >
< thead >
< tr >
2018-05-13 17:21:32 +02:00
< th width = "33%" style = "width:33%;" > < h3 > < a href = "https://devilbox.readthedocs.io" > Documentation< / a > < / h3 > < / th >
< th width = "33%" style = "width:33%;" > < h3 > < a href = "https://gitter.im/devilbox/Lobby" > Chat< / a > < / h3 > < / th >
< th width = "33%" style = "width:33%;" > < h3 > Forum< / h3 > < / th >
2018-03-25 12:07:45 +02:00
< / tr >
< / thead >
< tbody style = "vertical-align: middle; text-align: center;" >
< tr >
< td >
< a href = "https://devilbox.readthedocs.io" >
2018-04-02 14:01:58 +02:00
< img title = "Documentation" name = "Documentation" src = "https://raw.githubusercontent.com/cytopia/icons/master/400x400/readthedocs.png" / >
2018-03-25 12:07:45 +02:00
< / a >
< / td >
< td >
< a href = "https://gitter.im/devilbox/Lobby" >
2018-04-02 14:01:58 +02:00
< img title = "Chat on Gitter" name = "Chat on Gitter" src = "https://raw.githubusercontent.com/cytopia/icons/master/400x400/gitter.png" / >
2018-03-25 12:07:45 +02:00
< / a >
< / td >
< td >
2018-04-02 14:01:58 +02:00
< img title = "Forum" name = "Forum" src = "https://raw.githubusercontent.com/cytopia/icons/master/400x400/discourse.png" / >
2018-03-25 12:07:45 +02:00
< / td >
< / tr >
< tr >
< td > < a href = "https://devilbox.readthedocs.io" > devilbox.readthedocs.io< / a > < / td >
< td > < a href = "https://gitter.im/devilbox/Lobby" > gitter.im/devilbox< / a > < / td >
< td > coming soon< / td >
< / tr >
< / tbody >
< / table >
2017-05-20 21:24:04 +02:00
## Usage
2017-06-25 13:46:50 +02:00
#### Quick start
2016-10-21 03:18:09 +02:00
2017-10-16 09:17:27 +02:00
You are up and running in four simple steps:
2016-10-21 03:18:09 +02:00
2017-05-06 11:17:00 +02:00
```shell
2017-10-16 09:17:27 +02:00
# Get the devilbox
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox
2017-05-20 21:39:57 +02:00
# Create docker-compose environment file
2016-10-21 03:18:09 +02:00
$ cp env-example .env
# Edit your configuration
$ vim .env
2017-05-06 11:17:00 +02:00
# Start all containers
2016-10-21 03:18:09 +02:00
$ docker-compose up
2017-05-20 20:13:14 +02:00
```
2017-04-23 13:20:32 +02:00
2017-06-25 13:46:50 +02:00
#### Selective start
2017-05-20 21:24:04 +02:00
2017-06-25 13:46:50 +02:00
The above will start all containers, you can however also just start the containers you actually need. This is achieved by simply specifying them in the docker-compose command.
2017-05-20 21:24:04 +02:00
2017-05-20 21:39:57 +02:00
```shell
2017-05-06 11:17:00 +02:00
$ docker-compose up httpd php mysql redis
2016-10-21 03:18:09 +02:00
```
2018-03-25 12:07:45 +02:00

2017-05-20 20:13:14 +02:00
2017-06-25 13:46:50 +02:00
#### Run different versions
2017-10-16 09:17:27 +02:00
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.
2017-06-25 13:46:50 +02:00
< table >
< thead >
< tr >
< th > Apache< / th >
< th > Nginx< / th >
< th > PHP< / th >
< th > MySQL< / th >
< th > MariaDB< / th >
2017-07-01 18:54:09 +02:00
< th > Percona< / th >
2017-06-25 13:46:50 +02:00
< th > PgSQL< / th >
< th > Redis< / th >
< th > Memcached< / th >
< th > MongoDB< / th >
< / tr >
< / thead >
< tbody >
< tr >
2017-10-08 12:17:36 +02:00
< td > < a target = "_blank" title = "Apache 2.2" href = "https://github.com/devilbox/docker-apache-2.2" > 2.2< / a > < / td >
< td > < a target = "_blank" title = "Nginx stable" href = "https://github.com/devilbox/docker-nginx-stable" > stable< / a > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 5.3" href = "https://github.com/devilbox/docker-php-fpm" > 5.3< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "MySQL 5.5" href = "https://github.com/cytopia/docker-mysql-5.5" > 5.5< / a > < / td >
< td > < a target = "_blank" title = "MariaDB 5.5" href = "https://github.com/cytopia/docker-mariadb-5.5" > 5.5< / a > < / td >
2017-07-01 18:54:09 +02:00
< td > < a target = "_blank" title = "PerconaDB 5.5" href = "https://github.com/cytopia/docker-percona-5.5" > 5.5< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "PgSQL 9.1" href = "https://github.com/docker-library/postgres" > 9.1< / a > < / td >
< td > < a target = "_blank" title = "Redis 2.8" href = "https://github.com/docker-library/redis" > 2.8< / a > < / td >
< td > < a target = "_blank" title = "Memcached 1.4.21" href = "https://github.com/docker-library/memcached" > 1.4.21< / a > < / td >
< td > < a target = "_blank" title = "MongoDB 2.8" href = "https://github.com/docker-library/mongo" > 2.8< / a > < / td >
< / tr >
< tr >
2017-10-08 12:17:36 +02:00
< td > < a target = "_blank" title = "Apache 2.4" href = "https://github.com/devilbox/docker-apache-2.4" > 2.4< / a > < / td >
< td > < a target = "_blank" title = "Nginx mainline" href = "https://github.com/devilbox/docker-nginx-mainline" > mainline< / a > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 5.4" href = "https://github.com/devilbox/docker-php-fpm" > 5.4< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "MySQL 5.6" href = "https://github.com/cytopia/docker-mysql-5.6" > 5.6< / a > < / td >
< td > < a target = "_blank" title = "MariaDB 10.0" href = "https://github.com/cytopia/docker-mariadb-10.0" > 10.0< / a > < / td >
2017-07-01 18:54:09 +02:00
< td > < a target = "_blank" title = "PerconaDB 5.6" href = "https://github.com/cytopia/docker-percona-5.6" > 5.6< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "PgSQL 9.2" href = "https://github.com/docker-library/postgres" > 9.2< / a > < / td >
< td > < a target = "_blank" title = "Redis 3.0" href = "https://github.com/docker-library/redis" > 3.0< / a > < / td >
< td > < a target = "_blank" title = "Memcached 1.4.22" href = "https://github.com/docker-library/memcached" > 1.4.22< / a > < / td >
< td > < a target = "_blank" title = "MongoDB 3.0" href = "https://github.com/docker-library/mongo" > 3.0< / a > < / td >
< / tr >
< tr >
< td > < / td >
< td > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 5.5" href = "https://github.com/devilbox/docker-php-fpm" > 5.5< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "MySQL 5.7" href = "https://github.com/cytopia/docker-mysql-5.7" > 5.7< / a > < / td >
< td > < a target = "_blank" title = "MariaDB 10.1" href = "https://github.com/cytopia/docker-mariadb-10.1" > 10.1< / a > < / td >
2017-07-01 18:54:09 +02:00
< td > < a target = "_blank" title = "PerconaDB 5.7" href = "https://github.com/cytopia/docker-percona-5.7" > 5.7< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "PgSQL 9.3" href = "https://github.com/docker-library/postgres" > 9.3< / a > < / td >
< td > < a target = "_blank" title = "Redis 3.2" href = "https://github.com/docker-library/redis" > 3.2< / a > < / td >
< td > < a target = "_blank" title = "Memcached 1.4.23" href = "https://github.com/docker-library/memcached" > 1.4.23< / a > < / td >
< td > < a target = "_blank" title = "MongoDB 3.2" href = "https://github.com/docker-library/mongo" > 3.2< / a > < / td >
< / tr >
< tr >
< td > < / td >
< td > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 5.6" href = "https://github.com/devilbox/docker-php-fpm" > 5.6< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "MySQL 8.0" href = "https://github.com/cytopia/docker-mysql-8.0" > 8.0< / a > < / td >
< td > < a target = "_blank" title = "MariaDB 10.2" href = "https://github.com/cytopia/docker-mariadb-10.2" > 10.2< / a > < / td >
2017-07-01 18:54:09 +02:00
< td > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "PgSQL 9.4" href = "https://github.com/docker-library/postgres" > 9.4< / a > < / td >
2017-10-08 12:17:36 +02:00
< td > < a target = "_blank" title = "Redis 4.0" href = "https://github.com/docker-library/redis" > 4.0< / a > < / td >
2017-06-27 13:14:02 +02:00
< td > < a target = "_blank" title = "Memcached 1.4.23" href = "https://github.com/docker-library/memcached" > 1.4.24< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "MongoDB 3.4" href = "https://github.com/docker-library/mongo" > 3.4< / a > < / td >
< / tr >
< tr >
< td > < / td >
< td > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 7.0" href = "https://github.com/devilbox/docker-php-fpm" > 7.0< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < / td >
< td > < a target = "_blank" title = "MariaDB 10.3" href = "https://github.com/cytopia/docker-mariadb-10.3" > 10.3< / a > < / td >
2017-07-01 18:54:09 +02:00
< td > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "PgSQL 9.5" href = "https://github.com/docker-library/postgres" > 9.5< / a > < / td >
< td > < / td >
2017-06-27 13:14:02 +02:00
< td > ...< / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "MongoDB 3.5" href = "https://github.com/docker-library/mongo" > 3.5< / a > < / td >
< / tr >
< tr >
< td > < / td >
< td > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 7.1" href = "https://github.com/devilbox/docker-php-fpm" > 7.1< / a > < / td >
2017-06-25 13:46:50 +02:00
< td > < / td >
< td > < / td >
2017-07-01 18:54:09 +02:00
< td > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "PgSQL 9.6" href = "https://github.com/docker-library/postgres" > 9.6< / a > < / td >
< td > < / td >
2017-10-08 12:17:36 +02:00
< td > < a target = "_blank" title = "Memcached 1.5.2" href = "https://github.com/docker-library/memcached" > 1.5.2< / a > < / td >
2017-06-27 13:14:02 +02:00
< td > < / td >
< / tr >
< tr >
< td > < / td >
< td > < / td >
2018-05-12 16:03:43 +02:00
< td > < a target = "_blank" title = "PHP 7.2" href = "https://github.com/devilbox/docker-php-fpm" > 7.2< / a > < / td >
2017-06-27 13:14:02 +02:00
< td > < / td >
< td > < / td >
< td > < / td >
2017-10-08 12:17:36 +02:00
< td > < a target = "_blank" title = "PgSQL 10.0" href = "https://github.com/docker-library/postgres" > 10.0< / a > < / td >
2017-07-01 18:54:09 +02:00
< td > < / td >
2017-06-25 13:46:50 +02:00
< td > < a target = "_blank" title = "Memcached latest" href = "https://github.com/docker-library/memcached" > latest< / a > < / td >
< td > < / td >
< / tr >
2018-05-13 17:21:32 +02:00
< tr >
< td > < / td >
< td > < / td >
< td > < a target = "_blank" title = "PHP 7.3" href = "https://github.com/devilbox/docker-php-fpm" > 7.3< / a > < / td >
< td > < / td >
< td > < / td >
< td > < / td >
< td > < / td >
< td > < / td >
< td > < / td >
< td > < / td >
< / tr >
2017-06-25 13:46:50 +02:00
< / tbody >
< / table >
#### Enter the container
2017-08-17 21:20:41 +02:00
You can also work directly inside the php container. Simply use the bundled scripts `shell.sh` . The `PS1` will automatically be populated with current chosen php version.
2017-05-20 21:50:38 +02:00
```shell
# Enter as user devilbox (normal operation / development)
2017-08-17 21:20:41 +02:00
host> ./shell.sh
2017-05-20 21:55:22 +02:00
devilbox@php -7.0.19 in /shared/httpd $
2017-06-25 13:46:50 +02:00
```
```shell
2017-05-20 21:50:38 +02:00
# Enter as root user (do root stuff)
2017-08-17 21:20:41 +02:00
host> ./shell.sh
devilbox@php -7.0.19 in /shared/httpd $ sudo su -
2017-05-20 21:55:22 +02:00
root@php -7.0.19 in /shared/httpd $
2017-05-20 21:50:38 +02:00
```
2017-06-25 13:46:50 +02:00
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).
2017-05-20 21:50:38 +02:00
2017-10-16 09:17:27 +02:00
#### Quick Video intro
[](https://www.youtube.com/watch?v=reyZMyt2Zzo)
[](https://www.youtube.com/watch?v=e-U-C5WhxGY)
2017-05-20 20:13:14 +02:00
## Feature overview
2017-10-16 09:17:27 +02:00
The devilbox has everything setup for you. The only thing you will have to install is [docker ](https://docs.docker.com/engine/installation/ ) and [docker-compose ](https://docs.docker.com/compose/install/ ). Virtual hosts and DNS entries will be created automatically, just by adding new project folders.
2017-05-20 20:13:14 +02:00
2017-06-25 13:46:50 +02:00
#### Features
2017-10-16 09:17:27 +02:00
< table >
< tbody >
< tr >
2017-11-04 13:42:15 +01:00
< td width = "220" style = "width:220px;" > :star: Auto virtual hosts< / td >
< td > New virtual hosts are created automatically and instantly whenever you add a project directory. This is done internally via < a href = "https://travis-ci.org/devilbox/vhost-gen" > vhost-gen< / a > and < a href = "https://github.com/devilbox/watcherd" > watcherd< / a > .< / td >
< / tr >
2018-05-05 12:22:30 +02:00
< tr >
< td > :star: Automated SSL certificate generation< / td >
< td > SSL certificates are automatically created for each vhost and signed by the Devilbox CA.< / td >
< / tr >
2017-11-04 13:42:15 +01:00
< tr >
< td > :star: Unlimited vhosts< / td >
< td > Run as many projects as you need with a single instance of the devilbox.< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Custom vhosts< / td >
2017-10-16 09:17:27 +02:00
< td > You can overwrite and customise the default applied vhost configuration for every single vhost.< / td >
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Custom domains< / td >
< td > Choose whatever development domain you desire: < code > *.loc< / code > , < code > *.local< / code > , < code > *.dev< / code > or use real domains as well: < code > *.example.com< / code > < / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Auto DNS< / td >
2017-10-16 09:17:27 +02:00
< td > An integraded BIND server is able to create DNS entries automatically for your chosen domains.< / td >
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Custom PHP config< / td >
2017-10-16 09:17:27 +02:00
< td > Overwrite any setting for PHP.< / td >
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Custom PHP modules< / td >
2017-10-16 09:17:27 +02:00
< td > Load custom PHP modules on the fly.< / td >
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Email catch-all< / td >
2017-10-16 09:17:27 +02:00
< td > All outgoing emails are catched and will be presented in the included intranet.< / td >
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Self-validation< / td >
2017-10-16 09:17:27 +02:00
< td > Projects and configuration options are validated and marked in the intranet.< / td >
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Xdebug< / td >
2018-03-25 12:29:27 +02:00
< td > Xdebug and a full blown PHP-FPM server is ready to serve.< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :star: Many more< / td >
2017-10-16 09:17:27 +02:00
< td > See Documentation for all available features.< / td >
< / tr >
< / tbody >
< / table >
2017-05-20 20:13:14 +02:00
2017-06-25 13:46:50 +02:00
#### Batteries
2017-05-20 20:13:14 +02:00
2017-10-16 10:21:54 +02:00
< table >
2017-10-16 09:17:27 +02:00
< tbody >
< tr >
2017-10-16 10:21:54 +02:00
< td > :open_file_folder:< / td >
< td > < a href = "https://www.phpmyadmin.net" > phpMyAdmin< / a > < / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :open_file_folder:< / td >
< td > < a href = "https://www.adminer.org" > Adminer< / a > < / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :bar_chart:< / td >
< td > < a href = "https://github.com/PeeHaa/OpCacheGUI" > OpCache GUI< / a > < / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :email:< / td >
< td > Mail viewer< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< / tbody >
< / table >
2017-05-20 20:13:14 +02:00
2017-06-25 13:46:50 +02:00
#### Tools
2017-10-16 17:47:27 +02:00
The following tools will assist you on creating new projects easily as well as helping you check your code against guidelines.
2017-10-16 09:17:27 +02:00
< table >
< tbody >
< tr >
2017-10-16 10:21:54 +02:00
< td width = "220" style = "width:220px;" > :wrench: < a href = "https://github.com/cytopia/awesome-ci" > awesome-ci< / a > < / td >
2017-10-16 15:54:23 +02:00
< td > A set of tools for static code analysis:< br / > < br / > < code > file-cr< / code > , < code > file-crlf< / code > , < code > file-empty< / code > , < code > file-nullbyte-char< / code > , < code > file-trailing-newline< / code > , < code > file-trailing-single-newline< / code > , < code > file-trailing-space< / code > , < code > file-utf8< / code > , < code > file-utf8-bom< / code > , < code > git-conflicts< / code > , < code > git-ignored< / code > , < code > inline-css< / code > , < code > inline-js< / code > , < code > regex-grep< / code > , < code > regex-perl< / code > , < code > syntax-bash< / code > , < code > syntax-css< / code > , < code > syntax-js< / code > , < code > syntax-json< / code > , < code > syntax-markdown< / code > , < code > syntax-perl< / code > , < code > syntax-php< / code > , < code > syntax-python< / code > , < code > syntax-ruby< / code > , < code > syntax-scss< / code > , < code > syntax-sh< / code > < / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :wrench: < a href = "https://github.com/laravel/installer" > laravel installer< / a > < / td >
< td > < code > laravel< / code > is a command line tool that lets you easily install the Laravel framework.< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :wrench: < a href = "https://github.com/phalcon/phalcon-devtools" > phalcon devtools< / a > < / td >
< td > < code > phalcon< / code > is a command line tool that lets you easily install the PhalconPHP framework.< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :wrench: < a href = "https://github.com/symfony/symfony-installer" > symfony installer< / a > < / td >
< td > < code > symfony< / code > is a command line tool that lets you easily install the Symfony framework.< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< tr >
2017-10-16 10:21:54 +02:00
< td > :wrench: < a href = "https://wp-cli.org" > wp-cli< / a > < / td >
< td > < code > wp< / code > is a command line tool that lets you easily install Wordpress.< / td >
2017-10-16 09:17:27 +02:00
< / tr >
< / tbody >
< / table >
2017-10-16 17:47:27 +02:00
Well-known and popular tools will be at your service as well:
2017-10-16 10:21:54 +02:00
< a target = "_blank" title = "Composer" href = "https://getcomposer.org" > < img width = "64" style = "width:64px" src = "docs/img/logo_tools/composer.png" alt = "Devilbox" / > < / a >
< a target = "_blank" title = "Drupal Console" href = "https://drupalconsole.com" > < img width = "64" style = "battery" src = "docs/img/logo_tools/drupal-console.png" alt = "Devilbox" / > < / a >
< a target = "_blank" title = "Drush" href = "https://www.drupal.org/project/drush" > < img width = "64" style = "width:64px;" src = "docs/img/logo_tools/drush.png" alt = "Devilbox" / > < / a >
< a target = "_blank" title = "Git" href = "https://git-scm.com" > < img width = "64" style = "width:64px;" src = "docs/img/logo_tools/git.png" alt = "Devilbox" / > < / a >
< a target = "_blank" title = "mysqldump-secure" href = "https://mysqldump-secure.org" > < img width = "64" style = "width:64px;" src = "docs/img/logo_tools/mysqldump-secure.png" alt = "Devilbox" / > < / a >
< a target = "_blank" title = "NodeJS" href = "https://nodejs.org" > < img width = "64" style = "width:64px;" src = "docs/img/logo_tools/nodejs.png" alt = "Devilbox" / > < / a >
< a target = "_blank" title = "NPM" href = "https://www.npmjs.com" > < img width = "64" style = "width:64px;" src = "docs/img/logo_tools/npm.png" alt = "Devilbox" / > < / a >
2017-06-25 13:46:50 +02:00
2017-06-25 14:44:51 +02:00
2017-10-16 09:17:27 +02:00
#### Available PHP Modules
2017-06-25 14:44:51 +02:00
The devilbox is a development stack, so it is made sure that a lot of PHP modules are available out of the box in order to work with many different frameworks.
2018-03-25 12:07:45 +02:00
> *amqp, apcu, bcmath, bz2, calendar, Core, ctype, curl, date, dba, dom, enchant, exif, fileinfo, filter, ftp, gd, gettext, gmp, hash, iconv, igbinary, imagick, imap, interbase, intl, json, ldap, libxml, mbstring, mcrypt, memcache, memcached, mongodb, msgpack, mysqli, mysqlnd, openssl, pcntl, pcre, PDO, pdo_dblib, PDO_Firebird, pdo_mysql, pdo_pgsql, pdo_sqlite, pgsql, phalcon, Phar, posix, pspell, readline, recode, redis, Reflection, session, shmop, SimpleXML, snmp, soap, sockets, SPL, sqlite3, standard, swoole, sysvmsg, sysvsem, sysvshm, tidy, tokenizer, uploadprogress, wddx, xdebug, xml, xmlreader, xmlrpc, xmlwriter, xsl, Zend OPcache, zip, zlib*
2017-07-02 10:52:31 +02:00
2017-10-16 09:17:27 +02:00
#### Custom PHP Modules
2017-08-13 13:36:24 +02:00
2018-03-25 12:29:27 +02:00
You can also copy any custom modules into `mod/(php-fpm)-<VERSION>` and add a custom `*.ini` file to load them.
2017-08-13 13:36:24 +02:00
2017-07-02 10:52:31 +02:00
#### Supported Frameworks
As far as tested there are no limitations and you can use any Framework or CMS just as you would on your live environment. Below are a few examples of extensively tested Frameworks and CMS:
2017-10-16 15:54:23 +02:00
[](https://cakephp.org)
[](https://www.drupal.org)
[](https://www.joomla.org)
[](https://laravel.com)
[](https://phalconphp.com)
[](https://symfony.com)
[](https://wordpress.org)
[](http://www.yiiframework.com)
[](https://framework.zend.com)
2017-07-02 10:52:31 +02:00
2016-10-29 11:43:28 +02:00
2016-10-21 03:18:09 +02:00
## Intranet overview
2016-10-09 18:47:49 +02:00
2017-10-16 15:54:23 +02:00
The devilbox comes with a pre-configured intranet on `http://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.
2016-10-10 13:06:47 +02:00
2017-05-20 21:24:04 +02:00
* **Virtual Host overview** (validates directories and DNS)
* **Database overview** (MySQL, PgSQL, Redis, Memcache, ...)
* **Email overview**
* **Info pages** (Httpd, MySQL, PgSQL, Redis, Memcache, ...)
* **[phpMyAdmin ](https://www.phpmyadmin.net )**
* **[Adminer ](https://www.adminer.org )**
* **[OpcacheGUI ](https://github.com/PeeHaa/OpCacheGUI )**
2016-10-10 13:06:47 +02:00
2016-10-22 19:22:17 +02:00
2016-10-21 03:18:09 +02:00
## Screenshots
2016-10-10 13:14:27 +02:00
2018-03-25 12:07:45 +02:00
A few examples of how the built-in intranet looks like.
2016-10-10 13:14:27 +02:00
2017-10-16 13:51:50 +02:00
< table >
< tbody >
< tr >
< td rowspan = "2" >
2018-03-25 12:07:45 +02:00
< a href = "docs/img/screenshots/01_intranet_home.png" > < img style = "width:250px;" width = "250" src = "docs/img/screenshots/01_intranet_home.png" / > < / a >
2017-10-16 13:51:50 +02:00
< / td >
< td >
2018-03-25 12:07:45 +02:00
< a href = "docs/img/screenshots/02_intranet_vhosts.png" > < img style = "width:250px" width = "250" src = "docs/img/screenshots/02_intranet_vhosts.png" / > < / a >
2017-10-16 13:51:50 +02:00
< / td >
< td >
2018-03-25 12:07:45 +02:00
< a href = "docs/img/screenshots/03_intranet_databases.png" > < img style = "width:250px;" width = "250" src = "docs/img/screenshots/03_intranet_databases.png" / > < / a >
2017-10-16 13:51:50 +02:00
< / td >
< / tr >
< tr >
2018-03-25 12:07:45 +02:00
< td >
< a href = "docs/img/screenshots/04_intranet_emails.png" > < img style = "width:250px;" width = "250" src = "docs/img/screenshots/04_intranet_emails.png" / > < / a >
< / td >
2017-10-16 13:51:50 +02:00
< td > < / td >
< / tr >
< / table >
2017-05-20 21:24:04 +02:00
2018-02-26 14:02:31 -06:00
## Contributing [](https://www.codetriage.com/cytopia/devilbox)
2017-05-20 21:24:04 +02:00
2018-03-25 12:07:45 +02:00
The Devilbox is still a young project with a long roadmap of features to come. Features are
decided by you - **the community** , so any kind of contribution is welcome.
2016-11-06 17:49:48 +01:00
2018-03-25 12:07:45 +02:00
To increase visibility and bug-free operation:
2016-11-06 17:49:48 +01:00
2018-03-25 12:07:45 +02:00
* Star this project
* Open up issues for bugs and feature requests
* Clone this project and submit fixes or features
2016-11-06 17:49:48 +01:00
2018-03-25 12:07:45 +02:00
Additionally you can [subscribe to devilbox on CodeTriage ](https://www.codetriage.com/cytopia/devilbox ),
read up on [CONTRIBUTING.md ](CONTRIBUTING.md ) and check the [ROADMAP ](https://github.com/cytopia/devilbox/issues/23 ) about what is already planned for the near future.
2016-11-06 17:49:48 +01:00
2017-05-23 09:13:40 +02:00
2017-10-16 09:17:27 +02:00
## Logos
2017-10-16 15:54:23 +02:00
Logos and banners can be found at ** [devilbox/artwork ](https://github.com/devilbox/artwork )**. Feel free to use or modify them by the terms of their license.
2017-10-16 09:17:27 +02:00
2017-10-16 10:21:54 +02:00
< img style = "width:64px; height:64px;" width = "64" height = "64" src = "https://github.com/devilbox/artwork/blob/master/submissions_logo/cytopia/01/png/logo_128_trans.png?raw=true" / > < img style = "width:64px; height:64px;" width = "64" height = "64" src = "https://github.com/devilbox/artwork/blob/master/submissions_logo/cytopia/02/png/logo_128_trans.png?raw=true" / > < img style = "height:64px;" height = "64" src = "https://github.com/devilbox/artwork/blob/master/submissions_banner/cytopia/01/png/banner_128_trans.png?raw=true" / >
2017-10-16 09:17:27 +02:00
2017-05-23 09:13:40 +02:00
## License
[MIT License ](LICENSE.md )
2017-10-16 15:54:23 +02:00
Copyright (c) 2016 [cytopia ](https://github.com/cytopia )