2016-10-22 17:42:52 +00:00
# ![Devilbox](https://raw.githubusercontent.com/cytopia/devilbox/master/.devilbox/www/htdocs/assets/img/devilbox_80.png) The devilbox
2016-10-09 16:47:49 +00:00
2016-12-21 14:16:10 +00:00
**General Note:**
Always check out the latest git tag. The master branch is experimental and likely to not work.
**Note for OSX:**
2016-10-22 17:58:42 +00:00
2016-10-23 16:13:41 +00:00
There is currently a huge annoyance with docker on OSX resulting in very slow file access, because of directory mounts. Read about the ticket here [Docker Forums #8076 ](https://forums.docker.com/t/file-access-in-mounted-volumes-extremely-slow-cpu-bound/8076 ).
2016-10-22 17:58:42 +00:00
2016-11-15 19:27:27 +00:00
**Latest feature:** `PostgreSQL support...`
2016-10-30 13:40:29 +00:00
2016-10-22 17:58:42 +00:00
----
2016-10-22 17:42:52 +00:00
[Usage ](https://github.com/cytopia/devilbox#usage ) |
2016-11-06 16:49:48 +00:00
[Documentation ](https://github.com/cytopia/devilbox#documentation ) |
2016-10-22 17:42:52 +00:00
[Run-time Matrix ](https://github.com/cytopia/devilbox#run-time-matrix ) |
[Features ](https://github.com/cytopia/devilbox#feature-overview ) |
[Intranet ](https://github.com/cytopia/devilbox#intranet-overview ) |
2016-10-22 17:58:42 +00:00
[Screenshots ](https://github.com/cytopia/devilbox#screenshots ) |
[License ](https://github.com/cytopia/devilbox/blob/master/LICENSE.md ) |
2016-11-06 16:49:48 +00:00
[Contributing ](https://github.com/cytopia/devilbox#contributing ) |
2016-10-22 17:58:42 +00:00
[Todo ](https://github.com/cytopia/devilbox/blob/master/CONTRIBUTING.md )
2016-10-09 16:47:49 +00:00
2016-11-03 15:00:46 +00:00
[![Build Status ](https://travis-ci.org/cytopia/devilbox.svg?branch=master )](https://travis-ci.org/cytopia/devilbox) ![Tag ](https://img.shields.io/github/tag/cytopia/devilbox.svg ) [![type ](https://img.shields.io/badge/type-Docker-orange.svg )](https://www.docker.com/) [![License ](https://img.shields.io/badge/license-MIT-blue.svg )](https://opensource.org/licenses/MIT)
2016-10-09 16:47:49 +00:00
2016-10-22 18:40:14 +00:00
The devilbox is a modern and highly customizable alternative for [XAMPP ](https://www.apachefriends.org ). It is based on `docker-compose` with presets for all kinds of versions for webservers, database servers and php.
2016-10-21 01:18:09 +00:00
2016-10-22 17:42:52 +00:00
Configuration is not necessary, as everything is pre-setup with mass virtual hosting.
2016-10-22 17:58:42 +00:00
**Supported operating systems**
![Linux ](https://raw.githubusercontent.com/cytopia/icons/master/64x64/linux.png ) ![Windows ](https://raw.githubusercontent.com/cytopia/icons/master/64x64/windows.png ) ![OSX ](https://raw.githubusercontent.com/cytopia/icons/master/64x64/osx.png )
< sub > It might run on FreeBSD, but I don't know the status of docker-compose there.< / sub >
---
2016-10-22 17:42:52 +00:00
## Usage
2016-10-21 01:18:09 +00:00
You are up and running in three simple steps:
```bash
2016-11-06 16:22:29 +00:00
# (optional) check out latest stable release
$ git checkout $(git describe --abbrev=0 --tags)
2016-10-21 01:18:09 +00:00
# Copy the example configuration file
$ cp env-example .env
# Edit your configuration
$ vim .env
# Start the dockers
$ docker-compose up
```
2016-10-29 09:43:28 +00:00
2016-11-06 16:22:29 +00:00
[What is the `.env` file? ](https://docs.docker.com/compose/env-file/ )
2016-10-09 16:47:49 +00:00
2016-11-06 16:49:48 +00:00
## Documentation
**Video Tutorials**
2016-10-25 01:28:58 +00:00
2016-11-03 12:26:42 +00:00
[![Devilbox setup and workflow ](https://raw.githubusercontent.com/cytopia/devilbox/master/doc/img/devilbox_01-setup-and-workflow.png "devilbox - setup and workflow" )](https://www.youtube.com/watch?v=reyZMyt2Zzo)
[![Devilbox email catch-all ](https://raw.githubusercontent.com/cytopia/devilbox/master/doc/img/devilbox_02-email-catch-all.png "devilbox - email catch-all" )](https://www.youtube.com/watch?v=e-U-C5WhxGY)
2016-10-25 01:28:58 +00:00
2016-11-06 16:49:48 +00:00
**Documentation**
For setup, usage and examples see detailed ** [Documentation ](https://github.com/cytopia/devilbox/blob/master/doc/README.md )**.
2016-10-09 16:47:49 +00:00
## Run-time Matrix
2016-10-21 01:18:09 +00:00
Select your prefered setup.
2016-10-09 16:47:49 +00:00
2016-10-21 01:18:09 +00:00
No need to install and configure different versions locally. Simply choose your required LAMP/LEMP stack combination during startup and it is up and running instantly.
2016-10-10 08:16:09 +00:00
2016-10-30 14:26:44 +00:00
**Base stack**
2016-10-30 13:47:55 +00:00
| Webserver | MySQL | PostgreSQL | PHP |
|-----------|-------|------------|-----|
2017-04-19 17:48:44 +00:00
| [![Build Status ](https://travis-ci.org/cytopia/docker-apache-2.2.svg?branch=master )](https://travis-ci.org/cytopia/docker-apache-2.2) [Apache 2.2 ](https://github.com/cytopia/docker-apache-2.2 ) | [![Build Status ](https://travis-ci.org/cytopia/docker-mysql-5.5.svg?branch=master )](https://travis-ci.org/cytopia/docker-mysql-5.5) [MySQL 5.5 ](https://github.com/cytopia/docker-mysql-5.5 ) | [![Build Status ](https://travis-ci.org/docker-library/postgres.svg?branch=master )](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.2 ](https://hub.docker.com/_/postgres/ ) | [![Build Status ](https://travis-ci.org/cytopia/docker-php-fpm-5.4.svg?branch=master )](https://travis-ci.org/cytopia/docker-php-fpm-5.4) [PHP 5.4 ](https://github.com/cytopia/docker-php-fpm-5.4 ) |
| [![Build Status ](https://travis-ci.org/cytopia/docker-apache-2.4.svg?branch=master )](https://travis-ci.org/cytopia/docker-apache-2.4) [Apache 2.4 ](https://github.com/cytopia/docker-apache-2.4 ) | [![Build Status ](https://travis-ci.org/cytopia/docker-mysql-5.6.svg?branch=master )](https://travis-ci.org/cytopia/docker-mysql-5.6) [MySQL 5.6 ](https://github.com/cytopia/docker-mysql-5.6 ) | [![Build Status ](https://travis-ci.org/docker-library/postgres.svg?branch=master )](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.3 ](https://hub.docker.com/_/postgres/ ) | [![Build Status ](https://travis-ci.org/cytopia/docker-php-fpm-5.5.svg?branch=master )](https://travis-ci.org/cytopia/docker-php-fpm-5.5) [PHP 5.5 ](https://github.com/cytopia/docker-php-fpm-5.5 ) |
| [![Build Status ](https://travis-ci.org/cytopia/docker-nginx-stable.svg?branch=master )](https://travis-ci.org/cytopia/docker-nginx-stable) [Nginx stable ](https://github.com/cytopia/docker-nginx-stable ) | [![Build Status ](https://travis-ci.org/cytopia/docker-mysql-5.7.svg?branch=master )](https://travis-ci.org/cytopia/docker-mysql-5.7) [MySQL 5.7 ](https://github.com/cytopia/docker-mysql-5.7 ) | [![Build Status ](https://travis-ci.org/docker-library/postgres.svg?branch=master )](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.4 ](https://hub.docker.com/_/postgres/ ) | [![Build Status ](https://travis-ci.org/cytopia/docker-php-fpm-5.6.svg?branch=master )](https://travis-ci.org/cytopia/docker-php-fpm-5.6) [PHP 5.6 ](https://github.com/cytopia/docker-php-fpm-5.6 ) |
| [![Build Status ](https://travis-ci.org/cytopia/docker-nginx-mainline.svg?branch=master )](https://travis-ci.org/cytopia/docker-nginx-mainline) [Nginx mainline ](https://github.com/cytopia/docker-nginx-mainline ) | [![Build Status ](https://travis-ci.org/cytopia/docker-mariadb-5.5.svg?branch=master )](https://travis-ci.org/cytopia/docker-mariadb-5.5) [MariaDB 5.5 ](https://github.com/cytopia/docker-mariadb-5.5 ) | [![Build Status ](https://travis-ci.org/docker-library/postgres.svg?branch=master )](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.5 ](https://hub.docker.com/_/postgres/ ) | [![Build Status ](https://travis-ci.org/cytopia/docker-php-fpm-7.0.svg?branch=master )](https://travis-ci.org/cytopia/docker-php-fpm-7.0) [PHP 7.0 ](https://github.com/cytopia/docker-php-fpm-7.0 ) |
| | [![Build Status ](https://travis-ci.org/cytopia/docker-mariadb-10.0.svg?branch=master )](https://travis-ci.org/cytopia/docker-mariadb-10.0) [MariaDB 10.0 ](https://github.com/cytopia/docker-mariadb-10.0 ) | [![Build Status ](https://travis-ci.org/docker-library/postgres.svg?branch=master )](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.6 ](https://hub.docker.com/_/postgres/ ) | [![Build Status ](https://travis-ci.org/cytopia/docker-php-fpm-7.1.svg?branch=master )](https://travis-ci.org/cytopia/docker-php-fpm-7.1) [PHP 7.1 ](https://github.com/cytopia/docker-php-fpm-7.1 ) |
| | [![Build Status ](https://travis-ci.org/cytopia/docker-mariadb-10.1.svg?branch=master )](https://travis-ci.org/cytopia/docker-mariadb-10.1) [MariaDB 10.1 ](https://github.com/cytopia/docker-mariadb-10.1 ) | | [![Build Status ](https://travis-ci.org/cytopia/docker-hhvm-latest.svg?branch=master )](https://travis-ci.org/cytopia/docker-hhvm-latest) [HHVM latest ](https://github.com/cytopia/docker-hhvm-latest )
2016-10-30 15:11:54 +00:00
| | [![Build Status ](https://travis-ci.org/cytopia/docker-mariadb-10.2.svg?branch=master )](https://travis-ci.org/cytopia/docker-mariadb-10.2) [MariaDB 10.2 ](https://github.com/cytopia/docker-mariadb-10.2 ) | |
2016-10-25 20:27:34 +00:00
2016-10-10 08:16:09 +00:00
2016-10-30 14:26:44 +00:00
**Optional NoSQL stack**
| Cassandra | CouchDB | Memcached | MongoDB | Redis |
|-----------|---------|-----------|---------|-------|
| Cassandra 2.1 | CouchDB 1.6 | Memcached latest | MongoDB 2.6 | Redis 2.8 |
| Cassandra 2.2 | CouchDB 2.0 | | MongoDB 3.0 | Redis 3.0 |
| Cassandra 3.0 | | | MongoDB 3.2 | Redis 3.2 |
| | | | MongoDB 3.4 | Redis unstable |
2016-11-03 14:22:31 +00:00
< sub > **Note:** Entries without links or without build-status are not yet available, but are coming soon. See [ROADMAP ](https://github.com/cytopia/devilbox/issues/23 ) for tasks and upcoming features.</ sub >
2016-10-30 15:11:54 +00:00
<!--
**Optional search stack**
| Apache Solr | Elasticsearch |
|-------------|---------------|
| todo | |
-->
2016-10-30 14:26:44 +00:00
<!--
**Optional cgi stack**
| Go | Perl | Python | Ruby |
|------|------|--------|------|
| todo | todo | todo | todo |
-->
2016-10-21 01:18:09 +00:00
## Feature overview
2016-10-30 13:40:29 +00:00
* Dynamically Configured **Mass Virtual Hosting**
* **Email** catch-all (Intercept and view all sent emails)
* Configuration **overwrites** (`my.cnf`, `nginx.conf` , `httpd.conf` or `php.ini` )
* **Log files** available on host computer
2016-10-21 01:18:09 +00:00
* MySQL socket (available on host computer and PHP container)
* MySQL connectivity (reachable from host computer and from PHP container via `127.0.0.1` and `localhost` )
2016-10-30 13:40:29 +00:00
* **Xdebug**
2016-10-21 01:18:09 +00:00
2016-10-29 09:18:38 +00:00
<!--
2016-10-27 07:19:53 +00:00
## Documentation
* Configuration
* Xdebug
2016-10-29 09:18:38 +00:00
-->
2016-10-27 07:19:53 +00:00
2016-10-21 01:18:09 +00:00
## Intranet overview
2016-10-09 16:47:49 +00:00
2016-10-21 01:18:09 +00:00
The devilbox comes with a pre-configured intranet on `http://localhost`
2016-10-10 11:06:47 +00:00
2016-11-15 18:52:39 +00:00
* Virtual Host overview
* MySQL Database overview
* PostgreSQL Database overview
2016-10-30 13:40:29 +00:00
* Email overview
2016-10-21 01:18:09 +00:00
* PHP Info
* MySQL Info
2016-11-15 18:52:39 +00:00
* PostgreSQL Info
* phpMyAdmin
* Adminer
2016-10-21 01:18:09 +00:00
* Opcache GUI
2016-10-10 11:06:47 +00:00
2016-10-22 17:22:17 +00:00
2016-10-21 01:18:09 +00:00
## Screenshots
2016-10-10 11:14:27 +00:00
2016-10-21 01:18:09 +00:00
**Homepage with host / docker information**
2016-10-10 11:14:27 +00:00
The homepage shows you the status of your current configured setup.
* which versions are used
* what directories are mounted
* what other settings have been set
2016-10-10 11:06:47 +00:00
![Intranet Home ](https://raw.githubusercontent.com/cytopia/devilbox/master/doc/img/01_intranet_home.png "Intranet Home" )
2016-10-10 11:14:27 +00:00
2016-10-21 01:18:09 +00:00
**Virtual Host overview**
2016-10-10 11:14:27 +00:00
This overview shows you all available virtual hosts and if they need additional configuration (on the host)
Virtual Hosts are considered valid if the following requirements are met (on the host system):
* `htdocs` folder/symlink exists in your project folder
* `/etc/hosts` has a valid DNS config for your host: `127.0.0.1 <project-folder>.loc` )
2016-10-10 11:06:47 +00:00
![Intranet vHost ](https://raw.githubusercontent.com/cytopia/devilbox/master/doc/img/02_intranet_vhosts.png "Intranet Home" )
2016-10-10 11:14:27 +00:00
2016-10-21 01:18:09 +00:00
**Database overview**
2016-10-10 11:14:27 +00:00
Shows you all the databases that are loaded
2016-10-10 11:06:47 +00:00
![Intranet DB ](https://raw.githubusercontent.com/cytopia/devilbox/master/doc/img/03_intranet_databases.png "Intranet Home" )
2016-10-30 13:40:29 +00:00
**Email overview**
Shows you all the emails that have been sent. No email will actually be sent outside, but they are all catched by one account and presented here.
![Intranet Email ](https://raw.githubusercontent.com/cytopia/devilbox/master/doc/img/04_intranet_emails.png "Intranet Home" )
2016-11-06 16:49:48 +00:00
## Contributing
There is quite a lot todo and planned. If you like to contribute, view [CONTRIBUTING.md ](https://github.com/cytopia/devilbox/blob/master/CONTRIBUTING.md ) and [ROADMAP ](https://github.com/cytopia/devilbox/issues/23 ).
Contributors will be credited within the intranet and on the github page.