Compare commits

...

69 Commits

Author SHA1 Message Date
fdb6cffb3b Merge pull request #582 from cytopia/doc-updates
Bugfix updates
2019-05-21 16:46:56 +02:00
19e5d03fe0 Add yq to available tools 2019-05-21 09:45:06 +02:00
2294672403 Fix table valign 2019-05-21 09:24:57 +02:00
23a9b2b889 Prepare Bugfix release 2019-05-21 09:21:59 +02:00
15dcf8b350 Show OAuth modules in README 2019-05-21 09:09:05 +02:00
23ac8cde1a Bump version and update Changelog 2019-05-21 09:07:09 +02:00
c04750aa15 User latest PHP-FPM version 2019-05-20 23:53:53 +02:00
e6e5a1f8c6 Add Devilbox Flames to README 2019-05-18 15:49:41 +02:00
816aa75dab Merge pull request #578 from cytopia/update-php-container
Use latest php-fpm images
2019-05-16 00:28:41 +02:00
fb8499f645 Use latest php-fpm images 2019-05-12 15:47:09 +02:00
4be9018c2b Merge pull request #569 from cytopia/ci-tests
Re-enable Adminer tests for PHP 7.3
2019-04-28 18:48:28 +02:00
147fffb20d Re-enable Adminer tests for PHP 7.3 2019-04-28 18:48:02 +02:00
65b81ab2f8 Merge pull request #571 from cytopia/stale-bot
Protect WIP PR's from stale-bot
2019-04-28 13:59:49 +02:00
1eed5e2e4b Protect WIP PR's from stale-bot 2019-04-28 13:59:14 +02:00
204a8a0736 Merge pull request #570 from cytopia/stale-bot
Add stale bot to repository
2019-04-28 13:54:20 +02:00
94cb41fb1f Add stale bot to repository 2019-04-28 13:53:20 +02:00
6bc99d02b2 Merge pull request #568 from cytopia/update-php-container
Fix mods for PHP-FPM 8.0
2019-04-27 16:36:22 +02:00
e28f268098 567 Remove orphaned mentions of HOST_PATH_MYSQL_DATADIR 2019-04-27 12:59:09 +02:00
aef23ac4fd Fix link for iPhone app 2019-04-27 11:59:14 +02:00
1e8626bd87 Fix typo in documentation 2019-04-27 11:55:57 +02:00
e044f89ad0 Fix mods for PHP-FPM 8.0 2019-04-27 11:48:08 +02:00
7b853cdf79 Merge pull request #566 from cytopia/tools
Add tools: Angular CLI and Laravel Lumen
2019-04-22 12:27:05 +02:00
8fda181691 Refs #557 #559 Add tools: Angular CLI and Laravel Lumen 2019-04-20 12:40:41 +02:00
e91a7001b4 Merge pull request #565 from cytopia/docs-processwire
Documentation: Setup ProcessWire
2019-04-20 12:12:18 +02:00
e4068aac9f Documentation: Setup ProcessWire 2019-04-20 11:56:14 +02:00
5768c8505e Merge pull request #554 from cytopia/ci-tests
Fix CI tests for mail volume
2019-04-20 10:16:09 +02:00
fb8c378727 Fix CI tests for mail volume 2019-04-20 10:00:53 +02:00
6b7d6516e8 Merge pull request #563 from pniederlag/patch-1
follow TYPO3 CMS brand rules
2019-04-13 00:09:00 +02:00
3dc8d865fe follow TYPO3 CMS brand rules
TYPO3 brand is uppercased ;)
2019-04-12 15:57:46 +02:00
c0530520a1 Merge pull request #562 from cytopia/fix-docs
Fix docs
2019-04-12 09:07:13 +02:00
82206aed02 Update project information 2019-04-12 08:43:41 +02:00
6b663d2df5 Fixed typo in wordpress documentation 2019-04-12 08:43:14 +02:00
1a18c1891c Merge pull request #558 from pedrosanta/docs-version-tag-update
Update release tag on update docs
2019-04-09 08:34:36 +02:00
6d485dcc4f Update release tag on update docs 2019-04-05 16:55:58 +01:00
260c222209 Merge pull request #553 from groovenectar/patch-1
Typo + sentence change
2019-03-28 13:00:24 +01:00
6690610623 Typo + sentence change 2019-03-27 14:38:14 -04:00
ac040416cf Another note about git pull before changing branch (#552)
* Another note about git pull before changing branch

* Update checkout-different-devilbox-release.rst
2019-03-24 19:49:28 +01:00
b479bcaec9 Merge pull request #551 from pnoeric/patch-2
Added git pull
2019-03-24 19:48:12 +01:00
03afc32392 added info about git fetch 2019-03-24 18:08:41 +01:00
7a1dadf10c Added git pull 2019-03-24 13:04:45 +01:00
6da8f35cf7 Merge pull request #550 from cytopia/release/v1.0.1
Bugfix Release v1.0.1
2019-03-24 12:09:55 +01:00
d58b4f6035 Release preparation 2019-03-23 20:42:59 +01:00
f5e32c25a1 #373 Use fixed MySQL images which allow for custom configuration files 2019-03-23 20:40:29 +01:00
f45826edfd Deprecated wddx extension for PHP 7.4 and 8.0: https://wiki.php.net/rfc/deprecate-and-remove-ext-wddx 2019-03-23 20:37:28 +01:00
f94557062d Fixes #536 Add Vue cli 2019-03-23 20:36:41 +01:00
f2aa49b8cd Fixes #540 mysqldump-secure password substitution 2019-03-23 20:36:02 +01:00
acf3293692 #506 documentation: how to connect to MySQL and other services 2019-03-23 20:28:10 +01:00
5064effe89 #209 Fix Xdebug documentation for Docker for Windows 2019-03-23 20:03:53 +01:00
3cbbdb35b0 Merge pull request #416 from cytopia/release/v1.0.0
Devilbox Release v1.0.0
2019-03-19 08:55:19 +01:00
c2b8a53efc #500 docs troubleshooting mysql 2019-03-18 19:28:22 +01:00
2b521c9e71 Remove migration announcement 2019-03-18 19:15:46 +01:00
9e3da94edb Prepare Devilbox v1.0.0 release 2019-03-18 19:13:23 +01:00
1138c498c7 Update CHANGELOG 2019-03-18 19:10:22 +01:00
cfba16f887 Restore failed rebase 2019-03-18 19:10:18 +01:00
ef2f39f794 Clean up docker-compose.yml 2019-03-18 19:09:39 +01:00
f19a5d2ca2 Ensure mail uses a Docker volume 2019-03-18 19:09:38 +01:00
c582163951 Remove unecessary data dirs 2019-03-18 19:09:37 +01:00
c6542ad032 Update container versions 2019-03-18 19:09:36 +01:00
bb1b72d9af Ensure default values are used for mounted data directories as well 2019-03-18 19:09:35 +01:00
ba3dd31729 Refs #175, Refs #382 Use Docker volumes instead of data directories 2019-03-18 19:09:33 +01:00
0dc142e1e2 Merge pull request #546 from cytopia/docs-troubleshooting
Docs troubleshooting
2019-03-18 19:08:40 +01:00
8dbf591624 Update version date 2019-03-18 18:53:14 +01:00
ccdc3e07b8 Update changelog 2019-03-18 18:48:10 +01:00
3d8e08e398 #539 Troubleshoot 'no space left on device on MacOS' 2019-03-18 17:25:01 +01:00
ba58b846e2 #424 #473 #490 #500 #542 Document errors for starting MySQL 2019-03-18 15:16:06 +01:00
e4657f36e0 Merge pull request #538 from nickw108/master
Add blog post reference to documentation
2019-03-12 17:19:30 +01:00
558cd89e95 Add blog post reference to documentation 2019-03-12 12:38:59 +01:00
47f62d23b6 Merge pull request #537 from pnoeric/patch-1
Very small typo fix
2019-03-11 17:58:17 +01:00
c57dff5a44 Very small typo fix 2019-03-11 15:09:32 +01:00
75 changed files with 758 additions and 738 deletions

View File

@ -1,10 +0,0 @@
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
collation-server = utf8_unicode_ci
character-set-server = utf8

View File

@ -13,8 +13,8 @@ error_reporting(-1);
putenv('RES_OPTIONS=retrans:1 retry:1 timeout:1 attempts:1');
$DEVILBOX_VERSION = 'v0.15.0';
$DEVILBOX_DATE = '2019-03-09';
$DEVILBOX_VERSION = 'v1.0.2';
$DEVILBOX_DATE = '2019-05-21';
$DEVILBOX_API_PAGE = 'devilbox-api/status.json';
//

View File

@ -679,14 +679,14 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
<?php if ($avail_mysql): ?>
<tr>
<th>mysql</th>
<td><?php echo loadClass('Helper')->getEnv('HOST_PATH_MYSQL_DATADIR').'/'.loadClass('Helper')->getEnv('MYSQL_SERVER'); ?></td>
<td>Docker volume</td>
<td>/var/lib/mysql</td>
</tr>
<?php endif; ?>
<?php if ($avail_pgsql): ?>
<tr>
<th>pgsql</th>
<td><?php echo loadClass('Helper')->getEnv('HOST_PATH_PGSQL_DATADIR').'/'.loadClass('Helper')->getEnv('PGSQL_SERVER'); ?></td>
<td>Docker volume</td>
<td>/var/lib/postgresql/data/pgdata</td>
</tr>
<?php endif; ?>
@ -707,7 +707,7 @@ $HEALTH_PERCENT = 100 - ceil(100 * $HEALTH_FAILS / $HEALTH_TOTAL);
<?php if ($avail_mongo): ?>
<tr>
<th>mongo</th>
<td><?php echo loadClass('Helper')->getEnv('HOST_PATH_MONGO_DATADIR'); ?></td>
<td>Docker volume</td>
<td>/data/db</td>
</tr>
<?php endif; ?>

17
.github/stale.yml vendored Normal file
View File

@ -0,0 +1,17 @@
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 60
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "issue:protected"
- "WIP"
# Label to use when marking an issue as stale
staleLabel: "issue:stale"
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. Thank you
for your contributions.
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: false

7
.gitignore vendored
View File

@ -19,10 +19,6 @@
/log/[a-z0-9-]*
# Ignore Data dirs
/data/mongo/*
/data/mysql/*
/data/pgsql/*
/data/rabbit/*
/data/www/*
# Ignore Certificate Authority
@ -51,9 +47,12 @@
/cfg/mariadb-10.0/*.cnf
/cfg/mariadb-10.1/*.cnf
/cfg/mariadb-10.2/*.cnf
/cfg/mariadb-10.3/*.cnf
/cfg/mariadb-10.4/*.cnf
/cfg/percona-5.5/*.cnf
/cfg/percona-5.6/*.cnf
/cfg/percona-5.7/*.cnf
/cfg/percona-8.0/*.cnf
# Ignore custom PHP.ini configs
/cfg/php-ini-5.2/*.ini

View File

@ -415,7 +415,7 @@ _clean-round:
$(eval HTTPD_SERVER := $(shell grep -E '^HTTPD_SERVER' $(DEVILBOX_PATH)/.env | sed 's/.*=//g'))
$(eval PHP_SERVER := $(shell grep -E '^PHP_SERVER' $(DEVILBOX_PATH)/.env | sed 's/.*=//g'))
@> $(DEVILBOX_PATH)/mail/devilbox
@cd $(DEVILBOX_PATH) && docker-compose exec php truncate -s0 /var/mail/devilbox
@> $(DEVILBOX_PATH)/log/php-fpm-$(PHP_SERVER)/php-fpm.access
@> $(DEVILBOX_PATH)/log/php-fpm-$(PHP_SERVER)/php-fpm.error

View File

@ -5,7 +5,7 @@ set -u
set -o pipefail
DISABLED_VERSIONS_MONGO=("7.3")
DISABLED_VERSIONS_MONGO=("")
#
# NOTE: Parsing curl to tac to circumnvent "failed writing body"

View File

@ -142,9 +142,12 @@ env:
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.0
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.1
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.2
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.3
- S1=PHP V1=7.2 S2=MYSQL V2=mariadb-10.4
- S1=PHP V1=7.2 S2=MYSQL V2=percona-5.5
- S1=PHP V1=7.2 S2=MYSQL V2=percona-5.6
- S1=PHP V1=7.2 S2=MYSQL V2=percona-5.7
- S1=PHP V1=7.2 S2=MYSQL V2=percona-8.0
# PHP 7.2 vs PgSQL
- S1=PHP V1=7.2 S2=PGSQL V2=9.0
- S1=PHP V1=7.2 S2=PGSQL V2=9.1

View File

@ -3,22 +3,94 @@
Make sure to have a look at [UPDATING](https://github.com/cytopia/devilbox/blob/master/UPDATING.md) to see any required steps for updating
major versions.
## [unreleasd]
## Bugfix Release v1.0.2 (2019-05-21)
#### Fixed
- Fixed various typos in documentation
- Fix CI tests: They still expected a mounted mail directory instead of a Docker volume
- Fix mods for PHP 8.0
- Make npm binaries available in $PATH
- Remove orphaned mentions of HOST_PATH_MYSQL_DATADIR
- Allow symlinks in autostart scripts
#### Added
- Documentation: Setup ProcessWire
- Tool: Angular CLI
- Tool: Laravel Lumen
- Tool: [prestissimo](https://github.com/hirak/prestissimo)
- Tool: [yq](https://github.com/mikefarah/yq)
- Module: OAuth
#### Removed
- Enchant module for PHP 7.4 and PHP 8.0 (build breaks)
## Bugfix Release v1.0.1 (2019-03-24)
This is a bugfix release and everybody is encouraged to upgrade to this tag as soon as possible.
No explicit actions to be taken for updating.
#### Fixed
- [#373](https://github.com/cytopia/devilbox/issues/373) Read custom MySQL configuration
- [#540](https://github.com/cytopia/devilbox/issues/540) Fix '&' password substitution in mysqldump-secure
- [#209](https://github.com/cytopia/devilbox/issues/209) Documentation for Xdebug on Docker for Windows
#### Changed
- Split Bind container into internal DNS and autoDNS: #248
- This fixes various issues with Docker Toolbox and DNS resolution: #119
- Updated MongoDB cli tools in PHP image
- Updated PostgreSQL cli tools in PHP image
- MySQL images are now bound to a specific Docker tag and are built nightly
- [#506](https://github.com/cytopia/devilbox/issues/506) Documentation improvements for connecting to databases
#### Added
- [#536](https://github.com/cytopia/devilbox/issues/536) Added @vue/cli and @vue/cli-service-global
## v1.0.0-alpha1 [unreleased]
## Release v1.0.0 (2019-03-19)
This is the first major stable release of the Devilbox.
#### Changed
- Everything from v1.0.0-alpha1 has been backported
- Everything from v0.15.0 has been backported
## Pre-Release v1.0.0-alpha1 (2019-03-09)
#### Changed
- Use Docker volumes instead of directory mounts for stateful data (MySQL, PgSQL and MongoDB)
- This fixes various mount issues on Windows: #175 #382
- This improves general performance
- Use Official MySQL, MariaDB and Percona Docker container
## v0.15.0
## Release v0.15.0 (2019-03-09)
This will be the last v0.x release.
#### Fixed
- break on errors in wrong vhost-gen overwrite
- XSS vulnerability in email display
- Various fixes in Documentation
- vhost-gen fixes
#### Changed
- Use semantic versioning
- This allows for faster releases
- This allows for better visibility of breaking changes (note that breaking changes might still occur before release v1.0.0)
- Autologin for phpMyAdmin
- Autologin for phpPgAdmin
- Intranet to show vhost and vhost-gen overwrite config per vhost
- Allow to specify Redis startup arguments (e.g.: password)
- Fixed hostnames for all Docker container
- PHP-FPM workers changed from `dynamic` to `ondemand`
- Allow Apache to server underscore domains
- Changed Nginx `client_max_body_size` to `0` to be in sync with Apache
- Document failing start behaviour of MySQL container
#### Added
- [CHANGELOG](https://github.com/cytopia/devilbox/blob/master/CHANGELOG.md) by the standard of: https://keepachangelog.com
@ -37,6 +109,7 @@ major versions.
- PHP 5.2
- PHP 5.3
- PHP 7.4
- PHP 8.0
- Alpine images where possible
- Docker Compose overwrite images:
- Blackfire
@ -81,22 +154,3 @@ major versions.
- Typo3
- GitHub Issue templates
- Discourse forum link: https://devilbox.discourse.group
#### Changed
- Use semantic versioning
- This allows for faster releases
- This allows for better visibility of breaking changes (note that breaking changes might still occur before release v1.0.0)
- Autologin for phpMyAdmin
- Autologin for phpPgAdmin
- Intranet to show vhost and vhost-gen overwrite config per vhost
- Allow to specify Redis startup arguments (e.g.: password)
- Fixed hostnames for all Docker container
- PHP-FPM workers changed from `dynamic` to `ondemand`
- Allow Apache to server underscore domains
- Changed Nginx `client_max_body_size` to `0` to be in sync with Apache
#### Fixed
- break on errors in wrong vhost-gen overwrite
- XSS vulnerability in email display
- Various fixes in Documentation
- vhost-gen fixes

128
README.md
View File

@ -48,31 +48,34 @@ Furthermore, the Devilbox provides an **identical** and **reproducible developme
* [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)
**Important**
Before updating the Devilbox ensure to always check for breaking changes until the stable release is out:
1. [Forum: Announcements](https://devilbox.discourse.group/c/announcements)
2. [Changelog](CHANGELOG.md)
3. [Updating](UPDATING.md)
## Architecture
#### Available Stacks
The Devilbox aims to be a swiss army knife for local development by providing you all the services
you would ever need. To get an idea about the architecture behind it and to also see what's available
have a look at the following diagrams and tables.
#### Smallest Stack
This is the smallest possible and fully functional stack you can run:
<img width="300" style="width:300px" title="Devilbox stack" src="https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/02/png/architecture-small.png" />
> [Devilbox artwork](https://github.com/devilbox/artwork)
#### Full Stack
To better understand what is actually possible have a look at the full example:
<img title="Devilbox stack" src="https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/01/png/architecture-full.png" />
<table width="100%" style="width:100%;display:table">
<tr>
<td width="30%" valign="top" style="width:30%; vertical-align:top;">
<h4>Smallest stack</h4>
<p>This is the smallest possible and fully functional stack you can run</p>
</td>
<td width="70%" valign="top" style="width:70%; vertical-align:top;">
<h4>Full stack</h4>
<p>To better understand what is actually possible have a look at the full example</p>
</td>
</tr>
<tr>
<td>
<img width="300" style="width:300px" title="Devilbox stack" src="https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/02/png/architecture-small.png" />
</td>
<td>
<img title="Devilbox stack" src="https://raw.githubusercontent.com/devilbox/artwork/master/submissions_diagrams/cytopia/01/png/architecture-full.png" />
</td>
</tr>
</table>
> [Devilbox artwork](https://github.com/devilbox/artwork)
@ -106,9 +109,10 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
<table width="100%" style="width:100%; display:table;">
<thead>
<tr>
<th width="33%" style="width:33%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">Documentation</a></h3></th>
<th width="33%" style="width:33%;"><h3><a target="_blank" href="https://gitter.im/devilbox/Lobby">Chat</a></h3></th>
<th width="33%" style="width:33%;"><h3><a target="_blank" href="https://devilbox.discourse.group">Forum</a></h3></th>
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.readthedocs.io">Documentation</a></h3></th>
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://gitter.im/devilbox/Lobby">Chat</a></h3></th>
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://devilbox.discourse.group">Forum</a></h3></th>
<th width="25%" style="width:25%;"><h3><a target="_blank" href="https://github.com/devilbox/flames">Flames</a></h3></th>
</tr>
</thead>
<tbody style="vertical-align: middle; text-align: center;">
@ -128,11 +132,17 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
<img title="Devilbox Forums" name="Forum" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/discourse.png" />
</a>
</td>
<td>
<a target="_blank" href="https://github.com/devilbox/flames">
<img title="Devilbox Flames" name="Flames" src="https://raw.githubusercontent.com/cytopia/icons/master/400x400/flames2.png" />
</a>
</td>
</tr>
<tr>
<td><a target="_blank" href="https://devilbox.readthedocs.io">devilbox.readthedocs.io</a></td>
<td><a target="_blank" href="https://gitter.im/devilbox/Lobby">gitter.im/devilbox</a></td>
<td><a target="_blank" href="https://devilbox.discourse.group">devilbox.discourse.group</a></td>
<td><a target="_blank" href="https://github.com/devilbox/flames">github.com/devilbox/flames</a></td>
</tr>
</tbody>
</table>
@ -151,15 +161,15 @@ simplify your every-day life. If you ever run into any unforseen issues, feel fr
<tbody style="vertical-align: bottom;">
<tr>
<td>
<pre># Get the Devilbox
$ git clone https://github.com/cytopia/devilbox</pre>
<pre># Create docker-compose environment file
$ cd devilbox
$ cp env-example .env</pre>
<pre># Edit your configuration
$ vim .env</pre>
<pre># Start all container
$ docker-compose up</pre>
<div class="highlight highlight-source-shell"><pre># Get the Devilbox
git clone https://github.com/cytopia/devilbox</pre></div>
<div class="highlight highlight-source-shell"><pre># Create docker-compose environment file
cd devilbox
cp env-example .env</pre></div>
<div class="highlight highlight-source-shell"><pre># Edit your configuration
vim .env</pre></div>
<div class="highlight highlight-source-shell"><pre># Start all container
docker-compose up</pre></div>
</td>
<td>
1. Clone <code>https://github.com/cytopia/devilbox</code> to <code>C:\devilbox</code> with <a href="https://git-scm.com/downloads">Git for Windows</a><br/><br/>
@ -183,7 +193,7 @@ C:\devilbox> docker-compose up</pre></div>
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.
```bash
$ docker-compose up httpd php mysql redis
docker-compose up httpd php mysql redis
```
> **Documentation:**
> [Start only some container](https://devilbox.readthedocs.io/en/latest/getting-started/start-the-devilbox.html#start-some-container)
@ -214,9 +224,9 @@ Every single attachable container comes with many different versions. In order t
<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>
<td><a target="_blank" title="PHP 5.2" href="https://github.com/devilbox/docker-php-fpm">5.2</a><sup>[1]</sup></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="PerconaDB 5.5" href="https://github.com/cytopia/docker-percona-5.5">5.5</a></td>
<td><a target="_blank" title="MySQL 5.5" href="https://github.com/devilbox/docker-mysql">5.5</a></td>
<td><a target="_blank" title="MariaDB 5.5" href="https://github.com/devilbox/docker-mysql">5.5</a></td>
<td><a target="_blank" title="PerconaDB 5.5" href="https://github.com/devilbox/docker-mysql">5.5</a></td>
<td><a target="_blank" title="PgSQL 9.0" href="https://github.com/docker-library/postgres">9.0</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" href="https://github.com/docker-library/memcached">1.4</a></td>
@ -226,9 +236,9 @@ Every single attachable container comes with many different versions. In order t
<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>
<td><a target="_blank" title="PHP 5.3" href="https://github.com/devilbox/docker-php-fpm">5.3</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="PerconaDB 5.6" href="https://github.com/cytopia/docker-percona-5.6">5.6</a></td>
<td><a target="_blank" title="MySQL 5.6" href="https://github.com/devilbox/docker-mysql">5.6</a></td>
<td><a target="_blank" title="MariaDB 10.0" href="https://github.com/devilbox/docker-mysql">10.0</a></td>
<td><a target="_blank" title="PerconaDB 5.6" href="https://github.com/devilbox/docker-mysql">5.6</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 3.0" href="https://github.com/docker-library/redis">3.0</a></td>
<td><a target="_blank" title="Memcached 1.5" href="https://github.com/docker-library/memcached">1.5</a></td>
@ -238,9 +248,9 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td><a target="_blank" title="PHP 5.4" href="https://github.com/devilbox/docker-php-fpm">5.4</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="PerconaDB 5.7" href="https://github.com/cytopia/docker-percona-5.7">5.7</a></td>
<td><a target="_blank" title="MySQL 5.7" href="https://github.com/devilbox/docker-mysql">5.7</a></td>
<td><a target="_blank" title="MariaDB 10.1" href="https://github.com/devilbox/docker-mysql">10.1</a></td>
<td><a target="_blank" title="PerconaDB 5.7" href="https://github.com/devilbox/docker-mysql">5.7</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.2" href="https://github.com/docker-library/redis">3.2</a></td>
<td><a target="_blank" title="Memcached latest" href="https://github.com/docker-library/memcached">latest</a></td>
@ -250,9 +260,9 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td></td>
<td><a target="_blank" title="PHP 5.5" href="https://github.com/devilbox/docker-php-fpm">5.5</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></td>
<td><a target="_blank" title="MySQL 8.0" href="https://github.com/devilbox/docker-mysql">8.0</a></td>
<td><a target="_blank" title="MariaDB 10.2" href="https://github.com/devilbox/docker-mysql">10.2</a></td>
<td><a target="_blank" title="PerconaDB 8.0" href="https://github.com/devilbox/docker-mysql">8.0</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 4.0" href="https://github.com/docker-library/redis">4.0</a></td>
<td></td>
@ -263,7 +273,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td><a target="_blank" title="PHP 5.6" href="https://github.com/devilbox/docker-php-fpm">5.6</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="MariaDB 10.3" href="https://github.com/devilbox/docker-mysql">10.3</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 9.4" href="https://github.com/docker-library/postgres">9.4</a></td>
<td><a target="_blank" title="Redis 5.0" href="https://github.com/docker-library/redis">5.0</a></td>
@ -275,7 +285,7 @@ Every single attachable container comes with many different versions. In order t
<td></td>
<td><a target="_blank" title="PHP 7.0" href="https://github.com/devilbox/docker-php-fpm">7.0</a></td>
<td></td>
<td></td>
<td><a target="_blank" title="MariaDB 10.4" href="https://github.com/devilbox/docker-mysql">10.4</a></td>
<td></td>
<td><a target="_blank" title="PgSQL 9.5" href="https://github.com/docker-library/postgres">9.5</a></td>
<td><a target="_blank" title="Redis latest" href="https://github.com/docker-library/redis">latest</a></td>
@ -345,10 +355,9 @@ Every single attachable container comes with many different versions. In order t
</tbody>
</table>
<strong><sup>[1]</sup></strong> <strong>PHP 5.2</strong> 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.
<small><strong><sup>[1]</sup></strong> <strong>PHP 5.2</strong> 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.</small>
<strong><sup>[2]</sup></strong> <strong>PHP 7.4</strong> and <strong>PHP 8.0</strong> are upcoming unreleased versions of PHP, which are directly built out of their [official git branches](https://github.com/php/php-src/) every night to assure you will leverage their latest features.
<small><strong><sup>[2]</sup></strong> <strong>PHP 7.4</strong> and <strong>PHP 8.0</strong> are upcoming unreleased versions of PHP, which are directly built out of their [official git branches](https://github.com/php/php-src/) every night to assure you will leverage their latest features.</small>
> **Documentation:**
> [Change container versions](https://devilbox.readthedocs.io/en/latest/getting-started/change-container-versions.html)
@ -433,12 +442,12 @@ Navigate the the Devilbox directory and type the below listed command:
<tbody style="vertical-align: bottom;">
<tr>
<td>
<pre>host> ./shell.sh
devilbox@php-7.0.19 in /shared/httpd $</pre>
<div class="highlight highlight-source-shell"><pre>host> ./shell.sh
devilbox@php-7.0.19 in /shared/httpd $</pre></div>
</td>
<td>
<pre>C:\devilbox> shell.bat
devilbox@php-7.0.19 in /shared/httpd $</pre>
<div class="highlight highlight-source-shell"><pre>C:\devilbox> shell.bat
devilbox@php-7.0.19 in /shared/httpd $</pre></div>
</td>
</tr>
</tbody>
@ -526,6 +535,10 @@ The Devilbox has everything setup for you. The only thing you will have to insta
<td>:star: Xdebug</td>
<td>Xdebug and a full blown PHP-FPM server is ready to serve.</td>
</tr>
<tr>
<td>:star: Devilbox Flames</td>
<td>Devilbox community plugins a.k.a. Devilbox Flames.</td>
</tr>
<tr>
<td>:star: Many more</td>
<td>See Documentation for all available features.</td>
@ -700,7 +713,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| date | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| dba | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| dom | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| enchant | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| enchant | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| ereg | | ✔ | ✔ | ✔ | ✔ | | | | | | |
| exif | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| FFI | | | | | | | | | | 🗸 | 🗸 |
@ -715,7 +728,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| igbinary | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | |
| imagick | | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| imap | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| interbase | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| interbase | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| intl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| ioncube | d | d | d | d | d | d | d | d | | | |
| json | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
@ -732,6 +745,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| mysql | ✔ | ✔ | 🗸 | 🗸 | 🗸 | | | | | | |
| mysqli | ✔ | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| mysqlnd | | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| OAuth | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| oci8 | | d | d | d | d | d | d | d | d | d | d |
| openssl | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| pcntl | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
@ -773,7 +787,7 @@ The Devilbox is a development stack, so it is made sure that a lot of PHP module
| tidy | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| tokenizer | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| uploadprogress | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| wddx | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 |
| wddx | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| xdebug | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | 🗸 | | |
| xml | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
| xmlreader | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ | ✔ |
@ -813,6 +827,7 @@ As far as tested there are no limitations and you can use any Framework or CMS j
<a target="_blank" title="PhalconPHP" href="https://phalconphp.com"><img width="64" style="width:64px" src="docs/img/logo_fw/phalcon.png" alt="Devilbox"/></a>
<a target="_blank" title="PhotonCMS" href="https://photoncms.com"><img width="64" style="width:64px" src="docs/img/logo_fw/photoncms.png" alt="Devilbox"/></a>
<a target="_blank" title="PrestaShop" href="https://www.prestashop.com/en"><img width="64" style="width:64px" src="docs/img/logo_fw/prestashop.png" alt="Devilbox"/></a>
<a target="_blank" title="ProcessWire" href="https://processwire.com/"><img width="64" style="width:64px" src="docs/img/logo_fw/processwire.png" alt="Devilbox"/></a>
<a target="_blank" title="Shopware" href="https://en.shopware.com"><img width="64" style="width:64px" src="docs/img/logo_fw/shopware.png" alt="Devilbox"/></a>
<a target="_blank" title="Symfony" href="https://symfony.com"><img width="64" style="width:64px" src="docs/img/logo_fw/symfony.png" alt="Devilbox"/></a>
<a target="_blank" title="Typo3" href="https://typo3.org"><img width="64" style="width:64px" src="docs/img/logo_fw/typo3.png" alt="Devilbox"/></a>
@ -832,6 +847,7 @@ As far as tested there are no limitations and you can use any Framework or CMS j
> [Setup PhalconPHP](https://devilbox.readthedocs.io/en/latest/examples/setup-phalcon.html) |
> [Setup PhotonCMS](https://devilbox.readthedocs.io/en/latest/examples/setup-photon-cms.html) |
> [Setup PrestaShop](https://devilbox.readthedocs.io/en/latest/examples/setup-presta-shop.html) |
> [Setup ProcessWire](https://devilbox.readthedocs.io/en/latest/examples/setup-processwire.html) |
> [Setup Shopware](https://devilbox.readthedocs.io/en/latest/examples/setup-shopware.html) |
> [Setup Symfony](https://devilbox.readthedocs.io/en/latest/examples/setup-symfony.html) |
> [Setup Typo3](https://devilbox.readthedocs.io/en/latest/examples/setup-typo3.html) |

View File

@ -0,0 +1,5 @@
[mysqld]
;key_buffer_size=16M
[mysqldump]
;quick

View File

@ -0,0 +1,5 @@
[mysqld]
;key_buffer_size=16M
[mysqldump]
;quick

View File

View File

View File

View File

View File

@ -95,7 +95,7 @@ services:
# PHP
# ------------------------------------------------------------
php:
image: devilbox/php-fpm:${PHP_SERVER}-work-0.80
image: devilbox/php-fpm:${PHP_SERVER}-work-0.88
hostname: php
##
@ -309,35 +309,12 @@ services:
# MySQL Database
# ------------------------------------------------------------
mysql:
image: cytopia/${MYSQL_SERVER}:latest
image: devilbox/mysql:${MYSQL_SERVER}-0.3
hostname: mysql
environment:
##
## Debug?
##
- DEBUG_COMPOSE_ENTRYPOINT
##
## Adjust timezone
##
- TIMEZONE
##
## Adjust Root password
##
- MYSQL_ROOT_PASSWORD
##
## Socket directory Path
##
- MYSQL_SOCKET_DIR=/tmp/mysql
##
## Runtime settings
##
- MYSQL_GENERAL_LOG=${MYSQL_GENERAL_LOG}
- MYSQL_ALLOW_EMPTY_PASSWORD=yes
ports:
# [local-machine:]local-port:docker-port
@ -351,18 +328,12 @@ services:
# ---- Format: ----
# HOST-DIRECTORY : DOCKER-DIRECTORY
# Mount logs
- ${DEVILBOX_PATH}/log/${MYSQL_SERVER}:/var/log/mysql:rw${MOUNT_OPTIONS}
# Mount devilbox default overwrites
- ${DEVILBOX_PATH}/.devilbox/etc/${MYSQL_SERVER}:/etc/mysql/conf.d:ro${MOUNT_OPTIONS}
# Mount devilbox user-defined cnf files in order
# to overwrite the MySQL server configuration
- ${DEVILBOX_PATH}/cfg/${MYSQL_SERVER}:/etc/mysql/docker-default.d:ro${MOUNT_OPTIONS}
# Mount MySQL Data directory
- ${HOST_PATH_MYSQL_DATADIR}/${MYSQL_SERVER}:/var/lib/mysql:rw${MOUNT_OPTIONS}
- devilbox-${MYSQL_SERVER}:/var/lib/mysql:rw${MOUNT_OPTIONS}
depends_on:
- bind
@ -399,7 +370,7 @@ services:
- ${DEVILBOX_PATH}/log/pgsql-${PGSQL_SERVER}:/var/log/postgresql:rw${MOUNT_OPTIONS}
# Mount PostgreSQL Data directory
- ${HOST_PATH_PGSQL_DATADIR}/${PGSQL_SERVER}:/var/lib/postgresql/data/pgdata:rw${MOUNT_OPTIONS}
- devilbox-pgsql-${PGSQL_SERVER}:/var/lib/postgresql/data/pgdata:rw${MOUNT_OPTIONS}
depends_on:
- bind
@ -427,13 +398,6 @@ services:
app_net:
ipv4_address: 172.16.238.14
volumes:
# ---- Format: ----
# HOST-DIRECTORY : DOCKER-DIRECTORY
# Mount logs
- ${DEVILBOX_PATH}/log/redis-${REDIS_SERVER}:/var/log/redis:rw${MOUNT_OPTIONS}
depends_on:
- bind
- php
@ -488,7 +452,7 @@ services:
# HOST-DIRECTORY : DOCKER-DIRECTORY
# Mount MongoDB Data directory
- ${HOST_PATH_MONGO_DATADIR}/${MONGO_SERVER}:/data/db:rw${MOUNT_OPTIONS}
- devilbox-mongo-${MONGO_SERVER}:/data/db:rw${MOUNT_OPTIONS}
depends_on:
- bind
@ -510,6 +474,7 @@ networks:
- subnet: 172.16.238.0/24
gateway: 172.16.238.1
################################################################################
# VOLUMES
################################################################################
@ -518,3 +483,68 @@ volumes:
# Misc
# ------------------------------------------------------------
devilbox-mail:
# ------------------------------------------------------------
# MySQL
# ------------------------------------------------------------
devilbox-mysql-5.5:
devilbox-mysql-5.6:
devilbox-mysql-5.7:
devilbox-mysql-8.0:
devilbox-mariadb-5.5:
devilbox-mariadb-10.0:
devilbox-mariadb-10.1:
devilbox-mariadb-10.2:
devilbox-mariadb-10.3:
devilbox-mariadb-10.4:
devilbox-percona-5.5:
devilbox-percona-5.6:
devilbox-percona-5.7:
devilbox-percona-8.0:
# ------------------------------------------------------------
# Postgres
# ------------------------------------------------------------
devilbox-pgsql-9.0:
devilbox-pgsql-9.1:
devilbox-pgsql-9.2:
devilbox-pgsql-9.2-alpine:
devilbox-pgsql-9.3:
devilbox-pgsql-9.3-alpine:
devilbox-pgsql-9.4:
devilbox-pgsql-9.4-alpine:
devilbox-pgsql-9.5:
devilbox-pgsql-9.5-alpine:
devilbox-pgsql-9.6:
devilbox-pgsql-9.6-alpine:
devilbox-pgsql-10.0:
devilbox-pgsql-10.0-alpine:
devilbox-pgsql-10.1:
devilbox-pgsql-10.1-alpine:
devilbox-pgsql-10.2:
devilbox-pgsql-10.2-alpine:
devilbox-pgsql-10.3:
devilbox-pgsql-10.3-alpine:
devilbox-pgsql-10.4:
devilbox-pgsql-10.4-alpine:
devilbox-pgsql-10.5:
devilbox-pgsql-10.5-alpine:
devilbox-pgsql-10.6:
devilbox-pgsql-10.6-alpine:
devilbox-pgsql-11.0:
devilbox-pgsql-11.0-alpine:
devilbox-pgsql-11.1:
devilbox-pgsql-11.1-alpine:
devilbox-pgsql-latest:
devilbox-pgsql-alpine:
# ------------------------------------------------------------
# MongoDB
# ------------------------------------------------------------
devilbox-mongo-2.8:
devilbox-mongo-3.0:
devilbox-mongo-3.2:
devilbox-mongo-3.4:
devilbox-mongo-3.6:
devilbox-mongo-4.0:
devilbox-mongo-latest:

Binary file not shown.

After

Width:  |  Height:  |  Size: 95 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/01-install-banner.png
:width: 600px
ProcessWire installation: Overview

Binary file not shown.

After

Width:  |  Height:  |  Size: 87 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/02-profile-choice.png
:width: 600px
ProcessWire installation: Profile Choice

Binary file not shown.

After

Width:  |  Height:  |  Size: 257 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/03-default-profile.png
:width: 600px
ProcessWire installation: Choose Default Profile

Binary file not shown.

After

Width:  |  Height:  |  Size: 117 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/04-compat-check.png
:width: 600px
ProcessWire installation: Compatibility Check

Binary file not shown.

After

Width:  |  Height:  |  Size: 221 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/05-general-setup.png
:width: 600px
ProcessWire installation: General Setup

Binary file not shown.

After

Width:  |  Height:  |  Size: 209 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/06-admin-setup.png
:width: 600px
ProcessWire installation: Admin Setup

Binary file not shown.

After

Width:  |  Height:  |  Size: 174 KiB

View File

@ -0,0 +1,4 @@
.. figure:: /_includes/figures/examples/processwire/07-finished.png
:width: 600px
ProcessWire installation: Setup completed

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 34 KiB

View File

@ -6,7 +6,7 @@
.. |ext_lnk_app_iphone_dns_override| raw:: html
<a target="_blank" href="https://itunes.apple.com/us/app/dns-override/id1060830093">
<a target="_blank" href="https://www.dnsoverride.com">
DNS Override <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>

View File

@ -1,3 +1,9 @@
.. |ext_lnk_blog_openstream| raw:: html
<a target="_blank" href="https://www.openstream.ch/developer-blog/devilbox/">
Docker LAMP Stack for WordPress and Magento <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_blog_deliciousbrains| raw:: html
<a target="_blank" href="https://deliciousbrains.com/devilbox-local-wordpress-development-docker/">

View File

@ -64,6 +64,12 @@
Official PrestaShop Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_example_processwire_documentation| raw:: html
<a target="_blank" href="https://processwire.com/docs/start/install/new/">
Official ProcessWire Documentation <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_example_shopware_documentation| raw:: html
<a target="_blank" href="https://docs.shopware.com/en/shopware-5-en/first-steps/installing-shopware?category=shopware-5-en/getting-started">

View File

@ -3,6 +3,12 @@
Command line tools
============================================================
.. |ext_lnk_tool_angular_cli| raw:: html
<a target="_blank" href="https://cli.angular.io/">
Angular CLI <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_ansible| raw:: html
<a target="_blank" href="https://www.ansible.com/">
@ -99,6 +105,12 @@
linkcheck <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_lumen| raw:: html
<a target="_blank" href="https://lumen.laravel.com/docs/5.8#installing-lumen">
Laravel Lumen <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_mdl| raw:: html
<a target="_blank" href="https://github.com/markdownlint/markdownlint">
@ -231,6 +243,12 @@
Text-mode Interface for Git <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_vue| raw:: html
<a target="_blank" href="https://cli.vuejs.org">
Standard Tooling for Vue.js Development <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_webpack| raw:: html
<a target="_blank" href="https://webpack.js.org">
@ -255,6 +273,12 @@
Yarn <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_yq| raw:: html
<a target="_blank" href="https://github.com/mikefarah/yq">
yq <img src="https://raw.githubusercontent.com/cytopia/icons/master/11x11/ext-link.png" />
</a>
.. |ext_lnk_tool_github_issues| raw:: html
<a target="_blank" href="https://github.com/cytopia/devilbox/issues">

View File

@ -1,7 +0,0 @@
.. raw:: html
<div style="background-color:#dddcb7; border: 3px solid #DA111A; padding:10px 20px; margin-bottom:20px;">
<h1 style="margin-bottom:15px;">Important Announcement</h1>
<p style="margin:5px;">Everybody is strongly encouraged to switch to the upcoming v1.0.0 release version to prevent unforseen issues upon merge to master.</p>
<p style="margin:5px;"><strong>Instructions here:</strong> <a target="_blank" href="https://github.com/cytopia/devilbox/pull/416">https://github.com/cytopia/devilbox/pull/416</a>.</p>
</div>

View File

@ -0,0 +1,19 @@
+---------------------------+-------+----------+----------------+
| Container | Name | Hostname | IP Address |
+===========================+=======+==========+================+
| DNS | bind | bind | 172.16.238.100 |
+---------------------------+-------+----------+----------------+
| PHP | php | php | 172.16.238.10 |
+---------------------------+-------+----------+----------------+
| Apache, Nginx | httpd | httpd | 172.16.238.11 |
+---------------------------+-------+----------+----------------+
| MySQL, MariaDB, PerconaDB | mysql | mysql | 172.16.238.12 |
+---------------------------+-------+----------+----------------+
| PostgreSQL | pgsql | pgsql | 172.16.238.13 |
+---------------------------+-------+----------+----------------+
| Redis | redis | redis | 172.16.238.14 |
+---------------------------+-------+----------+----------------+
| Memcached | memcd | memcd | 172.16.238.15 |
+---------------------------+-------+----------+----------------+
| MongoDB | mongo | mongo | 172.16.238.16 |
+---------------------------+-------+----------+----------------+

View File

@ -397,7 +397,7 @@ This is especially useful to keep PHP and database timezones in sync.
+-----------------------+----------------+-------------------+
| Name | Allowed values | Default value |
+=======================+================+===================+
| ``TIMEZONE`` | valid timezone | ``Europe/Berlin`` |
| ``TIMEZONE`` | valid timezone | ``UTC`` |
+-----------------------+----------------+-------------------+
Have a look at Wikipedia to get a list of valid timezones: |ext_lnk_doc_wiki_database_timezones|
@ -628,7 +628,7 @@ This variable choses your desired MySQL server version to be started.
+-------------------------+------------------------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+================================================================================================+==================+
| ``MYSQL_SERVER`` | ``mysql-5.5`` |br| ``mysql-5.6`` |br| ``mariadb-10.2`` |br| ``percona-5.7`` |br| and many more | ``mariadb-10.1`` |
| ``MYSQL_SERVER`` | ``mysql-5.5`` |br| ``mysql-5.6`` |br| ``mariadb-10.2`` |br| ``percona-5.7`` |br| and many more | ``mariadb-10.3`` |
+-------------------------+------------------------------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -645,12 +645,14 @@ All values are already available in the ``.env`` file and just need to be commen
#MYSQL_SERVER=mysql-8.0
#MYSQL_SERVER=mariadb-5.5
#MYSQL_SERVER=mariadb-10.0
MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
#MYSQL_SERVER=mariadb-10.3
MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=mariadb-10.4
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
.. _env_pgsql_server:
@ -663,7 +665,7 @@ This variable choses your desired PostgreSQL server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``PGSQL_SERVER`` | ``9.1`` |br| ``9.2`` |br| ``9.3`` |br| ``9.4`` |br| and many more | ``9.6`` |
| ``PGSQL_SERVER`` | ``9.1`` |br| ``9.2`` |br| ``9.3`` |br| ``9.4`` |br| and many more | ``11.1`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -674,13 +676,38 @@ All values are already available in the ``.env`` file and just need to be commen
host> grep PGSQL_SERVER .env
#PGSQL_SERVER=9.0
#PGSQL_SERVER=9.1
#PGSQL_SERVER=9.2
#PGSQL_SERVER=9.2-alpine
#PGSQL_SERVER=9.3
#PGSQL_SERVER=9.3-alpine
#PGSQL_SERVER=9.4
#PGSQL_SERVER=9.4-alpine
#PGSQL_SERVER=9.5
PGSQL_SERVER=9.6
#PGSQL_SERVER=9.5-alpine
#PGSQL_SERVER=9.6
#PGSQL_SERVER=9.6-alpine
#PGSQL_SERVER=10.0
#PGSQL_SERVER=10.0-alpine
#PGSQL_SERVER=10.1
#PGSQL_SERVER=10.1-alpine
#PGSQL_SERVER=10.2
#PGSQL_SERVER=10.2-alpine
#PGSQL_SERVER=10.3
#PGSQL_SERVER=10.3-alpine
#PGSQL_SERVER=10.4
#PGSQL_SERVER=10.4-alpine
#PGSQL_SERVER=10.5
#PGSQL_SERVER=10.5-alpine
#PGSQL_SERVER=10.6
#PGSQL_SERVER=10.6-alpine
#PGSQL_SERVER=11.0
#PGSQL_SERVER=11.0-alpine
PGSQL_SERVER=11.1
#PGSQL_SERVER=11.1-alpine
#PGSQL_SERVER=latest
#PGSQL_SERVER=alpine
.. note::
This is the official PostgreSQL server which might already have other tags available,
@ -698,7 +725,7 @@ This variable choses your desired Redis server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``REDIS_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``4.0`` |br| and many more | ``4.0`` |
| ``REDIS_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``4.0`` |br| and many more | ``5.0`` |
+-------------------------+-------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -711,8 +738,15 @@ All values are already available in the ``.env`` file and just need to be commen
#REDIS_SERVER=2.8
#REDIS_SERVER=3.0
#REDIS_SERVER=3.0-alpine
#REDIS_SERVER=3.2
REDIS_SERVER=4.0
#REDIS_SERVER=3.2-alpine
#REDIS_SERVER=4.0
#REDIS_SERVER=4.0-alpine
REDIS_SERVER=5.0
#REDIS_SERVER=5.0-alpine
#REDIS_SERVER=latest
#REDIS_SERVER=alpine
.. note::
This is the official Redis server which might already have other tags available,
@ -727,43 +761,26 @@ MEMCD_SERVER
This variable choses your desired Memcached server version to be started.
+-------------------------+-------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===============================================================================+==================+
| ``MEMCD_SERVER`` | ``1.4.21`` |br| ``1.4.22`` |br| ``1.4.23`` |br| ``1.4.24`` |br| and many more | ``1.5.2`` |
+-------------------------+-------------------------------------------------------------------------------+------------------+
+-------------------------+---------------------------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+=============================================================================================+==================+
| ``MEMCD_SERVER`` | ``1.4`` |br| ``1.4-alpine`` |br| ``1.5`` |br| ``1.5-alpine`` |br| ``latest`` and ``alpine`` | ``1.5`` |
+-------------------------+---------------------------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
.. code-block:: bash
:caption: .env
:emphasize-lines: 24
:emphasize-lines: 5
host> grep MEMCD_SERVER .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=1.4.37
#MEMCD_SERVER=1.4.38
#MEMCD_SERVER=1.4.39
#MEMCD_SERVER=1.5.0
#MEMCD_SERVER=1.5.1
MEMCD_SERVER=1.5.2
#MEMCD_SERVER=1.4
#MEMCD_SERVER=1.4-alpine
MEMCD_SERVER=1.5
#MEMCD_SERVER=1.5-alpine
#MEMCD_SERVER=latest
#MEMCD_SERVER=alpine
.. note::
This is the official Memcached server which might already have other tags available,
@ -778,11 +795,11 @@ MONGO_SERVER
This variable choses your desired MongoDB server version to be started.
+-------------------------+-------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+===================================================================+==================+
| ``MONGO_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``3.4`` |br| and many more | ``3.4`` |
+-------------------------+-------------------------------------------------------------------+------------------+
+-------------------------+----------------------------------------------------------------------------+------------------+
| Name | Allowed values | Default value |
+=========================+============================================================================+==================+
| ``MONGO_SERVER`` | ``2.8`` |br| ``3.0`` |br| ``3.2`` |br| ``3.4`` |br| ``4.0`` and ``latest`` | ``4.0`` |
+-------------------------+----------------------------------------------------------------------------+------------------+
All values are already available in the ``.env`` file and just need to be commented or uncommented. If multiple values are uncommented, the last uncommented variable one takes precedences:
@ -795,8 +812,10 @@ All values are already available in the ``.env`` file and just need to be commen
#MONGO_SERVER=2.8
#MONGO_SERVER=3.0
#MONGO_SERVER=3.2
MONGO_SERVER=3.4
#MONGO_SERVER=3.5
#MONGO_SERVER=3.4
#MONGO_SERVER=3.6
MONGO_SERVER=4.0
#MONGO_SERVER=latest
.. note::
This is the official MongoDB server which might already have other tags available,
@ -904,134 +923,6 @@ always be ``/shared/httpd/``.
``docker-compose rm``.
.. _env_mysql_datadir:
HOST_PATH_MYSQL_DATADIR
-----------------------
This is an absolute or relative path (relative to Devilbox git directory) to your MySQL data directory.
* Relative path: relative to the devilbox git directory (Must start with ``.``)
* Absolute path: Full path (Must start with ``/``)
+------------------------------+----------------+------------------+
| Name | Allowed values | Default value |
+==============================+================+==================+
| ``HOST_PATH_MYSQL_DATADIR`` | valid path | ``./data/mysql`` |
+------------------------------+----------------+------------------+
Each MySQL, MariaDB or PerconaDB version will have its own subdirectory, so when first running MySQL 5.5
and then starting MySQL 5.6, you will have a different database with different data.
Having each version separated from each other makes sure that you don't accidently upgrade
from a lower to a higher version which might not be reversable. (MySQL auto-upgrade certain older
data files to newer, but this process does not necessarily work the other way round and could result in failues).
The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/mysql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mariadb-10.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-5.7/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 mysql-8.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.6/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 percona-5.7/
.. warning::
:ref:`remove_stopped_container`
Whenever you change this value you have to stop the Devilbox and also remove the stopped
container via
``docker-compose rm``.
.. _env_pgsql_datadir:
HOST_PATH_PGSQL_DATADIR
-----------------------
This is an absolute or relative path (relative to Devilbox git directory) to your PostgreSQL data directory.
* Relative path: relative to the devilbox git directory (Must start with ``.``)
* Absolute path: Full path (Must start with ``/``)
+------------------------------+----------------+------------------+
| Name | Allowed values | Default value |
+==============================+================+==================+
| ``HOST_PATH_PGSQL_DATADIR`` | valid path | ``./data/pgsql`` |
+------------------------------+----------------+------------------+
Each PostgreSQL version will have its own subdirectory, so when first running PostgreSQL 9.1
and then starting PostgreSQL 10.0, you will have a different database with different data.
Having each version separated from each other makes sure that you don't accidently upgrade
from a lower to a higher version which might not be reversable.
The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/pgsql/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.1/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.3/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.5/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 9.6/
.. warning::
:ref:`remove_stopped_container`
Whenever you change this value you have to stop the Devilbox and also remove the stopped
container via
``docker-compose rm``.
.. _env_mongo_datadir:
HOST_PATH_MONGO_DATADIR
-----------------------
This is an absolute or relative path (relative to Devilbox git directory) to your MongoDB data directory.
* Relative path: relative to the devilbox git directory (Must start with ``.``)
* Absolute path: Full path (Must start with ``/``)
+------------------------------+----------------+------------------+
| Name | Allowed values | Default value |
+==============================+================+==================+
| ``HOST_PATH_MONGO_DATADIR`` | valid path | ``./data/mongo`` |
+------------------------------+----------------+------------------+
Each MongoDB version will have its own subdirectory, so when first running MongoDB 2.8
and then starting MongoDB 3.5, you will have a different database with different data.
Having each version separated from each other makes sure that you don't accidently upgrade
from a lower to a higher version which might not be reversable.
The directory structure will look something like this:
.. code-block:: bash
host> ls -l ./data/mongo/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 2.8/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.0/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.2/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.4/
drwxrwxr-x 6 48 48 4096 Jun 21 08:47 3.5/
.. warning::
:ref:`remove_stopped_container`
Whenever you change this value you have to stop the Devilbox and also remove the stopped
container via
``docker-compose rm``.
Docker host ports
=================
@ -1584,27 +1475,9 @@ be able to display information inside the bundled intranet.
Keep this variable in sync with the actual MySQL root password.
MYSQL_GENERAL_LOG
^^^^^^^^^^^^^^^^^
This variable controls the logging behaviour of the MySQL server (MySQL, MariaDB and PerconaDB).
As the Devilbox is intended to be used for development, this feature is turned on by default.
+-------------------------+-------------------+---------------------+
| Name | Allowed values | Default value |
+=========================+===================+=====================+
| ``MYSQL_GENERAL_LOG`` | ``0`` or ``1`` | ``0`` |
+-------------------------+-------------------+---------------------+
**MySQL documentation:**
"The general query log is a general record of what mysqld is doing. The server writes information to this log when clients connect or disconnect, and it logs each SQL statement received from clients. The general query log can be very useful when you suspect an error in a client and want to know exactly what the client sent to mysqld."
-- |ext_lnk_doc_mysql_query_log|
PostgreSQL
----------
PGSQL_ROOT_USER
^^^^^^^^^^^^^^^

View File

@ -38,6 +38,7 @@ See the directory structure for MySQL configuration directories inside ``./cfg/`
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.1/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.2/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.3/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mariadb-10.4/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 mysql-5.7/
@ -45,6 +46,7 @@ See the directory structure for MySQL configuration directories inside ``./cfg/`
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.5/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.6/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-5.7/
drwxr-xr-x 2 cytopia cytopia 4096 Mar 5 21:53 percona-8.0/
Customization is achieved by placing a file into ``cfg/mysql-X.X/``, ``cfg/mariadb-X.X/`` or
``cfg/percona-X-X`` (where ``X.X`` stands for your MySQL version).

View File

@ -9,7 +9,7 @@ Setup Photon CMS
This example will use ``photon`` cli to install Photon CMS from within the Devilbox PHP container.
After completing the below listed steps, you will have a working Laravel setup ready to be
After completing the below listed steps, you will have a working Photon CMS setup ready to be
served via http and https.
.. seealso:: |ext_lnk_example_photon_cms|

View File

@ -0,0 +1,213 @@
.. include:: /_includes/all.rst
.. include:: /_includes/snippets/__ANNOUNCEMENTS__.rst
.. _example_setup_processwire:
*****************
Setup ProcessWire
*****************
This example will use ``composer`` to install ProcessWire from within the Devilbox PHP container.
.. important::
Using ``composer`` requires the underlying file system to support symlinks. If you
use **Docker Toolbox** you need to explicitly allow/enable this.
See below for instructions:
* Docker Toolbox and :ref:`howto_docker_toolbox_and_the_devilbox_windows_symlinks`
After completing the below listed steps, you will have a working ProcessWire setup ready to be
served via http and https.
.. seealso:: |ext_lnk_example_processwire_documentation|
**Table of Contents**
.. contents:: :local:
Overview
========
The following configuration will be used:
+--------------+--------------------------+-------------+------------+---------------------------------------------+
| Project name | VirtualHost directory | Database | TLD_SUFFIX | Project URL |
+==============+==========================+=============+============+=============================================+
| my-pw | /shared/httpd/my-pw | my_pw | loc | http://my-pw.loc |br| https://my-pw.loc |
+--------------+--------------------------+-------------+------------+---------------------------------------------+
.. note::
* Inside the Devilbox PHP container, projects are always in ``/shared/httpd/``.
* On your host operating system, projects are by default in ``./data/www/`` inside the
Devilbox git directory. This path can be changed via :ref:`env_httpd_datadir`.
The following Devilbox configuration is required:
+-----------+--------------+-----------------------------------------------------------------------------------------------------+
| Service | Version | Implications |
+===========+==============+=====================================================================================================+
| Webserver | Apache 2.4 | Apache is required instead of Nginx as ProcessWire provides default ``.htaccess`` files for routing |
+-----------+--------------+-----------------------------------------------------------------------------------------------------+
| PHP | PHP-FPM 7.2 | Chosen for this example as it is the Devilbox default version |
+-----------+--------------+-----------------------------------------------------------------------------------------------------+
| Database | MariaDB 10.3 | Chosen for this example as it is the Devilbox default version |
+-----------+--------------+-----------------------------------------------------------------------------------------------------+
.. note:: If you want to use Nginx instead, you will need to adjust the vhost congfiguration accordingly to ProcessWire requirements.
Walk through
============
It will be ready in eight simple steps:
1. Enter the PHP container
2. Create a new VirtualHost directory
3. Install ProcessWire via ``composer``
4. Symlink webroot directory
5. Setup DNS record
6. Open your browser
7. Step through guided web installation
1. Enter the PHP container
--------------------------
All work will be done inside the PHP container as it provides you with all required command line
tools.
Navigate to the Devilbox git directory and execute ``shell.sh`` (or ``shell.bat`` on Windows) to
enter the running PHP container.
.. code-block:: bash
host> ./shell.sh
.. seealso::
* :ref:`enter_the_php_container`
* :ref:`work_inside_the_php_container`
* :ref:`available_tools`
2. Create new vhost directory
-----------------------------
The vhost directory defines the name under which your project will be available. |br|
( ``<vhost dir>.TLD_SUFFIX`` will be the final URL ).
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ mkdir my-pw
.. seealso:: :ref:`env_tld_suffix`
3. Install ProcessWire
----------------------
Navigate into your newly created vhost directory and install ProcessWire with ``composer``.
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd $ cd my-pw
devilbox@php-7.0.20 in /shared/httpd/my-pw $ composer create-project processwire/processwire
How does the directory structure look after installation:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-pw $ tree -L 1
.
└── processwire
1 directory, 0 files
4. Symlink webroot
------------------
Symlinking the actual webroot directory to ``htdocs`` is important. The web server expects every
project's document root to be in ``<vhost dir>/htdocs/``. This is the path where it will serve
the files. This is also the path where your frameworks entrypoint (usually ``index.php``) should
be found.
Some frameworks however provide its actual content in nested directories of unknown levels.
This would be impossible to figure out by the web server, so you manually have to symlink it back
to its expected path.
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-pw $ ln -s ln -s processwire htdocs
How does the directory structure look after symlinking:
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-pw $ tree -L 1
.
├── processwire
└── htdocs -> processwire
2 directories, 0 files
As you can see from the above directory structure, ``htdocs`` is available in its expected
path and points to the frameworks entrypoint.
.. important::
When using **Docker Toolbox**, you need to **explicitly allow** the usage of **symlinks**.
See below for instructions:
* Docker Toolbox and :ref:`howto_docker_toolbox_and_the_devilbox_windows_symlinks`
5. DNS record
-------------
If you **have** Auto DNS configured already, you can skip this section, because DNS entries will
be available automatically by the bundled DNS server.
If you **don't have** Auto DNS configured, you will need to add the following line to your
host operating systems ``/etc/hosts`` file (or ``C:\Windows\System32\drivers\etc`` on Windows):
.. code-block:: bash
:caption: /etc/hosts
127.0.0.1 my-pw.loc
.. seealso::
* :ref:`howto_add_project_hosts_entry_on_mac`
* :ref:`howto_add_project_hosts_entry_on_win`
* :ref:`setup_auto_dns`
6. Open your browser
--------------------
Open your browser at http://my-pw.loc or https://my-pw.loc.
7. Step through guided web installation
---------------------------------------
.. include:: /_includes/figures/examples/processwire/01-install-banner.rst
.. include:: /_includes/figures/examples/processwire/02-profile-choice.rst
.. include:: /_includes/figures/examples/processwire/03-default-profile.rst
.. include:: /_includes/figures/examples/processwire/04-compat-check.rst
.. include:: /_includes/figures/examples/processwire/05-general-setup.rst
.. include:: /_includes/figures/examples/processwire/06-admin-setup.rst
.. include:: /_includes/figures/examples/processwire/07-finished.rst
Next steps
==========
.. include:: /_includes/snippets/examples/next-steps.rst

View File

@ -9,7 +9,7 @@ Setup Shopware
This example will use ``git`` to install Shopware from within the Devilbox PHP container.
After completing the below listed steps, you will have a working Laravel setup ready to be
After completing the below listed steps, you will have a working Shopware setup ready to be
served via http and https.
.. seealso::

View File

@ -4,10 +4,10 @@
.. _example_setup_typo3:
***********
Setup Typo3
Setup TYPO3
***********
This example will use ``composer`` to install Typo3 from within the Devilbox PHP container.
This example will use ``composer`` to install TYPO3 from within the Devilbox PHP container.
.. important::
Using ``composer`` requires the underlying file system to support symlinks. If you
@ -16,7 +16,7 @@ This example will use ``composer`` to install Typo3 from within the Devilbox PHP
* Docker Toolbox and :ref:`howto_docker_toolbox_and_the_devilbox_windows_symlinks`
After completing the below listed steps, you will have a working Laravel setup ready to be
After completing the below listed steps, you will have a working TYPO3 setup ready to be
served via http and https.
.. seealso:: |ext_lnk_example_typo3_documentation|
@ -51,7 +51,7 @@ It will be ready in eight simple steps:
1. Enter the PHP container
2. Create a new VirtualHost directory
3. Install Typo3 via ``composer``
3. Install TYPO3 via ``composer``
4. Symlink webroot directory
5. Setup DNS record
6. Create ``FIRST_INSTALL`` file
@ -91,10 +91,10 @@ The vhost directory defines the name under which your project will be available.
.. seealso:: :ref:`env_tld_suffix`
3. Install Typo3
3. Install TYPO3
----------------
Navigate into your newly created vhost directory and install Typo3 with ``composer``.
Navigate into your newly created vhost directory and install TYPO3 with ``composer``.
.. code-block:: bash
@ -195,7 +195,7 @@ Open your browser at http://my-typo.loc or https://my-typo.loc.
* Connection: Manually configured MySWQL TCP/IP connection
* Username: root
* Password
* Host: 127.0.0.1
* Host: mysql
* Port: 3306
2. Select database

View File

@ -9,7 +9,7 @@ Setup Wordpress
This example will use ``git`` to install Wordpress from within the Devilbox PHP container.
After completing the below listed steps, you will have a working Laravel setup ready to be
After completing the below listed steps, you will have a working Wordpress setup ready to be
served via http and https.
.. seealso:: |ext_lnk_example_wordpress_documentation|
@ -146,7 +146,7 @@ path and points to the frameworks entrypoint.
.. code-block:: bash
devilbox@php-7.0.20 in /shared/httpd/my-cake $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_wp;'
devilbox@php-7.0.20 in /shared/httpd/my-wp $ mysql -u root -h 127.0.0.1 -p -e 'CREATE DATABASE my_wp;'
6. DNS record

View File

@ -163,7 +163,7 @@ Open Devilbox intranet
Once ``docker-compose up`` has finished and all or the selected container are up and running,
you can visit the Devilbox intranet with your favorite Web browser at http://localhost or
http://127.0.0.1 (https://localhost or https:127.0.0.1 respectively).
http://127.0.0.1 (https://localhost or https://127.0.0.1 respectively).
The Intranet start page will also show you all running and failed containers:

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

View File

@ -184,6 +184,7 @@ host is ready to be served with your custom domain.
examples/setup-phalcon
examples/setup-photon-cms
examples/setup-presta-shop
examples/setup-processwire
examples/setup-shopware
examples/setup-symfony
examples/setup-typo3

View File

@ -34,86 +34,6 @@ Projects
:ref:`howto_move_projects_to_a_different_directory`
Follow this guide to keep your projects separated from the Devilbox git directory.
Databases
---------
Moving your projects out of the Devilbox git directory is one step, you still need to take care
about persistent data of all available databases as well.
Let's assume you desired location for database storage is at ``/home/user/workspace/db/``.
MySQL
^^^^^
All you have to to is to adjust the path of :ref:`env_mysql_datadir` in the ``.env`` file.
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_mysql_datadir`
.. code-block:: bash
:caption: .env
:emphasize-lines: 1
HOST_PATH_MYSQL_DATADIR=/home/user/workspace/db/mysql
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/mysql/`` will be mounted
into the MySQL container.
PostgreSQL
^^^^^^^^^^
All you have to to is to adjust the path of :ref:`env_pgsql_datadir` in the ``.env`` file.
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_pgsql_datadir`
.. code-block:: bash
:caption: .env
:emphasize-lines: 1
HOST_PATH_PGSQL_DATADIR=/home/user/workspace/db/pgsql
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/pqsql/`` will be mounted
into the PostgreSQL container.
MongoDB
^^^^^^^
All you have to to is to adjust the path of :ref:`env_mongo_datadir` in the ``.env`` file.
.. code-block:: bash
# Navigate to Devilbox git directory
host> cd path/to/devilbox
# Open the .env file with your favourite editor
host> vim .env
Now Adjust the value of :ref:`env_mongo_datadir`
.. code-block:: bash
:caption: .env
:emphasize-lines: 1
HOST_PATH_MONGO_DATADIR=/home/user/workspace/db/mongo
That's it, whenever you start up the Devilbox ``/home/user/workspace/db/mongo/`` will be mounted
into the MongoDB container.
Version control ``.env`` file
-----------------------------
@ -154,19 +74,11 @@ PHP project hostname settings
=============================
When configuring your PHP projects to use MySQL, PostgreSQL, Redis, Mongo and other services,
make sure to set the hostname of each of those services to ``127.0.0.1``.
make sure to set the hostname/address of each of those services to how they are defined within the
Devilbox network:
**Why is that?**
.. include:: /_includes/snippets/core-container.rst
The PHP container port-forwards each service port to its own listen address on ``127.0.0.1``.
The Devilbox also exposes each of those service ports to the host operating system on ``127.0.0.1``.
This allows you to keep your project configuration unchanged and have the same behaviour inside the
PHP container and on your host operating system.
.. important::
Do not mix up ``localhost`` with ``127.0.0.1``. They behave differently!
Use ``127.0.0.1`` and do not use ``localhost``.
As an example, if you want to access the MySQL database from within the PHP container, you do the
following:
@ -181,10 +93,11 @@ following:
host> ./shell.sh
# Enter the MySQL console
php> mysql -u root -h 127.0.0.1 -p
php> mysql -u root -h mysql -p
mysql>
The very same command applies to access the MySQL database from your host operating system:
To access the MySQL database from your host operating system you would need the address to what it
exposes to on your host (usually ``127.0.0.1``):
.. code-block:: bash
:emphasize-lines: 2
@ -193,17 +106,14 @@ The very same command applies to access the MySQL database from your host operat
host> mysql -u root -h 127.0.0.1 -p
mysql>
So no matter if you use the Devilbox or have another LAMP stack installed locally on your host
operating system, you do not have to change your configuration files if you stick to this tip.
So any of your projects php files that configure MySQL as an example should point the hostname
or IP address of the MySQL server to ``127.0.0.1``:
Any of your projects php files that configure MySQL as an example should point the hostname
or IP address of the MySQL server to ``mysql``:
.. code-block:: php
<?php
// MySQL server connection in your project configuration
mysql_host = '127.0.0.1';
mysql_host = 'mysql';
mysql_port = '3306';
mysql_user = 'someusername';
mysql_pass = 'somepassword';
@ -215,11 +125,11 @@ or IP address of the MySQL server to ``127.0.0.1``:
Timezone
========
The :ref:`env_timezone` value will affect PHP, web server and MySQL container equally. It does
The :ref:`env_timezone` value will affect PHP and web serverequally. It does
however not affect any other official Docker container that are used within the Devilbox. This is
an issue that is currently still being worked on.
Feel free to change this to any timezone you require for PHP and MySQL, but keep in mind that
Feel free to change this to any timezone you require for PHP, but keep in mind that
timezone values for databases can be painful, once you want to switch to a different timezone.
A good practice is to always use ``UTC`` on databases and have your front-end application calculate

View File

@ -36,41 +36,14 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``.
When gathering the Windows host IP address you will need to distinguish between two cases depending
on your configuration:
1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will
use the ``Default Switch`` automatically.
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst

View File

@ -36,41 +36,14 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``.
When gathering the Windows host IP address you will need to distinguish between two cases depending
on your configuration:
1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will
use the ``Default Switch`` automatically.
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst

View File

@ -36,41 +36,14 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``.
When gathering the Windows host IP address you will need to distinguish between two cases depending
on your configuration:
1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will
use the ``Default Switch`` automatically.
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst

View File

@ -36,41 +36,14 @@ Gather Host IP address
On Windows you will have to manually retrieve the IP address to which Xdebug should connect to
via ``xdebug.remote_host``.
When gathering the Windows host IP address you will need to distinguish between two cases depending
on your configuration:
1. DockerNat IP address (no custom configuration applied)
2. Virtual Switch IP address (you have created a Virtual Switch to allow Internet access to your container)
Only one of the options may be valid for your setup.
DockerNAT IP address
^^^^^^^^^^^^^^^^^^^^
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``DockerNAT`` (e.g.: ``192.168.0.12``)
.. important::
``192.168.0.12`` is meant as an example and will eventually differ on your system.
Ensure you substitute it with the correct IP address.
.. seealso:: :ref:`howto_open_terminal_on_win`
Virtual Switch IP address
^^^^^^^^^^^^^^^^^^^^^^^^^
When you have created a custom Virtual Switch for you Docker setup, you will have to gather the
Virtual Switch IP address instead of the DockerNat IP address.
Let's assume you have created the switch by the name **New Virtual Switch** as follows:
When you have done no custom configuration in your Virtual Switch manager, Docker for Windows will
use the ``Default Switch`` automatically.
.. include:: /_includes/figures/xdebug/windows/virtual-switch-manager.rst
1. Open command line
2. Enter ``ipconfig``
3. Look for the IP4 address in ``New Virtual Switch`` (e.g.: ``192.168.0.12``)
3. Look for the IP4 address in ``Default Switch`` (e.g.: ``192.168.0.12``)
.. include:: /_includes/figures/xdebug/windows/ipconfig.rst
@ -137,7 +110,7 @@ You will need to configure the path mapping in ``launch.json`` (VSCode configura
"request": "launch",
"port": 9000,
"pathMappings": {
"/shared/httpd/mytest/htdocs": "${workspaceFolder}/htdocs"
"/shared/httpd/mytest/htdocs": "${workspaceRoot}/htdocs"
}
}, {
"name": "Launch currently open script",

View File

@ -36,10 +36,6 @@ The log directory structure would look something like this:
│   ├── defaultlocalhost-error.log
│   ├── <project-name>-access.log # Each project has its own access log
│   ├── <project-name>-error.log # Each project has its own error log
├── mariadb-10.1/
│   ├── error.log
│   ├── query.log
│   ├── slow.log
├── php-fpm-7.1/
│   ├── php-fpm.access
│   ├── php-fpm.error

View File

@ -171,71 +171,36 @@ See the following table for a few examples:
IP address mappings
-------------------
The following table shows a mapping of IP addresses of available service from the perspective
of your host operating system and from within the PHP container.
The following table shows a mapping of IP addresses and hostnames. In other words, when you are inside
the PHP container, you can reach the services via the below defined IP addresses or hostnames:
+--------------+-----------------+------------------------------+
| Service | IP from host os | IP from within PHP container |
+==============+=================+==============================+
| PHP | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| Apache/Nginx | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| MySQL | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| PostgreSQL | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| Redis | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| Memcached | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
| MongoDB | ``127.0.0.1`` | ``127.0.0.1`` |
+--------------+-----------------+------------------------------+
.. include:: /_includes/snippets/core-container.rst
As you can see, everyhing is available under ``127.0.0.1``.
.. note:: It is recommended to use hostnames as they can be remembered much easiert.
The PHP container is using ``socat`` to forward the services from all other available containers
to its own ``127.0.0.1`` address.
An example to access the MySQL database from either host or within the PHP container is the same:
An example to access the MySQL database from within the PHP container:
.. code-block:: bash
# Access MySQL from your host operating system
host> mysql -h 127.0.0.1
host> mysql -h 127.0.0.1 -u root -p
# Access MySQL from within the PHP container
devilbox@php-7.0.19 in /shared/httpd $ mysql -h 127.0.0.1
.. important::
Do not use ``localhost`` to access the services, it does not map to ``127.0.0.1`` on
all cases.
devilbox@php-7.0.19 in /shared/httpd $ mysql -h mysql -u root -p
So when setting up a configuration file from your PHP project you would for example use
``127.0.0.`` as the host for your MySQL database connection:
``mysql`` as the host for your MySQL database connection:
.. code-block:: php
<?php
// MySQL server connection
mysql_host = '127.0.0.1';
mysql_host = 'mysql';
mysql_port = '3306';
mysql_user = 'someusername';
mysql_pass = 'somepassword';
?>
Imagine your PHP framework ships a command line tool to run database migration. You could run
it from your host operating system or from within the PHP container. It would work from both
sides as the connection to the database is exactly the same locally or within the container.
You could also even switch between the Devilbox and a locally installed LAMP stack
and still use the same configuration.
.. important::
The mapping of ``127.0.0.1`` to your host operating system does not work with
Docker Toolbox out of the box. In order to achieve the same behaviour read up on:
:ref:`howto_docker_toolbox_and_the_devilbox`.
Port mappings
-------------
@ -283,7 +248,5 @@ Checklist
2. You know how to become root inside the PHP container
3. You know how to leave the container
4. You know that file and directory permissions are synronized
5. You know that ``127.0.0.1`` is available on your host and inside the PHP container
6. You know that ports are the same inside the container and on your host os
7. You know that project urls are available inside the container and on your host
8. You know about the limitations of :ref:`howto_docker_toolbox_and_the_devilbox`
5. You know by what hostnames you can reach a specific service
6. You know that project urls are available inside the container and on your host

View File

@ -10,13 +10,16 @@ You now have the devilbox downloaded at the latest version (``git master branch`
bugfixes frequently. If you however want to stay on a stable release, you need to check out a
specific ``git tag``.
Lets say you want your devilbox setup to be at release ``0.12.1``, all you have to do is to check out
Lets say you want your devilbox setup to be at release ``v1.0.1``, all you have to do is to check out
this specific git tag.
.. code-block:: bash
host> cd path/to/devilbox
host> git checkout 0.12.1
# Ensure you have latest from remote
host> git fetch
# Switch to this release
host> git checkout v1.0.1
.. warning::

View File

@ -56,7 +56,9 @@ If you want to checkout a specific release tag (such as ``0.12.1``), do a ``git
# Checkout release
host> cd path/to/devilbox
host> git checkout 0.12.1
# Ensure you have latest from remote
host> git fetch
host> git checkout v1.0.1
@ -141,13 +143,13 @@ You first need to find out the image name and then also the currently used image
host> grep 'image:' docker-compose.yml
image: cytopia/bind:0.11
image: devilbox/php-fpm:${PHP_SERVER:-7.0}-work
image: devilbox/${HTTPD_SERVER:-nginx-stable}:0.13
image: cytopia/${MYSQL_SERVER:-mariadb-10.1}:latest
image: postgres:${PGSQL_SERVER:-9.6}
image: redis:${REDIS_SERVER:-3.2}
image: memcached:${MEMCD_SERVER:-latest}
image: mongo:${MONGO_SERVER:-latest}
image: devilbox/php-fpm:${PHP_SERVER}-work
image: devilbox/${HTTPD_SERVER}:0.13
image: devilbox/mysql-${MYSQL_SERVER}
image: postgres:${PGSQL_SERVER}
image: redis:${REDIS_SERVER}
image: memcached:${MEMCD_SERVER}
image: mongo:${MONGO_SERVER}
After having found the possible candidates, you will still have to find the corresponding value
inside the ``..env`` file. Let's do it for the PHP image:
@ -156,14 +158,14 @@ inside the ``..env`` file. Let's do it for the PHP image:
host> grep '^PHP_SERVER' .env
PHP_SERVER=5.6
PHP_SERVER=7.2
So now you can substitute the ``${PHP_SERVER}`` variable from the first command with ``5.6`` and
So now you can substitute the ``${PHP_SERVER}`` variable from the first command with ``7.2`` and
finally pull a newer version:
.. code-block:: bash
host> docker pull devilbox/php-fpm:5.6-work
host> docker pull devilbox/php-fpm:7.2-work
Not very efficient.

View File

@ -41,8 +41,8 @@ Checklists
==========
.. note::
Most guids and tutorials provide a **Checklist** at the very bottom.
You can as well jump to it and quickly see if you have done everything already.
Most guides and tutorials provide a **Checklist** at the very bottom.
You can jump to it and quickly see if you have done everything already.
Where to start?

View File

@ -18,25 +18,7 @@ Core container
These container are well integrated into the Devilbox intranet and are considered core container:
+---------------------------+-------+----------+----------------+
| Container | Name | Hostname | IP Address |
+===========================+=======+==========+================+
| DNS | bind | bind | 172.16.238.100 |
+---------------------------+-------+----------+----------------+
| PHP | php | php | 172.16.238.10 |
+---------------------------+-------+----------+----------------+
| Apache, Nginx | httpd | httpd | 172.16.238.11 |
+---------------------------+-------+----------+----------------+
| MySQL, MariaDB, PerconaDB | mysql | mysql | 172.16.238.12 |
+---------------------------+-------+----------+----------------+
| PostgreSQL | pgsql | pgsql | 172.16.238.13 |
+---------------------------+-------+----------+----------------+
| Redis | redis | redis | 172.16.238.14 |
+---------------------------+-------+----------+----------------+
| Memcached | memcd | memcd | 172.16.238.15 |
+---------------------------+-------+----------+----------------+
| MongoDB | mongo | mongo | 172.16.238.16 |
+---------------------------+-------+----------+----------------+
.. include:: /_includes/snippets/core-container.rst
Additional container

View File

@ -49,6 +49,8 @@ The PHP container is your workhorse and these are your tools:
+----------------------+---------------------------------------+
| ``linkcheck`` | |ext_lnk_tool_linkcheck| |
+----------------------+---------------------------------------+
| ``lumen`` | |ext_lnk_tool_lumen| |
+----------------------+---------------------------------------+
| ``mdl`` | |ext_lnk_tool_mdl| |
+----------------------+---------------------------------------+
| ``mdlint`` | |ext_lnk_tool_mdlint| |
@ -59,6 +61,8 @@ The PHP container is your workhorse and these are your tools:
+----------------------+---------------------------------------+
| ``mysqldump-secure`` | |ext_lnk_tool_mysqldump_secure| |
+----------------------+---------------------------------------+
| ``ng`` | |ext_lnk_tool_angular_cli| |
+----------------------+---------------------------------------+
| ``node`` | |ext_lnk_tool_node| |
+----------------------+---------------------------------------+
| ``npm`` | |ext_lnk_tool_npm| |
@ -91,6 +95,8 @@ The PHP container is your workhorse and these are your tools:
+----------------------+---------------------------------------+
| ``tig`` | |ext_lnk_tool_tig| |
+----------------------+---------------------------------------+
| ``vue`` | |ext_lnk_tool_vue| |
+----------------------+---------------------------------------+
| ``webpack`` | |ext_lnk_tool_webpack| |
+----------------------+---------------------------------------+
| ``wp`` | |ext_lnk_tool_wp| |
@ -99,6 +105,8 @@ The PHP container is your workhorse and these are your tools:
+----------------------+---------------------------------------+
| ``yarn`` | |ext_lnk_tool_yarn| |
+----------------------+---------------------------------------+
| ``yq`` | |ext_lnk_tool_yq| |
+----------------------+---------------------------------------+
.. note::
If you are in need of other tools, open up an issue at |ext_lnk_tool_github_issues|

View File

@ -46,6 +46,8 @@ The following shows a list of blogs that give a nice and objective introduction
+---------------------------------+----------+
| |ext_lnk_blog_moritzkanzler| | German |
+---------------------------------+----------+
| |ext_lnk_blog_openstream| | English |
+---------------------------------+----------+
Use-cases

View File

@ -216,6 +216,12 @@ Does it work with PrestaShop?
Yes, see :ref:`example_setup_presta_shop`
Does it work with ProcessWire?
------------------------------
Yes, see :ref:`example_setup_processwire`
Does it work with Shopware?
---------------------------

View File

@ -110,6 +110,27 @@ A few general things you should always do before attempting to open up issues ar
that are shared by Docker. If not add those in the Docker settings.
No Space left on Device
-----------------------
If on Docker for Mac you get an error during docker pull similar to the following one:
.. code-block:: bash
write /var/lib/docker/tmp/GetImageBlob220119603: no space left on device
It means the file where MacOS stores the docker images is full. The usual way is to delete
unused images and volumes to free up space or increase this volumes size.
However, depending on the version of Docker some of the above suggestions may not work and you
have to get support from the docker/for-mac GitHub repository or forum.
.. seealso::
* https://github.com/cytopia/devilbox/issues/539
* https://github.com/docker/for-mac/issues/371#issuecomment-242047368
* https://forums.docker.com/t/no-space-left-on-device-error/10894
Address already in use
----------------------
@ -287,6 +308,22 @@ To mitigate that issue, make sure that the ``swoole`` module is disabled in ``.e
Database issues
===============
SQLSTATE[HY000] [1130] Host '172.16.238.10' is not allowed to connect to this MariaDB server
--------------------------------------------------------------------------------------------
.. seealso:: :ref:`troubleshooting_cant_connect_to_mysql_adter_restart`
.. _troubleshooting_cant_connect_to_mysql_adter_restart:
Cannot connect to MySQL after restart
-------------------------------------
This error usually occurs when you import a MySQL dump including the mysql database itself, which
will overwrite the user permissions and thus you won't be able to connect anymore with the settings
specified in ``.env``.
.. seealso:: https://github.com/cytopia/devilbox/issues/542
Invalid bind mount spec
-----------------------

View File

@ -134,9 +134,9 @@ NEW_GID=1000
###
### Timezone for all dockers and service config files
### Timezone for PHP Docker container (system and php.ini)
###
TIMEZONE=Europe/Berlin
TIMEZONE=UTC
@ -288,9 +288,11 @@ HTTPD_SERVER=nginx-stable
#MYSQL_SERVER=mariadb-10.1
#MYSQL_SERVER=mariadb-10.2
MYSQL_SERVER=mariadb-10.3
#MYSQL_SERVER=mariadb-10.4
#MYSQL_SERVER=percona-5.5
#MYSQL_SERVER=percona-5.6
#MYSQL_SERVER=percona-5.7
#MYSQL_SERVER=percona-8.0
###
@ -416,70 +418,6 @@ MOUNT_OPTIONS=
HOST_PATH_HTTPD_DATADIR=./data/www
###
### Local filesystem path to mysql/mariadb datadir.
###
### This can be an existing mysql data directory or empty.
### If it already is a mysql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mysql database will be
### created.
###
### Note: Inside this path, a subdirectory with the mysql|mariadb
### version will be created where the actual data resides.
### This is to protect databases from being altered by
### newer or older mysql|mariadb server versions.
###
### Note: When changing this variable you must re-create the container.
### Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MYSQL_DATADIR=./data/mysql
###
### Local filesystem path to postgresql datadir.
###
### This can be an existing postgresql data directory or empty.
### If it already is a postgresql data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new postgresql database will be
### created.
###
### Note: Inside this path, a subdirectory with the postgresql
### version will be created where the actual data resides.
### This is to protect databases from being altered by
### newer or older postgres server versions.
###
### Note: When changing this variable you must re-create the container.
### Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_PGSQL_DATADIR=./data/pgsql
###
### Local filesystem path to mongodb datadir.
###
### This can be an existing mongodb data directory or empty.
### If it already is a mongodb data directory with content,
### it will be mounted into the docker and used.
###
### If this directory is empty, a new mongodb database will be
### created.
###
### Note: When changing this variable you must re-create the container.
### Simply remove it, it will be auto-created during the next start:
###
### $ docker-compose rm -f
###
HOST_PATH_MONGO_DATADIR=./data/mongo
################################################################################
###
@ -583,21 +521,19 @@ HTTPD_NGINX_WORKER_CONNECTIONS=1024
###
### MySQL root user password
###
### If $HOST_PATH_MYSQL_DATADIR already contains an existing
### mysql datadir, enter the password for the existing mysql database
### The password is required for the initial creation of the MySQL database
### as well as the Devilbox intranet to display schema and configuration settings.
###
### If $HOST_PATH_MYSQL_DATADIR is empty, choose a new password that
### will be applied
### If you change your MySQL root user password via mysql cli, phpMyAdmin or other tools
### after the database has been created, ensure to adjust the value here accordingly as well.
###
### If you only change this value here after the database has been created,
### the MySQL root user password will not actually be changed and the Devilbox intranet
### won't be able to connect to the MySQL service.
###
MYSQL_ROOT_PASSWORD=
###
### Custom MySQL Runtime Settings
###
MYSQL_GENERAL_LOG=0
###
### Expose MySQL Port to Host
###

View File

@ -70,10 +70,9 @@ fi
### MYSQL
###
if [ "${WHICH}" = "all" ] || [ "${WHICH}" = "mysql" ]; then
SUFFIX="$( grep -E '^\s+image:\s+cytopia/\${MYSQL_SERVER' "${CWD}/docker-compose.yml" | sed 's/.*://g' )"
IMAGES="$( grep -Eo '^#*MYSQL_SERVER=[-a-z]+[.0-9]*' "${CWD}/env-example" | sed 's/.*=//g' )"
echo "${IMAGES}" | while read version ; do
docker pull cytopia/${version}:${SUFFIX}
docker pull devilbox/mysql:${version}
done
fi