mirror of
https://github.com/cytopia/devilbox.git
synced 2025-03-03 04:49:37 +00:00
REL-0.9 Updating documentation
This commit is contained in:
parent
9d185a985b
commit
24e2767f33
104
README.md
104
README.md
@ -13,7 +13,6 @@
|
||||
|
||||

|
||||
|
||||
|
||||
[](https://travis-ci.org/cytopia/devilbox)  [](https://www.docker.com/) [](https://opensource.org/licenses/MIT)
|
||||
|
||||
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.
|
||||
@ -43,56 +42,94 @@ $ vim .env
|
||||
|
||||
# Start all containers
|
||||
$ docker-compose up
|
||||
```
|
||||
|
||||
# Alternatively only start what you need
|
||||
## Selective start
|
||||
```
|
||||
$ docker-compose up httpd php mysql redis
|
||||
```
|
||||

|
||||
|
||||
|
||||
```
|
||||
$ docker-compose up httpd php mysql pgsql redis memcd
|
||||
```
|
||||

|
||||
|
||||
```
|
||||
$ docker-compose up httpd php pgsql memcd
|
||||
```
|
||||

|
||||
|
||||
|
||||
## 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.
|
||||
|
||||
* **Mass virtual host**
|
||||
* **Custom domains** (`*.loc`, `*.local`, `*.dev`, ...)
|
||||
* **Auto-DNS** (Internal Bind server running)
|
||||
* **Email catch-all** (Internal postfix with catch-all)
|
||||
* **Log files** (available on host computer)
|
||||
* **Config overwrites** (`my.cnf`, `nginx.conf`, `httpd.conf` or `php.ini`)
|
||||
* **Tools** (git, composer, node, npm, drush, drupal-console, ...)
|
||||
* **Xdebug**
|
||||
|
||||
**Batteries included:**
|
||||
|
||||
* [phpMyAdmin](https://www.phpmyadmin.net)
|
||||
* [Adminer](https://www.adminer.org)
|
||||
* [OpcacheGUI](https://github.com/PeeHaa/OpCacheGUI)
|
||||
* Mail viewer
|
||||
|
||||
|
||||
## Documentation
|
||||
|
||||
**Video Tutorials**
|
||||
### Video Tutorials
|
||||
|
||||
[](https://www.youtube.com/watch?v=reyZMyt2Zzo)
|
||||
[](https://www.youtube.com/watch?v=e-U-C5WhxGY)
|
||||
|
||||
**Documentation**
|
||||
### Documentation
|
||||
|
||||
For setup, usage and examples see detailed **[Documentation](https://github.com/cytopia/devilbox/blob/master/doc/README.md)**.
|
||||
|
||||
## Run-time Matrix
|
||||
|
||||
Select your prefered setup.
|
||||
Select your prefered version. (By editing the **`.env`** file)
|
||||
|
||||
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.
|
||||
No need to install and configure different versions locally. Simply choose your required LAMP/LEMP stack versions during startup and it is up and running instantly.
|
||||
|
||||
### 1/3 Base stack (required)
|
||||
#### 1/3 Base stack (required)
|
||||
|
||||
| Webserver | PHP |
|
||||
|-----------|-----|
|
||||
| [](https://travis-ci.org/cytopia/docker-apache-2.2) [Apache 2.2](https://github.com/cytopia/docker-apache-2.2) | [](https://travis-ci.org/cytopia/docker-php-fpm-5.4) [PHP 5.4](https://github.com/cytopia/docker-php-fpm-5.4) |
|
||||
| [](https://travis-ci.org/cytopia/docker-apache-2.4) [Apache 2.4](https://github.com/cytopia/docker-apache-2.4) | [](https://travis-ci.org/cytopia/docker-php-fpm-5.5) [PHP 5.5](https://github.com/cytopia/docker-php-fpm-5.5) |
|
||||
| [](https://travis-ci.org/cytopia/docker-nginx-stable) [Nginx stable](https://github.com/cytopia/docker-nginx-stable) | [](https://travis-ci.org/cytopia/docker-php-fpm-5.6) [PHP 5.6](https://github.com/cytopia/docker-php-fpm-5.6) |
|
||||
| [](https://travis-ci.org/cytopia/docker-nginx-mainline) [Nginx mainline](https://github.com/cytopia/docker-nginx-mainline) | [](https://travis-ci.org/cytopia/docker-php-fpm-7.0) [PHP 7.0](https://github.com/cytopia/docker-php-fpm-7.0) |
|
||||
| | [](https://travis-ci.org/cytopia/docker-php-fpm-7.1) [PHP 7.1](https://github.com/cytopia/docker-php-fpm-7.1) |
|
||||
| | [](https://travis-ci.org/cytopia/docker-hhvm-latest) [HHVM latest](https://github.com/cytopia/docker-hhvm-latest)
|
||||
| DNS | Webserver | PHP |
|
||||
|-----|-----------|-----|
|
||||
| [](https://travis-ci.org/cytopia/docker-bind) [Bind](https://github.com/cytopia/docker-bind) | [](https://travis-ci.org/cytopia/docker-apache-2.2) [Apache 2.2](https://github.com/cytopia/docker-apache-2.2) | [](https://travis-ci.org/cytopia/docker-php-fpm-5.4) [PHP 5.4](https://github.com/cytopia/docker-php-fpm-5.4) |
|
||||
| | [](https://travis-ci.org/cytopia/docker-apache-2.4) [Apache 2.4](https://github.com/cytopia/docker-apache-2.4) | [](https://travis-ci.org/cytopia/docker-php-fpm-5.5) [PHP 5.5](https://github.com/cytopia/docker-php-fpm-5.5) |
|
||||
| | [](https://travis-ci.org/cytopia/docker-nginx-stable) [Nginx stable](https://github.com/cytopia/docker-nginx-stable) | [](https://travis-ci.org/cytopia/docker-php-fpm-5.6) [PHP 5.6](https://github.com/cytopia/docker-php-fpm-5.6) |
|
||||
| | [](https://travis-ci.org/cytopia/docker-nginx-mainline) [Nginx mainline](https://github.com/cytopia/docker-nginx-mainline) | [](https://travis-ci.org/cytopia/docker-php-fpm-7.0) [PHP 7.0](https://github.com/cytopia/docker-php-fpm-7.0) |
|
||||
| | | [](https://travis-ci.org/cytopia/docker-php-fpm-7.1) [PHP 7.1](https://github.com/cytopia/docker-php-fpm-7.1) |
|
||||
| | | [](https://travis-ci.org/cytopia/docker-hhvm-latest) [HHVM latest](https://github.com/cytopia/docker-hhvm-latest)
|
||||
|
||||
<sub>**Note:** Entries without links or without build-status are planned, but not yet available. See [ROADMAP](https://github.com/cytopia/devilbox/issues/23) for tasks and upcoming features.</sub>
|
||||
|
||||
### 2/3 SQL stack (optional)
|
||||
#### 2/3 SQL stack (optional)
|
||||
|
||||
| MySQL | PostgreSQL |
|
||||
|-------|------------|
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-5.5) [MySQL 5.5](https://github.com/cytopia/docker-mysql-5.5) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.2](https://hub.docker.com/_/postgres/) |
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-5.6) [MySQL 5.6](https://github.com/cytopia/docker-mysql-5.6) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.3](https://hub.docker.com/_/postgres/) |
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-5.7) [MySQL 5.7](https://github.com/cytopia/docker-mysql-5.7) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.4](https://hub.docker.com/_/postgres/) |
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-8.0) [MySQL 8.0](https://github.com/cytopia/docker-mysql-8.0) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.5](https://hub.docker.com/_/postgres/) |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-5.5) [MariaDB 5.5](https://github.com/cytopia/docker-mariadb-5.5) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.6](https://hub.docker.com/_/postgres/) |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.0) [MariaDB 10.0](https://github.com/cytopia/docker-mariadb-10.0) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.1) [MariaDB 10.1](https://github.com/cytopia/docker-mariadb-10.1) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.2) [MariaDB 10.2](https://github.com/cytopia/docker-mariadb-10.2) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.3) [MariaDB 10.3](https://github.com/cytopia/docker-mariadb-10.3) | |
|
||||
| MySQL | PostgreSQL | MS SQL |
|
||||
|-------|------------|--------|
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-5.5) [MySQL 5.5](https://github.com/cytopia/docker-mysql-5.5) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.1](https://hub.docker.com/_/postgres/) | MS SQL 2017 |
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-5.6) [MySQL 5.6](https://github.com/cytopia/docker-mysql-5.6) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.2](https://hub.docker.com/_/postgres/) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-5.7) [MySQL 5.7](https://github.com/cytopia/docker-mysql-5.7) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.3](https://hub.docker.com/_/postgres/) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mysql-8.0) [MySQL 8.0](https://github.com/cytopia/docker-mysql-8.0) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.4](https://hub.docker.com/_/postgres/) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-5.5) [MariaDB 5.5](https://github.com/cytopia/docker-mariadb-5.5) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.5](https://hub.docker.com/_/postgres/) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.0) [MariaDB 10.0](https://github.com/cytopia/docker-mariadb-10.0) | [](https://travis-ci.org/docker-library/postgres/branches) [PgSQL 9.6](https://hub.docker.com/_/postgres/) | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.1) [MariaDB 10.1](https://github.com/cytopia/docker-mariadb-10.1) | | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.2) [MariaDB 10.2](https://github.com/cytopia/docker-mariadb-10.2) | | |
|
||||
| [](https://travis-ci.org/cytopia/docker-mariadb-10.3) [MariaDB 10.3](https://github.com/cytopia/docker-mariadb-10.3) | | |
|
||||
|
||||
<sub>**Note:** Entries without links or without build-status are planned, but not yet available. See [ROADMAP](https://github.com/cytopia/devilbox/issues/23) for tasks and upcoming features.</sub>
|
||||
|
||||
### 3/3 NoSQL stack (optional)
|
||||
#### 3/3 NoSQL stack (optional)
|
||||
|
||||
| Cassandra | CouchDB | Memcached | MongoDB | Redis |
|
||||
|-----------|---------|-----------|---------|-------|
|
||||
@ -101,7 +138,7 @@ No need to install and configure different versions locally. Simply choose your
|
||||
| Cassandra 3.0 | | | MongoDB 3.2 | [](https://travis-ci.org/docker-library/redis/branches) [Redis 3.2](https://github.com/docker-library/redis) |
|
||||
| | | | MongoDB 3.4 | |
|
||||
|
||||
<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>
|
||||
<sub>**Note:** Entries without links or without build-status are planned, but not yet available. See [ROADMAP](https://github.com/cytopia/devilbox/issues/23) for tasks and upcoming features.</sub>
|
||||
|
||||
|
||||
<!--
|
||||
@ -119,15 +156,6 @@ No need to install and configure different versions locally. Simply choose your
|
||||
| todo | todo | todo | todo |
|
||||
-->
|
||||
|
||||
## Feature overview
|
||||
|
||||
* 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
|
||||
* 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`)
|
||||
* **Xdebug**
|
||||
|
||||
|
||||
<!--
|
||||
|
@ -41,18 +41,19 @@ Each service has a `<SERVICE_NAME>_SERVER` variable with a corresponding version
|
||||
It is important to leave at least one version uncomment, otherwise the start-up will lead to errors. Use the following variable to control which version will be loaded:
|
||||
|
||||
* **`PHP_SERVER`**
|
||||
* **`HTTP_SERVER`**
|
||||
* **`HTTPD_SERVER`**
|
||||
* **`MYSQL_SERVER`**
|
||||
* **`PGSQL_SERVER`**
|
||||
* **`REDIS_SERVER`**
|
||||
* **`MEMCD_SERVER`**
|
||||
|
||||
#### 1.2 Data directories
|
||||
|
||||
There are a few pre-configured data directories to make storage persistent across container restarts:
|
||||
|
||||
* *`HOST_PATH_TO_WWW_DOCROOTS`*
|
||||
* *`HOST_PATH_TO_MYSQL_DATADIR`*
|
||||
* *`HOST_PATH_TO_POSTGRES_DATADIR`*
|
||||
* *`HOST_PATH_HTTPD_DATADIR`*
|
||||
* *`HOST_PATH_MYSQL_DATADIR`*
|
||||
* *`HOST_PATH_PGSQL_DATADIR`*
|
||||
|
||||
The values by default point to relative directories inside the devilbox repository. You can however also point them to different locations (relative or absolute)
|
||||
|
||||
|
28
doc/Info.md
28
doc/Info.md
@ -23,14 +23,15 @@ It is best to use the hostnames and not to rely on the ip addresses as they migh
|
||||
|
||||
> E.g.: When you want to setup a MySQL database connection use `mysql` or `127.0.0.1` as the hostname.
|
||||
|
||||
| Container | Container name | Hostname | IP Address |
|
||||
|-----------------|-----------------|-----------|---------------|
|
||||
| PHP / HHVM | php | php | 172.16.238.10 |
|
||||
| Apache / Nginx | http | http | 172.16.238.11 |
|
||||
| MySQL / MariaDB | mysql | mysql | 172.16.238.12 |
|
||||
| PostgreSQL | pgsql | pgsql | 172.16.238.13 |
|
||||
| Redis | redis | redis | 172.16.238.14 |
|
||||
| Memcahed | memcached | memcached | 172.16.238.15 |
|
||||
| Container | Container name | Hostname | IP Address |
|
||||
|-----------------|-----------------|-----------|----------------|
|
||||
| DNS | bind | bind | 172.16.238.100 |
|
||||
| PHP / HHVM | php | php | 172.16.238.10 |
|
||||
| Apache / Nginx | http | http | 172.16.238.11 |
|
||||
| MySQL / MariaDB | mysql | mysql | 172.16.238.12 |
|
||||
| PostgreSQL | pgsql | pgsql | 172.16.238.13 |
|
||||
| Redis | redis | redis | 172.16.238.14 |
|
||||
| Memcahed | memcd | memcd | 172.16.238.15 |
|
||||
|
||||
### Background
|
||||
|
||||
@ -45,9 +46,8 @@ The PHP container is using [socat](https://linux.die.net/man/1/socat) to
|
||||
1. forward the remote mysql port `3306` (on the mysql container) to its own `127.0.0.1:3306`
|
||||
2. forward the remote pgsql port `5432` (on the mysql container) to its own `127.0.0.1:5432`
|
||||
3. forward the remote redis port `6379` (on the mysql container) to its own `127.0.0.1:6379`
|
||||
3. forward the remote mecahced port `11211` (on the memcd container) to its own `127.0.0.1:11211`
|
||||
|
||||
The PHP container is using volumes to
|
||||
1. mount the remote `mysql.sock` to its own filesystem into a path configured in its `php.ini`
|
||||
|
||||
#### Background - Docker Host
|
||||
|
||||
@ -55,6 +55,7 @@ The docker host (your computer) does exactly the same as the `php` container.
|
||||
1. container mysql port `3306` is exposed to the host on port `127.0.0.1:3306`
|
||||
2. container pgsql port `5432` is exposed to the host on port `127.0.0.1:5432`
|
||||
3. container redis port `6379` is exposed to the host on port `127.0.0.1:6379`
|
||||
3. container memcd port `11211` is exposed to the host on port `127.0.0.1:11211`
|
||||
|
||||
Also the database sockets from the container are mounted into the host.
|
||||
|
||||
@ -64,13 +65,6 @@ With the PHP container and the docker host (your computer) behaving the same it
|
||||
```php
|
||||
<?php
|
||||
mysql_connect('127.0.0.1', 'user', 'pass');
|
||||
// or using sockets
|
||||
mysql_connect('localhost', 'user', 'pass');
|
||||
```
|
||||
|
||||
This setup can then either be served by the docker or by your host computer (if you shutdown docker and start your local lamp stack)
|
||||
|
||||
#### Background - Implications
|
||||
|
||||
Messing around with socket mounts has caused some problems in the past and it might be subject of change.
|
||||
In order to stay compatible it is your best choice to use `127.0.0.1` instead of `localhost`.
|
||||
|
@ -19,8 +19,9 @@ PHP Projects |
|
||||
|
||||
### TL;DR
|
||||
|
||||
1. Create folder `${HOST_PATH_TO_MYSQL_DATADIR}/my-project/htdocs
|
||||
2. Expand docker host `/etc/hosts` with `127.0.0.1 my-project.loc`
|
||||
1. Create folder `${HOST_PATH_HTTPD_DATADIR}/my-project/htdocs`
|
||||
2. Set `${TLD_SUFFIX}` in the `.env` file (example: `loc`)
|
||||
2. Expand docker host `/etc/hosts` with `127.0.0.1 my-project.loc` or attach included DNS server to your host and stop worrying about DNS
|
||||
3. Browse `http://my-project.loc`
|
||||
|
||||
|
||||
@ -28,16 +29,29 @@ PHP Projects |
|
||||
|
||||
As an example, we are going to add two projects.
|
||||
|
||||
**Prerequisites**
|
||||
**Prerequisites (dir)**
|
||||
|
||||
For this case let's assume your www root folder points to `~/www`. This means your projects will reside on your host computer in your home directory under www.
|
||||
|
||||
In order to achive this set `HOST_PATH_TO_WWW_DOCROOTS=~/www` in the `.env` file (If this file does not yet exist, copy `env-example` to `.env`).
|
||||
In order to achive this set `HOST_PATH_HTTPD_DATADIR=~/www` in the `.env` file (If this file does not yet exist, copy `env-example` to `.env`).
|
||||
|
||||
`.env`:
|
||||
```
|
||||
...
|
||||
HOST_PATH_TO_WWW_DOCROOTS=~/www
|
||||
HOST_PATH_HTTPD_DATADIR=~/www
|
||||
...
|
||||
```
|
||||
|
||||
**Prerequisites (domain suffix)**
|
||||
|
||||
Let's also assume that you have chosen `*.loc` as you projects `TLD_SUFFIX` Domain
|
||||
|
||||
In order to achive this set `TLD_SUFFIX=loc` in the `.env` file (If this file does not yet exist, copy `env-example` to `.env`).
|
||||
|
||||
`.env`:
|
||||
```
|
||||
...
|
||||
TLD_SUFFIX=loc
|
||||
...
|
||||
```
|
||||
|
||||
|
BIN
doc/img/devilbox-dash-01.png
Normal file
BIN
doc/img/devilbox-dash-01.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 82 KiB |
BIN
doc/img/devilbox-dash-02.png
Normal file
BIN
doc/img/devilbox-dash-02.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 86 KiB |
BIN
doc/img/devilbox-dash-03.png
Normal file
BIN
doc/img/devilbox-dash-03.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 85 KiB |
Loading…
x
Reference in New Issue
Block a user