REL-0.11 Link documentation into main README

This commit is contained in:
cytopia 2017-06-25 13:46:50 +02:00
parent 5b66c3ef0c
commit 294cb75e4d
No known key found for this signature in database
GPG Key ID: 6D56EDB8695128A2
2 changed files with 268 additions and 100 deletions

332
README.md
View File

@ -14,9 +14,9 @@
[![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)
The devilbox is a modern and highly customizable alternative for *[XAMPP](https://www.apachefriends.org)* with a few additional feature on top. It is based on `docker-compose` with presets for all kinds of versions for webservers, database servers, php and more.
The devilbox is a modern and highly customisable **LAMP** and **MEAN** stack replacement based purely on docker and docker-compose running on all major platforms. It supports an unlimited number of projects for which vhosts 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 and auto-dns.
Configuration is not necessary, as everything is pre-setup with mass virtual hosting and also offers Auto-DNS.
**Supported operating systems**
@ -25,12 +25,12 @@ Configuration is not necessary, as everything is pre-setup with mass virtual hos
<sub>It might run on FreeBSD, but I don't know the status of docker-compose there.</sub>
---
## Usage
### Quick start
#### Quick start
You are up and running in three simple steps:
@ -45,125 +45,285 @@ $ vim .env
$ docker-compose up
```
### Selective start
#### Selective start
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. Here are a few examples to get you started.
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.
```shell
$ docker-compose up httpd php mysql redis
```
![Devilbox](docs/img/devilbox-dash-01.png)
#### Run different versions
```shell
$ docker-compose up httpd php mysql pgsql redis memcd
```
![Devilbox](docs/img/devilbox-dash-02.png)
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.
```shell
$ docker-compose up httpd php pgsql memcd
```
![Devilbox](docs/img/devilbox-dash-03.png)
<table>
<thead>
<tr>
<th>Apache</th>
<th>Nginx</th>
<th>PHP</th>
<th>MySQL</th>
<th>MariaDB</th>
<th>PgSQL</th>
<th>Redis</th>
<th>Memcached</th>
<th>MongoDB</th>
</tr>
</thead>
<tbody>
<tr>
<td><a target="_blank" title="Apache 2.2" href="https://github.com/cytopia/docker-apache-2.2">2.2</a></td>
<td><a target="_blank" title="Nginx stable" href="https://github.com/cytopia/docker-nginx-stable">stable</a></td>
<td><a target="_blank" title="PHP 5.4" href="https://github.com/cytopia/docker-php-fpm-5.4">5.4</a></td>
<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>
<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>
<td><a target="_blank" title="Apache 2.4" href="https://github.com/cytopia/docker-apache-2.4">2.4</a></td>
<td><a target="_blank" title="Nginx mainline" href="https://github.com/cytopia/docker-nginx-mainline">mainline</a></td>
<td><a target="_blank" title="PHP 5.5" href="https://github.com/cytopia/docker-php-fpm-5.5">5.5</a></td>
<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>
<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>
<td><a target="_blank" title="PHP 5.6" href="https://github.com/cytopia/docker-php-fpm-5.6">5.6</a></td>
<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>
<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>
<td><a target="_blank" title="PHP 7.0" href="https://github.com/cytopia/docker-php-fpm-7.0">7.0</a></td>
<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>
<td><a target="_blank" title="PgSQL 9.4" href="https://github.com/docker-library/postgres">9.4</a></td>
<td></td>
<td>...</td>
<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>
<td><a target="_blank" title="PHP 7.1" href="https://github.com/cytopia/docker-php-fpm-7.1">7.1</a></td>
<td></td>
<td><a target="_blank" title="MariaDB 10.3" href="https://github.com/cytopia/docker-mariadb-10.3">10.3</a></td>
<td><a target="_blank" title="PgSQL 9.5" href="https://github.com/docker-library/postgres">9.5</a></td>
<td></td>
<td><a target="_blank" title="Memcached 1.4.36" href="https://github.com/docker-library/memcached">1.4.36</a></td>
<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>
<td><a target="_blank" title="HHVM" href="https://github.com/cytopia/docker-hhvm-latest">HHVM</a></td>
<td></td>
<td></td>
<td><a target="_blank" title="PgSQL 9.6" href="https://github.com/docker-library/postgres">9.6</a></td>
<td></td>
<td><a target="_blank" title="Memcached latest" href="https://github.com/docker-library/memcached">latest</a></td>
<td></td>
</tr>
</tbody>
</table>
### Run different versions
#### Enter the container
Every single attachable container comes with many different versions (see **[runtime-matrix](#run-time-matrix)** below). In order to select the desired version for a container, simply edit the `.env` file and uncomment the version of choice.
The following example shows how to set Memcached to version `1.4.28`:
```shell
$ vim .env
...
#MEMCD_SERVER=1.4.21
#MEMCD_SERVER=1.4.22
#MEMCD_SERVER=1.4.23
#MEMCD_SERVER=1.4.24
#MEMCD_SERVER=1.4.25
#MEMCD_SERVER=1.4.26
#MEMCD_SERVER=1.4.27
MEMCD_SERVER=1.4.28
#MEMCD_SERVER=1.4.29
#MEMCD_SERVER=1.4.30
#MEMCD_SERVER=1.4.31
#MEMCD_SERVER=1.4.32
#MEMCD_SERVER=1.4.33
#MEMCD_SERVER=1.4.34
#MEMCD_SERVER=1.4.35
#MEMCD_SERVER=1.4.36
#MEMCD_SERVER=latest
```
### Enter the container
You can also work directly inside the php container if you need to run tools such as `drush`, `drupal-console`, `composer`, `node` etc. Simply use the prepared scripts in the base directory to enter (`PS1` will be populated with current chosen php version):
You can also work directly inside the php container. Simply use the bundled scripts `bash.sh` or `root_bash.sh`. The `PS1` will automatically be populated with current chosen php version.
```shell
# Enter as user devilbox (normal operation / development)
$ ./bash.sh
host> ./bash.sh
devilbox@php-7.0.19 in /shared/httpd $
```
```shell
# Enter as root user (do root stuff)
$ ./root_bash.sh
host> ./root_bash.sh
root@php-7.0.19 in /shared/httpd $
```
Your projects can be found in `/shared/httpd` (This is also the place you will land once entered). 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).
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).
## 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.
#### Features
* **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, ...)
* **Self-validation** (projects and configured options are validated and marked in the intranet)
* **Xdebug**
**Batteries included:**
#### Batteries
* [phpMyAdmin](https://www.phpmyadmin.net)
* [Adminer](https://www.adminer.org)
* [OpcacheGUI](https://github.com/PeeHaa/OpCacheGUI)
* Mail viewer
#### Tools
| tool | binary |
|----------------|---------|
| [composer](https://getcomposer.org) | `composer` |
| [drupal-console](https://drupalconsole.com) | `drupal` |
| [drush](http://www.drush.org) | `drush` |
| [git](https://git-scm.com) | `git` |
| [laravel installer](https://github.com/laravel/installer) | `laravel` |
| [mysqldump-secure](https://mysqldump-secure.org) | `mysqldump-secure` |
| [node](https://nodejs.org) | `node` |
| [npm](https://www.npmjs.com) | `npm` |
| [phalcon-devtools](https://github.com/phalcon/phalcon-devtools) | `phalcon` |
| [symfony installer](https://github.com/symfony/symfony-installer) | `symfony` |
| [wp-cli](https://wp-cli.org) | `wp` |
## Documentation
### Video Tutorials
#### Video Tutorials
To get you started quickly, lean back and watch the following videos on Youtube.
[![Devilbox setup and workflow](docs/img/devilbox_01-setup-and-workflow.png "devilbox - setup and workflow")](https://www.youtube.com/watch?v=reyZMyt2Zzo)
[![Devilbox email catch-all](docs/img/devilbox_02-email-catch-all.png "devilbox - email catch-all")](https://www.youtube.com/watch?v=e-U-C5WhxGY)
### Documentation
#### Documentation explained
For setup, usage and examples see detailed **[Documentation](docs/README.md)**.
The devilbox documentation consists of the following main sections.
| Documentaion | Description |
|----------------------------------|-------------|
| [Overview](docs/README.md) | General overview |
| [Quickstart](docs/Quickstart.md) | Everything needed to get you started in no time |
| [Install](docs/Install.md) | Installation information for different operating systems |
| [Update](docs/Update.md) | Update strategies |
| [Configure](docs/Configure.md) | How to configure the devilbox and its services |
| [Run](docs/Run.md) | Explanation of different required docker-compose run commands |
| [Usage](docs/Usage.md) | How to use the devilbox in detail |
| [OS](docs/OS.md) | Operating system specific information |
| [Backups](docs/Backups.md) | How to backup and restore various databases |
| [Examples](docs/Examples.md) | How to setup different frameworks: drupal, Yii, Symfony, Phalcon, Wordpress... |
| [Technical](docs/Technical.md) | Technical background information |
| [Hacking](docs/Hacking.md) | Hack the devilbox and integrate custom stuff |
| [FAQ](docs/FAQ.md) | Frequently asked questions |
#### Documentation
1. **[Overview](docs/README.md)**
1. [Main idea](docs/README.md#1-main-idea)
2. [Features](docs/README.md#2-features)
3. [Supported Host OS](docs/README.md#3-supported-host-os)
4. [Requirements](docs/README.md#4-requirements)
5. [Docker documentation](docs/README.md#5-docker-documentation)
6. [Devilbox documentation](docs/README.md#6-devilbox-documentation)
7. [Video Tutorials](docs/README.md#7-video-tutorials)
8. [Available PHP Modules](docs/README.md#8-available-php-modules)
9. [Supported Frameworks and CMS](docs/README.md#9-supported-frameworks-and-cms)
2. **[Quickstart](docs/Quickstart.md)**
1. [Installation](docs/Quickstart.md#1-installation)
2. [Update](docs/Quickstart.md#2-update)
3. [Configuration](docs/Quickstart.md#3-configuration)
4. [Run](docs/Quickstart.md#4-run)
5. [Project setup](docs/Quickstart.md#5-project-setup)
6. [Enter the PHP Docker container](docs/Quickstart.md#6-enter-the-php-docker-container)
3. **[Install](docs/Install.md)**
1. [Install Docker](docs/Install.md#1-install-docker)
1. [Linux](docs/Install.md#1-1-linux)
2. [Windows](docs/Install.md#1-2-windows)
3. [OSX](docs/Install.md#1-3-osx)
2. [Install Devilbox](#2-install-devilbox)
4. **[Update](docs/Update.md)**
1. [TL;DR](docs/Update.md#1-tl-dr)
2. [Git tag vs master branch](docs/Update.md#2-git-tag-vs-master-branch)
3. [Compare .env file](docs/Update.md#3-compare-env-file)
4. [Pull new Docker container (Important!)](docs/Update.md#4-pull-new-docker-container-important-)
5. [Remove anonymous volumes](docs/Update.md#5-remove-anonymous-volumes)
5. **[Configure](docs/Configure.md)**
1. [Overview](docs/Configure.md#1-overview)
2. [Devilbox general settings](docs/Configure.md#2-devilbox-general-settings)
3. [Project settings](docs/Configure.md#3-project-settings)
4. [Container settings](docs/Configure.md#4-container-settings)
5. [Intranet settings](docs/Configure.md#5-intranet-settings)
6. [Host computer](docs/Configure.md#6-host-computer)
6. **[Run](docs/Run.md)**
1. [Start the devilbox](docs/Run.md#1-start-the-devilbox)
2. [Stop the devilbox](docs/Run.md#2-stop-the-devilbox)
3. [Attach/Detach during run-time](docs/Run.md#3-attach-detach-during-run-time)
4. [Docker logs](docs/Run.md#4-docker-logs)
7. **[Usage](docs/Usage.md)**
1. [Mounted directories](docs/Usage.md#1-mounted-directories)
2. [Work on the Docker host](docs/Usage.md#2-work-on-the-docker-host)
3. [Work inside the PHP container](docs/Usage.md#3-work-inside-the-php-container)
4. [Managing Projects explained](docs/Usage.md#4-managing-projects-explained)
5. [Creating new Projects](docs/Usage.md#5-creating-new-projetcs)
6. [Switching container versions](docs/Usage.md#6-switching-container-versions)
7. [Emails](docs/Usage.md#7-emails)
8. [Log files](docs/Usage.md#8-log-files)
9. [Intranet](docs/Usage.md#9-intranet)
8. **[OS](docs/OS.md)**
1. [Linux](docs/OS.md#1-linux)
2. [Windows](docs/OS.md#2-windows)
3. [OSX](docs/OS.md#3-osx)
9. **[Backups](docs/Backups.md)**
1. [Info](docs/Backups.md#1-info)
2. [MySQL](docs/Backups.md#2-mysql)
1. [MySQL Database Backup](docs/Backups.md#2-1-mysql-database-backup)
2. [MySQL Database Restore](docs/Backups.md#2-2-mysql-database-restore)
3. [PostgreSQL](docs/Backups.md#3-postgresql)
1. [PostgreSQL Database Backup](docs/Backups.md#3-1-postgresql-database-backup)
2. [PostgreSQL Database Restore](docs/Backups.md#3-1-postgresql-database-restore)
4. [MongoDB](docs/Backups.md#4-mongodb)
1. [MongoDB Database Backup](docs/Backups.md#4-1-mongodb-database-backup)
2. [MongoDB Database Restore](docs/Backups.md#4-1-mongodb-database-restore)
10. **[Examples](docs/Examples.md)**
1. [Introduction](docs/Examples.md#1-introduction)
2. [Setup CakePHP](docs/Examples.md#2-setup-cakephp)
3. [Setup Drupal](docs/Examples.md#3-setup-drupal)
4. [Setup Phalcon](docs/Examples.md#4-setup-phalcon)
5. [Setup Symfony](docs/Examples.md#5-setup-symfony)
6. [Setup Wordpress](docs/Examples.md#6-setup-wordpress)
7. [Setup Yii](docs/Examples.md#7-setup-yii)
8. [Setup Zend](docs/Examples.md#8-setup-zend)
11. **[Technical](docs/Technical.md)**
1. [Networking](docs/Technical.md#1-networking)
2. [Ports and forwarding](docs/Technical.md#2-ports-and-forwarding)
3. [Works the same on Host and PHP Container](docs/Technical.md#3-works-the-same-on-host-and-php-container)
12. **[Hacking](docs/Hacking.md)**
1. [Rebuilding bundled Docker container](docs/Hacking.md#1-rebuilding-bundled-docker-container)
2. [Customizing the bundled Docker container](docs/Hacking.md#2-customizing-the-bundled-docker-container)
3. [Adding your own Docker container](docs/Hacking.md#3-adding-your-own-docker-container)
13. **[FAQ](docs/FAQ.md)**
| Documentaion | Description |
|---------------------------------------|-------------|
| [Overview](docs/README.md) | General overview |
| [Configuration](docs/Configuration.md) | How to configure the devilbox |
| [Usage](docs/Usage.md) | How to use the devilbox |
| [Updating](docs/Updating.md) | How to update |
| [Info](docs/Info.md) | Technical information |
| [PHP Projects](docs/PHP_Projects.md) | How to manage projects |
| [Emails](docs/Emails.md) | How email catching works |
| [Logs](docs/Logs.md) | How to view log files |
| [Intranet](docs/Intranet.md) | The built-in intranet |
| [FAQ](docs/FAQ.md) | Frequently asked questions |
## Run-time Matrix
Select your prefered version. (By editing the **`.env`** file)
The main idea of the devilbox is to selectively run and combine any version you require for your currently desired development stack. Services are grouped into different stacks, currently into **Base**, **SQL** and **NoSQL**. However there are many more to come. If you find yourself in need of a stack or service that is not yet inluded, just open up an issue or pull request.
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.
In order to make sure every combination works with each other, the devilbox integrates extensive CI tests for the Docker container itself and their combinations. The following tables show the available stacks including git repositories and travis-ci checks.
#### 1/3 Base stack (required)
<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>
#### Base stack (required)
| DNS | Webserver | PHP |
|-----|-----------|-----|
@ -174,9 +334,7 @@ No need to install and configure different versions locally. Simply choose your
| | | [![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-hhvm-latest.svg?branch=master)](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)
#### SQL stack (optional)
| MySQL | PostgreSQL | MS SQL |
|-------|------------|--------|
@ -190,9 +348,7 @@ No need to install and configure different versions locally. Simply choose your
| [![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) | | |
| [![Build Status](https://travis-ci.org/cytopia/docker-mariadb-10.3.svg?branch=master)](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)
#### NoSQL stack (optional)
| Cassandra | CouchDB | Memcached | MongoDB | Redis |
|-----------|---------|-----------|---------|-------|
@ -202,10 +358,8 @@ No need to install and configure different versions locally. Simply choose your
| | | | [![build Status](https://travis-ci.org/docker-library/mongo.svg?branch=master)](https://travis-ci.org/docker-library/mongo) [3.4](https://github.com/docker-library/mongo) | |
| | | | [![build Status](https://travis-ci.org/docker-library/mongo.svg?branch=master)](https://travis-ci.org/docker-library/mongo) [3.5](https://github.com/docker-library/mongo) | |
<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>
<!--
#### Message stack (optional)
**Optional search stack**
| Apache Solr | Elasticsearch |
@ -221,14 +375,6 @@ No need to install and configure different versions locally. Simply choose your
-->
<!--
## Documentation
* Configuration
* Xdebug
-->
## Intranet overview
The devilbox comes with a pre-configured intranet on `http://localhost`. It will not only show you, your chosen configuration, but also validate the status of your configuration, such as *Do 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.
@ -244,7 +390,7 @@ The devilbox comes with a pre-configured intranet on `http://localhost`. It will
## Screenshots
### Homepage with host / docker information
#### Homepage with host / docker information
The homepage shows you the status of your current configured setup.
@ -256,8 +402,7 @@ The homepage shows you the status of your current configured setup.
![Intranet Home](docs/img/01_intranet_home.png "Intranet Home")
### Virtual Host overview
#### Virtual Host overview
This overview shows you all available virtual hosts and if they need additional configuration (on the host)
@ -268,14 +413,13 @@ Virtual Hosts are considered valid if the following requirements are met (on the
![Intranet vHost](docs/img/02_intranet_vhosts.png "Intranet Home")
### Database overview
#### Database overview
Shows you all the databases that are loaded
![Intranet DB](docs/img/03_intranet_databases.png "Intranet Home")
### Email overview
#### 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.

View File

@ -37,14 +37,20 @@ Quickstart |
## 1. Installation
Installing the devilbox is as easy as this:
```shell
$ git clone https://github.com/cytopia/devilbox
$ cd devilbox/
$ cp env-example .env
```
To find out in more detail for different operating systems have a look at **[Install](Install.md)**.
## 2. Update
You will have the choice to stay on stable git tags or on the latest master branch. Both options have slightly different update procedures. View the quick instructions below and for more information have a look at **[Update](Update.md)**
#### 2.1 Tagged release
```shell
@ -67,22 +73,27 @@ $ ./update-docker.sh
## 3. Configuration
The devilbox will work out-of-the box after the above installation routine has been done. However there are lots of options to configure. Read up on it on **[Configure](Configure.md)**. A brief overview is shown below.
#### 3.1 .env
Edit all general settings inside the .env file (file paths, what version to run, debug, timezeon, etc)
Edit all general settings inside the .env file (file paths, what version to run, debug, timezeon, etc). The `.env` file is well documented and self-explanatory.
```shell
$ vim .env
```
#### 3.2 Services
Configure PHP 5.6
Additionally to configure the devilbox in general, you can also configure each service separately by adding/altering service specific configuration files.
**Example:** Configure PHP 5.6
```shell
$ cd cfg/
$ echo "max_execution_time = 180" > php-fpm-5.6/config.ini
```
Configure MySQL 5.5
**Example:** Configure MySQL 5.5
```shell
$ cd cfg/
$ echo "[mysqld]\nslow_query_log = 1" > mysql-5.5/config.cnf
@ -91,6 +102,8 @@ $ echo "[mysqld]\nslow_query_log = 1" > mysql-5.5/config.cnf
## 4. Run
Starting up the devilbox is done via docker-compose commands. You will have the choice to start-up everything or just a selection of the services you need. To get more more information about this view **[Run](Run.md)**.
#### 4.1 Run all
```shell
@ -106,6 +119,8 @@ $ docker-compose up -d httpd php mysql redis
## 5. Project setup
The heart of the devilbox is the easy configuration of an unlimitted numbder of projects. Most stuff configures itself automatically in the background, but a few things are still left up to you. The following will give you a kick-start for setting up a few projects. To find out in more detail view **[Usage](Usage.md)**.
#### 5.1 General setup
**Assumption:**
@ -142,7 +157,7 @@ lrwxrwxrwx 1 cytopia 11 Jun 14 08:29 htdocs -> cakephp/app/webroot/
#### 5.2 Specific Frameworks
Some frameworks use a deep nested directory to serve their actual www data such as:
One example of the above mentioned nested directory structure is CakePHP. Its actual www dats is serveed from:
```shell
<project>/cake/app/webroot
@ -161,7 +176,16 @@ drwxrwxr-x 2 cytopia 4096 Jun 14 08:29 cakephp
lrwxrwxrwx 1 cytopia 11 Jun 14 08:29 htdocs -> cakephp/app/webroot/
```
See [Examples](Examples.md) for more info about how to setup different frameworks.
To quickly find setup instructions for your framework of choice head over to **[Examples](Examples.md)**:
> 1. [Introduction](Examples.md#1-introduction)
> 2. [Setup CakePHP](Examples.md#2-setup-cakephp)
> 3. [Setup Drupal](Examples.md#3-setup-drupal)
> 4. [Setup Phalcon](Examples.md#4-setup-phalcon)
> 5. [Setup Symfony](Examples.md#5-setup-symfony)
> 6. [Setup Wordpress](Examples.md#6-setup-wordpress)
> 7. [Setup Yii](Examples.md#7-setup-yii)
> 8. [Setup Zend](Examples.md#8-setup-zend)
## 6. Enter the PHP Docker container
@ -173,4 +197,4 @@ host> ./bash.sh
devilbox@php-7.0.19 in /shared/httpd $
```
See [Usage](Usage.md) for a detailed explanation.
See **[Usage](Usage.md)** for a detailed explanation.