A modern Docker LAMP stack and MEAN stack for local development

Overview

The Devilbox

Devilbox

Usage | Architecture | Community | Features | Intranet | Screenshots | Contributing | Logos | License

Devilbox

Release Gitter Discourse type License

Build Status Documentation Status Build Status Build Status Build Status Build Status Build Status


Support for valid https out of the box.

The Devilbox is a modern and highly customisable dockerized PHP stack supporting full LAMP and MEAN and running on all major platforms. The main goal is to easily switch and combine any version required for local development. It supports an unlimited number of projects for which vhosts, SSL certificates and DNS records are created automatically. Reverse proxies per project are supported to ensure listening server such as NodeJS can also be reached. Email catch-all and popular development tools will be at your service as well. Configuration is not necessary, as everything is already pre-setup.

Furthermore, the Devilbox provides an identical and reproducible development environment for different host operating systems.

Requirements

Linux OSX Windows Plus Docker

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

Full stack

To better understand what is actually possible have a look at the full example

Devilbox artwork

Available Container

The following table lists all integrated and pre-configured Docker container shipped by the Devilbox. Only the webserver and PHP container are mandatory, all others are optional and don't need to be started.

Each of them is also available in multiple different versions in order to reflect your exact desired environment.

Accel Web App SQL NoSQL Queue / Search ELK Utils
HAProxy Apache PHP MariaDB Memcached RabbitMQ ElasticSearch Bind
Varnish Nginx Python (Flask) MySQL MongoDB Solr Logstash Blackfire
PerconaDB Redis Kibana MailHog
PostgreSQL Ngrok

Documentation: Available Container

Community

The Devilbox has a lot of features reaching from a simple single-user development environment that works out of the box up to a shared development infrastructure for a corporate network.

In order to be aware about all that features, ensure to have skimmed over the documentation, so you know what can be done and how that might simplify your every-day life. If you ever run into any unforseen issues, feel free to join the chat or visit the forums and get community support quickly.

Documentation

Chat

Forum

Flames

devilbox.readthedocs.io gitter.im/devilbox devilbox.discourse.group github.com/devilbox/flames

Usage

Quick start

Linux and MacOS Windows
# Get the Devilbox
git clone https://github.com/cytopia/devilbox
# Create docker-compose environment file
cd devilbox
cp env-example .env
# Edit your configuration
vim .env
# Start all container
docker-compose up
1. Clone https://github.com/cytopia/devilbox to C:\devilbox with Git for Windows

2. Copy C:\devilbox\env-example to C:\devilbox\.env

3. Edit C:\devilbox\.env

4. Open a terminal on Windows and type:


# Start all container
C:\devilbox> docker-compose up

Documentation: Install the Devilbox | Start the Devilbox | .env file

Selective start

The above will start all containers, you can however also just start the containers you actually need. This is achieved by simply specifying them in the docker-compose command.

docker-compose up httpd php mysql redis

Documentation: Start only some container

Devilbox

Run different versions

Every single attachable container comes with many different versions. In order to select the desired version for a container, simply edit the .env file and uncomment the version of choice. Any combination is possible.

Apache Nginx PHP MySQL MariaDB Percona PgSQL Redis Memcached MongoDB
2.2 stable 5.2[1] 5.5 5.5 5.5 9.0 2.8 1.4 2.8
2.4 mainline 5.3 5.6 10.0 5.6 9.1 3.0 1.5 3.0
5.4 5.7 10.1 5.7 9.2 3.2 1.6 3.2
5.5 8.0 10.2 8.0 9.3 4.0 latest 3.4
5.6 10.3 9.4 5.0 3.6
7.0 10.4 9.5 6.0 4.0
7.1 10.5 9.6 latest 4.2
7.2 ... 4.4
7.3 12.3 latest
7.4 12.4
8.0[2] 13.0
8.1[2] latest

[1] PHP 5.2 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.

[2] PHP 8.0 / PHP 8.1 are upcoming unreleased versions of PHP, which are directly built out of their official git branches every night to assure you will leverage their latest features.

Documentation: Change container versions

Additional services

Additionally to the default stack, there are a variety of other services that can be easily enabled and started.

Python (Flask) Blackfire ELK MailHog Ngrok RabbitMQ Solr HAProxy Varnish
2.7 1.8 5.x.y v1.0.0 2.x 3.6 5 1.x 4
... ... 6.x.y latest 3.7 6 5
3.7 1.18.0 7.x.y latest 7 6
3.8 latest latest latest

Documentation: Enable custom container

Enter the container

You can also work directly inside the php container. Simply use the bundled scripts shell.sh (or shell.bat for Windows). The PS1 will automatically be populated with current chosen php version. Navigate the the Devilbox directory and type the below listed command:

Linux and MacOS Windows
host> ./shell.sh
[email protected] in /shared/httpd $
C:\devilbox> shell.bat
[email protected] in /shared/httpd $

Your projects can be found in /shared/httpd. DNS records are automatically available inside the php container. Also every other service will be available on 127.0.0.1 inside the php container (tricky socat port-forwarding).

Documentation: Work inside the PHP container | Directory overview

Quick Video intro

Devilbox setup and workflow Devilbox email catch-all

Feature overview

The Devilbox has everything setup for you. The only thing you will have to install is Docker and Docker Compose. Virtual hosts and DNS entries will be created automatically, just by adding new project folders.

Documentation: Devilbox Prerequisites

Features

HTTPS support HTTPS is available by default for all projects and the bundled Intranet.
HTTP/2 support All HTTPS connections will offer HTTP/2 as the default protocol, except for Apache 2.2 which does not support it.
Auto virtual hosts New virtual hosts are created automatically and instantly whenever you add a project directory. This is done internally via vhost-gen and watcherd.
Automated SSL certs Valid SSL certificates for HTTPS are automatically created for each vhost and signed by the Devilbox CA.
Unlimited vhosts Run as many projects as you need with a single instance of the Devilbox.
Custom vhosts You can overwrite and customise the default applied vhost configuration for every single vhost.
Reverse proxy Have your NodeJS application served with a nice domain name and valid HTTPS.
Custom domains Choose whatever development domain you desire: *.loc, *.dev or use real domains as well: *.example.com
Auto DNS An integrated BIND server is able to create DNS entries automatically for your chosen domains.
Auto start scripts Custom startup scripts can be provided for all PHP container equally and also differently per PHP version to install custom software or automatically startup up your required tools.
Custom PHP config Overwrite any setting for PHP.
Custom PHP modules Load custom PHP modules on the fly.
Email catch-all All outgoing emails are catched and will be presented in the included intranet.
Self-validation Projects and configuration options are validated and marked in the intranet.
Xdebug Xdebug and a full blown PHP-FPM server is ready to serve.
Devilbox Flames Devilbox community plugins a.k.a. Devilbox Flames.
Many more See Documentation for all available features.

Documentation: Setup Auto DNS | Setup valid HTTPS | Configure Xdebug | Customize PHP

Batteries

The following batteries are available in the Devilbox intranet by default:

Adminer phpMyAdmin phpPgAdmin phpRedMin PHPMemcachedAdmin OpCacheGUI Mail viewer
Adminer phpMyAdmin phpPgAdmin phpRedMin PHPMemcached Admin OpCache GUI Mail viewer

Documentation: Devilbox Intranet

Tools

The following tools will assist you on creating new projects easily as well as helping you check your code against guidelines.

🔧 awesome-ci A set of tools for static code analysis:

file-cr, file-crlf, file-empty, file-nullbyte-char, file-trailing-newline, file-trailing-single-newline, file-trailing-space, file-utf8, file-utf8-bom, git-conflicts, git-ignored, inline-css, inline-js, regex-grep, regex-perl, syntax-bash, syntax-css, syntax-js, syntax-json, syntax-markdown, syntax-perl, syntax-php, syntax-python, syntax-ruby, syntax-scss, syntax-sh
🔧 git flow git-flow is a Git extensions to provide high-level repository operations for Vincent Driessen's branching model.
🔧 json lint jsonlint is a command line linter for JSON files.
🔧 laravel installer laravel is a command line tool that lets you easily install the Laravel framework.
🔧 linkcheck linkcheck is a command line tool that searches for URLs in files (optionally limited by extension) and validates their HTTP status code.
🔧 linuxbrew brew is a MacOS Homenbrew clone for Linux.
🔧 markdownlint markdownlint is a markdown linter.
🔧 mdl mdl is a markdown linter.
🔧 phalcon devtools phalcon is a command line tool that lets you easily install the PhalconPHP framework.
🔧 photon installer photon is a command line tool that lets you easily install the PhotonCMS.
🔧 php code sniffer phpcs is a command line tool that tokenizes PHP, JavaScript and CSS files and detects violations of a defined set of coding standards.
🔧 php code beautifier phpcbf is a command line tool that automatically correct coding standard violations.
🔧 php cs fixer php-cs-fixer is a tool to automatically fix PHP Coding Standards issues.
🔧 pm2 pm2 is Node.js Production Process Manager with a built-in Load Balancer.
🔧 stylelint stylelint is a css/scss linter.
🔧 symfony installer symfony is a command line tool that lets you easily install the Symfony framework.
🔧 tig tig is a text-mode interface for git.
🔧 wp-cli wp is a command line tool that lets you easily install WordPress.
🔧 yamllint yamllint is a linter for yaml files.

Well-known and popular tools will be at your service as well:

Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox

Documentation: Available Tools

Available PHP Modules

The Devilbox is a development stack, so it is made sure that a lot of PHP modules are available out of the box in order to work with many different frameworks.

  • Core enabled (cannot be disabled):
  • Enabled (can be disabled): 🗸
  • Available, but disabled (can be enabled): d
Modules PHP 5.2 PHP 5.3 PHP 5.4 PHP 5.5 PHP 5.6 PHP 7.0 PHP 7.1 PHP 7.2 PHP 7.3 PHP 7.4 PHP 8.0 PHP 8.1
amqp 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
apc 🗸 🗸 🗸 🗸
apcu 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
bcmath 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
blackfire d d d d d d d
bz2 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
calendar 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
Core
ctype
curl
date
dba 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
dom
enchant 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
ereg
exif 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
FFI 🗸
fileinfo 🗸
filter
ftp 🗸 🗸 🗸
gd 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
gettext 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
gmp 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
hash
iconv
igbinary 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
imagick 🗸 🗸 🗸 🗸 🗸 🗸 🗸
imap 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
interbase 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
intl 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
ioncube d d d d d d d d d d
json
ldap 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
libxml
mbstring 🗸 🗸
mcrypt 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
memcache 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
memcached 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
mhash
mongo 🗸 🗸 🗸 🗸 🗸
mongodb 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
msgpack 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
mysql 🗸 🗸 🗸
mysqli 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
mysqlnd
OAuth 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
oci8 d d d d d d d d d d d
openssl
pcntl 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
pcre
PDO
pdo_dblib 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
PDO_Firebird 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
pdo_mysql 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
PDO_OCI d d d d d d d
pdo_pgsql 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
pdo_sqlite
pdo_sqlsrv d d d d
pgsql 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
phalcon 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
Phar 🗸
posix
pspell 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
psr 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
rdkafka d d d d d d d d d
readline
recode 🗸 🗸 🗸 🗸 🗸 🗸 🗸
redis 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
Reflection
session
shmop 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
SimpleXML
snmp 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
soap 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
sockets 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
sodium
solr 🗸 🗸 🗸 🗸 🗸 🗸
SPL
SQLite
sqlite3
sqlsrv d d d d d
ssh2 🗸 🗸 🗸 🗸 🗸
standard
swoole d d d d d d d d d
sysvmsg 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
sysvsem 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
sysvshm 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
tidy 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
tokenizer
uploadprogress 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
vips 🗸 🗸 🗸 🗸 🗸
wddx 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
xdebug 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
xlswriter 🗸 🗸 🗸 🗸 🗸 🗸 🗸
xml
xmlreader
xmlrpc 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
xmlwriter
xsl 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
yaml 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
Zend OPcache 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
zip 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸 🗸
zlib
  • Core enabled (cannot be disabled):
  • Enabled (can be disabled): 🗸
  • Available, but disabled (can be enabled): d

PHP modules can be enabled or disabled on demand to reflect the state of your target environment.

Documentation: Enable/disable PHP modules

Custom PHP Modules

You can also copy any custom modules into mod/(php-fpm)-<VERSION> and add a custom *.ini file to load them.

Supported PHP Frameworks

As far as tested there are no limitations and you can use any Framework or CMS just as you would on your live environment. Below are a few examples of extensively tested Frameworks and CMS:

Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox Devilbox

Documentation:
Setup CakePHP | Setup CodeIgniter | Setup Contao | Setup CraftCMS | Setup Drupal | Setup Joomla | Setup Laravel | Setup Magento | Setup PhalconPHP | Setup PhotonCMS | Setup PrestaShop | Setup ProcessWire | Setup Shopware | Setup Symfony | Setup Typo3 | Setup WordPress | Setup Yii | Setup Zend

Supported reverse proxied applications

As far as tested there are no limitations and you can use any application that creates an open port. These ports will be reverse proxied by the web server and even allow you to use valid HTTPS for them. By the built-in autostart feature of the Devilbox you can ensure that your application automatically starts up as soon as you run docker-compose up.

NodeJS Python Flask Sphinx

Documentation:
Setup reverse proxy NodeJs | Setup reverse proxy Sphinx documentation

Intranet overview

The Devilbox comes with a pre-configured intranet on http://localhost and https://localhost. This can be explicitly disabled or password-protected. The intranet will not only show you, the chosen configuration, but also validate the status of the current configuration, such as if DNS records exists (on host and container), are directories properly set-up. Additionally it provides external tools to let you interact with databases and emails.

Documentation: Devilbox Intranet

Screenshots

A few examples of how the built-in intranet looks like.

Contributing Open Source Helpers

The Devilbox is still a young project with a long roadmap of features to come. Features are decided by you - the community, so any kind of contribution is welcome.

To increase visibility and bug-free operation:

  • Star this project
  • Open up issues for bugs and feature requests
  • Clone this project and submit fixes or features
  • Visit the Devilbox Community Forums for announcements and to help others

Additionally you can subscribe to Devilbox on CodeTriage, read up on CONTRIBUTING.md and check the ROADMAP about what is already planned for the near future.

Logos

Logos and banners can be found at devilbox/artwork. Feel free to use or modify them by the terms of their license.

License

MIT License

Copyright (c) 2016 cytopia

Issues
  • MongoDB not starting

    MongoDB not starting

    Hi,

    I am using the windows 10 pro and i have recently installed the docker the latest version.

    I wanted to use devilbox services everything is working fine but the mongodb and postgre database.

    I am getting the below mention error while looking into the mongo logs.

    E:\Docker\devilbox (master)
    λ docker-compose logs mongo
    Attaching to devilbox_mongo_1
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] MongoDB starting : pid=1 port=27017 dbpath=/data/db 64-bit host=4b8802b75a60
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] db version v3.4.10
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.1t  3 May 2016
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] allocator: tcmalloc
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] modules: none
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] build environment:
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten]     distmod: debian81
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten]     distarch: x86_64
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten]     target_arch: x86_64
    mongo_1  | 2017-12-05T15:07:52.781+0000 I CONTROL  [initandlisten] options: {}
    mongo_1  | 2017-12-05T15:07:52.788+0000 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=478M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
    mongo_1  | 2017-12-05T15:07:52.954+0000 E STORAGE  [initandlisten] WiredTiger error (17) [1512486472:954333][1:0x7f1585c39d40], connection: /data/db/WiredTiger.wt: handle-open: open: File exists
    mongo_1  | 2017-12-05T15:07:52.956+0000 I STORAGE  [initandlisten] WiredTiger message unexpected file WiredTiger.wt found, renamed to WiredTiger.wt.11
    mongo_1  | 2017-12-05T15:07:52.958+0000 E STORAGE  [initandlisten] WiredTiger error (1) [1512486472:958291][1:0x7f1585c39d40], connection: /data/db/WiredTiger.wt: handle-open: open: Operation not permitted
    mongo_1  | 2017-12-05T15:07:52.960+0000 I -        [initandlisten] Assertion: 28595:1: Operation not permitted src/mongo/db/storage/wiredtiger/wiredtiger_kv_engine.cpp 276
    mongo_1  | 2017-12-05T15:07:52.962+0000 I STORAGE  [initandlisten] exception in initAndListen: 28595 1: Operation not permitted, terminating
    mongo_1  | 2017-12-05T15:07:52.963+0000 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
    mongo_1  | 2017-12-05T15:07:52.963+0000 I NETWORK  [initandlisten] removing socket file: /tmp/mongodb-27017.sock
    mongo_1  | 2017-12-05T15:07:52.963+0000 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
    mongo_1  | 2017-12-05T15:07:52.963+0000 I CONTROL  [initandlisten] now exiting
    mongo_1  | 2017-12-05T15:07:52.963+0000 I CONTROL  [initandlisten] shutting down with code:100
    

    I dont understand this error and so i decided to ask you for help. Please guide me if there anything i need to change.

    Thank you very much

    docker host:windows 
    opened by aadi-khan 54
  • Auto-DNS not working properly

    Auto-DNS not working properly

    Hi,

    I have pulled today latest image and all works well except auto-dns feature. Under php 7.1, apache 2.4, Docker version 17.09.0-ce, build afdb6d4 and osx high sierra when I set nameserver 127.0.0.1 in resolv.conf, flush the dns cache, delete the container and run compose up virtualhosts are not properly resolved. If I place them in hosts file all works well. Any suggestions for further debugging? I left DEBUG_COMPOSE_ENTRYPOINT=1 and checked the log but everything seems fine, no errors on the screen so far.

    Also after wifi reconnect on osx of dns are changed and file completely wiped, so this means that I have to add localhost on each wifi reconnect...

    bug docker host:osx 
    opened by rslid 47
  • Blackfire integration seems incomplete?

    Blackfire integration seems incomplete?

    ISSUE TYPE

    • Question

    SUMMARY

    Support for Blackfire seems to be incomplete. After adding Blackfire through the instructions, the profiling returns an error "Probe not found, invalid signature".

    It seems like Blackfire PHP is not being installed? If I install it - along with the agent - manually, nothing works either.

    Are there any of these steps which are missing in the configuration, so Blackfire starts correctly when issuing "docker-compose up"?

    • https://blackfire.io/docs/integrations/docker
    • https://blackfire.io/docs/up-and-running/installation
    • https://blackfire.io/docs/book/06-installation

    Goal

    To be able to run Blackfire profiling on my local Devilbox Docker environment.

    Thank you in advance.

    documentation feature 
    opened by runedalton 46
  • 403 forbidden after update

    403 forbidden after update

    after update (from git & containers incl. removing and recreating images) from 0.13 to 0.14 I get an 403 on all hosts (including localhost). also ssl cert is not correct set up now (security page). Can anyone confirm or a hand for debugging?

    • [ x] Pull latest dockers (e.g.: docker pull cytopia/<used_docker>) before running docker-compose up done that

    • [ x] Specify used docker versions (php, web and database) php 7.0, 7.1, 7.1 database mariadb-10.1 apache 2.2 2.4

    • [ x] Attach logs for php, mysql and webserver (found in log/ directory) the log files did not update. this is the compose up output

    • [x ] Start with debug mode and attach docker-compose output (.env setting DEBUG_COMPOSE_ENTRYPOINT=1) logs.txt

    • [x ] Never use different mysql|mariadb versions on the same HOST_PATH_MYSQL_DATADIR on existing database files. Different mysql|mariadb versions might upgrade/corrupt existing database files. If you have done that already, start with a different path of HOST_PATH_MYSQL_DATADIR (to an empty directory) and try again.

    Please also specify the following info:

    • [x ] Which operating system are you at (Linux, OSX or Windows) windows 10
    • [x ] docker version docker ce Version 18.03.1-ce-win65 (17513)
    • [x ] docker-compose version 1.21.1
    documentation 
    opened by chrizz1001 39
  • DNS problem (docker-toolbox \ Win7x64 \ non-admin user)

    DNS problem (docker-toolbox \ Win7x64 \ non-admin user)

    Hi, I've already complete setup & using devilbox tool on OS X (it means that i understand how it works fine)

    But on Windows7 x64 host i have a following issue. Accordingly to documentation, we need to specify a "LOCAL_LISTEN_ADDR", which is 127.0.0.1 by default. Docker tools software versions provided in attachment image. In case of windows 7 we can use only docker-toolbox, and cannot use a docker-native client... While it starts - it shows an IP 192.168.99.100 which must replace a default IP address (127.0.0.1:) from .env file.

    Once I've set that - i'm launching the utility... Starting procedure are the same as on OS X... The tool sequentially launches a few web services and goes to idle state...

    Afterwards my browser (Google chrome Version 60.0.3112.113 (Official Build) (64-bit)) can't get to the main web-panel, neither one of following addresses are recognized by DNS 127.0.0.1 192.168.99.100 172.16.238.11 localhost

    I've tries to set all of them to "LOCAL_LISTEN_ADDR" value, each time after any changes being made I've erase all present containers through following commands: docker rm -f $(docker ps -a -q) docker rmi $(docker images -q) for now it is still doesn't see web-panel...

    Who is sharp enough, please advise - what it can be? Is there any solution for that? Thanks for paying attention, good luck

    Software versions are dockers ip

    Working idle state of devilbox tool idle-state

    localhost 127001 19216899100 1721623811

    DNS bug duplicate host:virtualbox (docker-toolbox) 
    opened by John-MEO-o 37
  • Xdebug can't connect on Docker for Mac

    Xdebug can't connect on Docker for Mac

    If you encounter a bug and something does not work, make sure you have done the following and check those boxes before submitting an issue - thank you!

    • [x] Pull latest dockers (e.g.: docker pull cytopia/<used_docker>) before running docker-compose up
    • [x] Specify used docker versions (php, web and database)
    • [ ] Attach logs for php, mysql and webserver (found in log/ directory)
    • [ ] Start with debug mode and attach docker-compose output (.env setting DEBUG_COMPOSE_ENTRYPOINT=1)
    • [ ] Never use different mysql|mariadb versions on the same HOST_PATH_MYSQL_DATADIR on existing database files. Different mysql|mariadb versions might upgrade/corrupt existing database files. If you have done that already, start with a different path of HOST_PATH_MYSQL_DATADIR (to an empty directory) and try again.

    Please also specify the following info:

    • [x] Which operating system are you at (Linux, OSX or Windows)

    macOS Sierra 0.12.6

    • [x] docker version
    Docker version 18.03.1-ce, build 9ee9f40
    
    • [x] docker-compose version
    docker-compose version 1.21.0, build 5920eb0
    docker-py version: 3.2.1
    CPython version: 3.6.4
    OpenSSL version: OpenSSL 1.0.2o  27 Mar 2018
    

    xdebug.log

    xdebug.remote_enable=on
    xdebug.remote_host=host.docker.internal
    xdebug.remote_connect_back=0
    xdebug.idekey=code
    xdebug.remote_log=/var/log/php/xdebug.log
    

    I'm using vscode with the following configuration

    {
        // Use IntelliSense to learn about possible attributes.
        // Hover to view descriptions of existing attributes.
        // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
        "version": "0.2.0",
        "configurations": [
    
            {
                "name": "Listen for XDebug",
                "type": "php",
                "request": "launch",
                "port": 9000,
                "stopOnEntry": true,
                "log": true,
                "pathMappings": {
                    "/shared/httpd/test/htdocs": "${workspaceFolder}"
                }
            }
        ]
    }
    
    documentation host:osx xdebug 
    opened by jmcbee 33
  • Customized Nginx Conf hasn't applied

    Customized Nginx Conf hasn't applied

    Note: This issue have been resolved. While creating custom configuration based on templates don't use "\t" (TAB) characters on yml files. They will cause you some trouble :)

    Original Issue:

    Hello,

    I'm using Devilbox on Linux: Latest release, latest docker and latest docker-compose version.

    I am using PHP 7.1, Nginx-Stable versions.

    I've created .devilbox inside my project folder and put nginx.yml

    And I put fastcgi_read_timeout 300; parameter.

    But I get timeout while working on a PHP project.

    So I've go inside the docker shell and check httpd settings.

    I've checked /etc/httpd/vhost.d/myproject.conf file and the fastcgi_read_timeout settings it nowhere.

    So maybe I'm doing something wrong or maybe there is a bug.

    What do you think?

    documentation 
    opened by alivelimeli 31
  • 504 Gateway timeout errors

    504 Gateway timeout errors

    Hi - I'm getting 504 timeout errors and general performance issues, especially when trying to access wp-admin across various sites within auto DNS. Any ideas? I'm on:

    OSX High Sierra Docker Version 18.03.0-ce-mac60 (23751) Compose: 1.20.1

    Here's my .env attached env.txt

    bug docker host:linux host:osx host:windows performance 
    opened by stefanlesik 31
  • please provide Setup Instructions (an Install Guide) in the docs for Ghost - Headless CMS

    please provide Setup Instructions (an Install Guide) in the docs for Ghost - Headless CMS

    opened by BobbyBabes 30
  • Working on NodeJS project - use nginx as reverse proxy / upstream Node app

    Working on NodeJS project - use nginx as reverse proxy / upstream Node app

    Hi! Hope you are doing well. I have a question about using devilbox while working on NodeJS project. In essence, I would like to ask how to access my Node app via custom domain like 'node-app.loc'?

    I start my Node app inside a container via terminal and it is up and running on localhost:3000. But I am lost how to access it? Visiting http://node-app.loc gives me Error 403 Forbidden. I guess I could achieve what I need by modifying nginx.yml within '.devilbox' folder of my project folder, however, I don't know what exactly to put inside this config file. Please, help.

    documentation feature 
    opened by mrpsiho 30
  • AMQP extension and PHP 8

    AMQP extension and PHP 8

    ISSUE TYPE

    • Bug Report

    Checklist

    • [x] .env file is attached
    • [x] ./check-config.sh output is added below
    • [ ] docker-compose logs output is added below
    • [ ] docker-compose.override.yml is attached (if exists)
    • [ ] Custom configs from cfg/ dir are attached (if exist)
    • [x] I've looked through the docs: https://devilbox.readthedocs.io/en/latest/
    • [x] I've looked through existing issues: https://github.com/cytopia/devilbox/issues
    • [x] I've read troubleshooting: https://devilbox.readthedocs.io/en/latest/support/troubleshooting.html

    OS / ENVIRONMENT

    1. Host operating system and version: Manjaro Linux (Rolling)
    2. (Windows only) Native Docker or Docker Toolbox:
    3. Docker version: 20.10.7
    4. Docker Compose version: 1.29.2
    5. (Linux) Is SELinux enabled?: No, Manjaro uses AppArmor.
    6. What git commit hash are you on?: f6bbdc72fdc6b3a3b50ef0951b3e81f15de0c57f

    SUMMARY

    Enabling the AMQP extension in env file does nothing when using PHP 8. The lastest (master) version of this extension supports PHP 8, but it is not included in devilbox because it has to be built from scratch.

    STEPS TO REPRODUCE

    Using the following:

    PHP_SERVER=8.0
    PHP_MODULES_ENABLE=libxml,redis,iconv,ctype,igbinary,amqp,sqlite,pdo_sqlite
    

    EXPECTED BEHAVIOUR

    Inside of your devilbox:

    $  php -m | grep -i amqp
    amqp
    

    ACTUAL BEHAVIOUR

    No AMQP module enabled:

    $  php -m | grep -i amqp
    

    OTHER INFORMATION

    https://gitlab.com/-/snippets/2124707 lists a way of using a custom Dockerfile to get this working. But you have to build the image yourself and reference it in the docker file.

    Start command

    $ docker-compose up...
    

    Outputs

    env file

    DEBUG_COMPOSE_ENTRYPOINT=2
    DOCKER_LOGS=0
    DEVILBOX_PATH=.
    LOCAL_LISTEN_ADDR=
    TLD_SUFFIX=local
    EXTRA_HOSTS=
    NEW_UID=1000
    NEW_GID=1000
    TIMEZONE=UTC
    DNS_CHECK_TIMEOUT=1
    DEVILBOX_UI_SSL_CN=localhost,*.localhost,devilbox,*.devilbox,httpd
    DEVILBOX_UI_PROTECT=0
    DEVILBOX_UI_PASSWORD=password
    DEVILBOX_UI_ENABLE=1
    DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=1
    DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1
    PHP_SERVER=8.0
    HTTPD_SERVER=nginx-stable
    MYSQL_SERVER=mariadb-10.5
    PGSQL_SERVER=latest
    REDIS_SERVER=6.0
    MEMCD_SERVER=latest
    MONGO_SERVER=latest
    MOUNT_OPTIONS=
    HOST_PATH_HTTPD_DATADIR=./data/www
    HOST_PATH_BACKUPDIR=./backups
    HOST_PATH_SSH_DIR=~/.ssh
    PHP_MODULES_ENABLE=libxml,redis,iconv,ctype,igbinary,amqp,sqlite,pdo_sqlite
    PHP_MODULES_DISABLE=oci8,PDO_OCI,pdo_sqlsrv,sqlsrv,rdkafka,swoole
    PHP_MAIL_CATCH_ALL=2
    HOST_PORT_HTTPD=80
    HOST_PORT_HTTPD_SSL=443
    HTTPD_VHOST_SSL_TYPE=both
    HTTPD_DOCROOT_DIR=htdocs
    HTTPD_TEMPLATE_DIR=.devilbox
    HTTPD_TIMEOUT_TO_PHP_FPM=180
    HTTPD_NGINX_WORKER_PROCESSES=auto
    HTTPD_NGINX_WORKER_CONNECTIONS=1024
    MYSQL_ROOT_PASSWORD=
    HOST_PORT_MYSQL=3306
    PGSQL_ROOT_USER=postgres
    PGSQL_ROOT_PASSWORD=postgres
    PGSQL_HOST_AUTH_METHOD=
    HOST_PORT_PGSQL=5432
    HOST_PORT_REDIS=6379
    REDIS_ARGS=
    #REDIS_ARGS=--loglevel verbose --requirepass my-redis-root-password
    HOST_PORT_MEMCD=11211
    HOST_PORT_MONGO=27017
    HOST_PORT_BIND=1053
    BIND_DNS_RESOLVER=8.8.8.8,8.8.4.4
    BIND_DNSSEC_VALIDATE=no
    BIND_TTL_TIME=
    BIND_REFRESH_TIME=
    BIND_RETRY_TIME=
    BIND_EXPIRY_TIME=
    BIND_MAX_CACHE_TIME=
    BIND_LOG_DNS_QUERIES=0
    PHP_IDE_CONFIG="serverName=tcgtop8-api.local"
    RABBIT_SERVER=management
    RABBIT_DEFAULT_USER=tcgtop8
    RABBIT_DEFAULT_PASS=tcgtop8
    

    This is after I started using my custom image:

    $ ./check-config.sh
    
    # ==============================================================================
    # Checking .env file
    # ==============================================================================
    [SUCC]  .env file exists
    [SUCC]  .env file is readable
    [SUCC]  All variables are present in .env file
    [SUCC]  No variables is duplicated in .env file
    
    # ==============================================================================
    # Checking .env file values
    # ==============================================================================
    [SUCC]  All .env file variables have correct values
    
    # ==============================================================================
    # Checking required Devilbox core directories exist
    # ==============================================================================
    [SUCC]  All PHP cfg/ sub directories are present
    [SUCC]  All PHP log/ sub directories are present
    [SUCC]  All PHP mod/ sub directories are present
    [SUCC]  All HTTPD cfg/ sub directories are present
    [SUCC]  All HTTPD log/ sub directories are present
    
    # ==============================================================================                                                                                              
    # Checking devilbox core directory permissions
    # ==============================================================================
    [SUCC]  All devilbox directories have correct permissions
    [ERR]   Directory 'log/php-fpm-7.4' should have uid '1000' Has: '501'
    [ERR]   Directory 'log/php-fpm-7.4' should have gid '1000' Has: '20'
    
    # ==============================================================================
    # Checking devilbox core file permissions
    # ==============================================================================
    [SUCC]  All devilbox files have correct permissions
    [SUCC]  All devilbox files have correct uid 
    [SUCC]  All devilbox files have correct gid 
    
    # ==============================================================================
    # Checking projects permissions
    # ==============================================================================
    [SUCC]  All project dirs have correct permissions
    [SUCC]  All project dirs have correct uid
    [SUCC]  All project dirs have correct gid
    
    # ==============================================================================
    # Checking projects settings
    # ==============================================================================
    [SUCC]  All projects have valid DNS records 
    [SUCC]  All projects have valid HTTPD_DOCROOT_DIR
    
    # ==============================================================================
    # Checking customizations
    # ==============================================================================
    [NOTE]  [php.ini]    Custom config present in cfg/php-ini-8.0/
    
    # ==============================================================================
    # SUMMARY
    # ==============================================================================
    [ERR]   Found 3 error(s)
    [ERR]   Devilbox might not work properly
    [ERR]   Fix the issues before submitting a bug report
    [NOTE]  1 custom configurations applied. If you encounter issues, reset them first.
    
    bug 
    opened by vpassapera 1
  • Laravel missing when using PHP8

    Laravel missing when using PHP8

    Setting PHP level to 8.0 in the .env file pulls in devilbox/php-fpm:8.0-work-0.127

    When I shell into the PHP container and try to run laravel I get the bash: laravel: command not found error. This works fine on the 7.4 container.

    Other tools (like symfony) work fine.

    opened by lokinz 0
  • Does Devilbox work on Apple Silicon?

    Does Devilbox work on Apple Silicon?

    there a way to install or run Devilbox on Apple M1 Macs?

    Attached is a log of performing docker-compose up on a new installation. Look like dystopia/bind, devilbox/php-fpm, devilbox/apache and devilbox/mysql all use amd64 images. How does one switch to arm64 images?

    docker-compose up M1.txt

    opened by frumbert 1
  • How to configure the path mapping for a folder with the site, and not for the folder with Devilbox?

    How to configure the path mapping for a folder with the site, and not for the folder with Devilbox?

    ISSUE TYPE

    • Question

    SUMMARY

    In the documentation on this page: https://devilbox.readthedocs.io/en/lateest/intermediate/configure-php-xdebug/windows/phpstorm.html#configure-php-xdebug-win-phpstorm The devilbox folder is open as a project. And Path Mapping is configured for it.

    I would like to open a specific site folder as a project, which is located in data/www/. So that the IDE not indexed folders with other sites.

    How can I configure Path Mapping for this?

    Goal

    Configure Path Mapping for a folder with the site, and not for a folder with Devilbox.

    opened by evgeny-2019 0
  • Please add runkit7 to the enable-able php modules

    Please add runkit7 to the enable-able php modules

    ISSUE TYPE

    • Feature request

    SUMMARY

    Please add runkit7 to the enable-able php modules. https://www.php.net/manual/en/book.runkit7.php

    Goal

    Currently, I have to install it by hand every time I restart the php container. It would be great if it could be automatic.

    Thank you!

    feature 
    opened by ultrablue 8
  • Can I somehow change the version of Xdebug with the 3 on the 2?

    Can I somehow change the version of Xdebug with the 3 on the 2?

    My IDE does not support the third version of Xdebug. Can I change Xdebug in DevilBox to the second version? How to do it?

    bug 
    opened by evgeny-2019 0
  • Fixed typos

    Fixed typos

    2 typos were corrected.

    opened by ulin-evgeny 0
  • Error response from daemon: Ports are not available: listen tcp 0.0.0.0:5432: bind

    Error response from daemon: Ports are not available: listen tcp 0.0.0.0:5432: bind

    log ahead, started with docker compose up as it is now the default recommendation for docker instead of docker-compose up.

    shell had elevated privileges. Any way to work around? nothing working rn for me.

    [+] Running 8/8
     - Container devilbox_bind_1   Created                                                                             0.0s
     - Container devilbox_php_1    Created                                                                             0.1s
     - Container devilbox_httpd_1  Created                                                                             0.1s
     - Container devilbox_mongo_1  Created                                                                             0.1s
     - Container devilbox_pgsql_1  Created                                                                             0.1s
     - Container devilbox_redis_1  Created                                                                             0.1s
     - Container devilbox_mysql_1  Created                                                                             0.1s
     - Container devilbox_memcd_1  Created                                                                             0.1s
    Attaching to bind_1, httpd_1, memcd_1, mongo_1, mysql_1, pgsql_1, php_1, redis_1
    bind_1   | [INFO] Debug level: 2
    bind_1   | [INFO] BIND logging: disabled explicitly
    bind_1   | [INFO] Using default DNS TTL time: 3600 sec
    bind_1   | [INFO] Using default DNS Refresh time: 1200 sec
    bind_1   | [INFO] Using default DNS Retry time: 180 sec
    bind_1   | [INFO] Using default DNS Expiry time: 1209600 sec
    bind_1   | [INFO] Using default DNS Max Cache time: 10800 sec
    bind_1   | [INFO] Adding wildcard DNS: *.test -> 127.0.0.1
    bind_1   |
    bind_1   | zone test/IN: loaded serial 1621858542
    bind_1   | OK
    bind_1   | [INFO] Not adding any extra hosts
    bind_1   | [INFO] DNSSEC Validation: no
    bind_1   | [INFO] Adding custom DNS forwarder: 8.8.8.8,8.8.4.4
    bind_1   | [INFO] Starting BIND 9.11.3
    php_1    | [INFO] Debug level: 2
    php_1    | [INFO] Changing user 'devilbox' uid to: 1000
    php_1    | root $ usermod -u 1000 devilbox 2>/dev/null
    php_1    | root $ chown -R devilbox /home/devilbox 2>/dev/null || true
    php_1    | root $ chown -R devilbox /var/lib/php/session
    php_1    | root $ chown -R devilbox /var/lib/php/wsdlcache
    php_1    | root $ chown -R devilbox /var/spool/mail/devilbox
    php_1    | root $ chown -R devilbox /etc/supervisor/custom.d
    php_1    | [INFO] Changing group 'devilbox' gid to: 1000
    php_1    | root $ groupmod -g 1000 devilbox 2>/dev/null
    php_1    | root $ chown -R :devilbox /home/devilbox 2>/dev/null || true
    php_1    | root $ chown -R :devilbox /var/lib/php/session
    php_1    | root $ chown -R :devilbox /var/lib/php/wsdlcache
    php_1    | root $ chown -R :devilbox /var/spool/mail/devilbox
    php_1    | root $ chown -R :devilbox /etc/supervisor/custom.d
    php_1    | [INFO] Setting container timezone to: America/Bahia
    php_1    | root $ ln -sf /usr/share/zoneinfo/America/Bahia /etc/localtime
    php_1    | [INFO] Setting PHP: timezone=America/Bahia
    php_1    | root $ echo 'date.timezone = America/Bahia' > /usr/local/etc/php/conf.d/devilbox-runtime-timezone.ini
    php_1    | [INFO] Docker date set to: Mon May 24 09:15:43 -03 2021
    php_1    | [INFO] $DOCKER_LOGS set to 0. Logging to files under: /var/log/php
    php_1    | [INFO] Make sure to mount this directory in order to view logs
    php_1    | root $ chown -R devilbox:devilbox /var/log/php
    php_1    | root $ chmod 0755 /var/log/php
    php_1    | [INFO] $ENABLE_MAIL set to 2. Enabling postfix catch-all
    php_1    | root $ chown devilbox:devilbox /var/log/php
    php_1    | root $ chown devilbox:devilbox /var/log/php/mail.log
    php_1    | root $ chmod 0644 /var/log/php/mail.log
    php_1    | root $ chmod 0644 /var/mail/devilbox
    php_1    | root $ chown devilbox:devilbox /var/mail
    php_1    | root $ chown devilbox:devilbox /var/mail/devilbox
    php_1    | root $ postconf -e 'strict_mailbox_ownership=no'
    php_1    | root $ postconf -e 'inet_protocols=ipv4'
    php_1    | root $ postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'
    php_1    | root $ echo '/.*@.*/ devilbox' >> /etc/postfix/virtual
    php_1    | root $ newaliases
    httpd_1  | [INFO] Debug level: 2
    httpd_1  | [INFO] Runtime debug: 2
    httpd_1  | [INFO] Changing user 'nginx' uid to: 1000
    httpd_1  | root $ usermod -u 1000 nginx
    httpd_1  | [INFO] Changing group 'nginx' gid to: 1000
    httpd_1  | root $ groupmod -g 1000 nginx
    httpd_1  | [INFO] Setting container timezone to: America/Bahia
    httpd_1  | root $ ln -sf /usr/share/zoneinfo/America/Bahia /etc/localtime
    httpd_1  | [INFO] Docker date set to: Mon May 24 09:15:44 -03 2021
    httpd_1  | [INFO] $WORKER_PROCESSES set to its default value: 'auto'.
    httpd_1  | root $ sed -i'' 's/__WORKER_PROCESSES__/auto/g' /etc/nginx/nginx.conf
    httpd_1  | [INFO] Setting worker_connections to: 1024
    httpd_1  | root $ sed -i'' 's/__WORKER_CONNECTIONS__/1024/g' /etc/nginx/nginx.conf
    httpd_1  | [INFO] $DOCKER_LOGS disabled. Logging errors and access to log files inside container.
    httpd_1  | [INFO] PHP-FPM: Enabled
    httpd_1  | [INFO] PHP-FPM: Server address: 172.16.238.10
    httpd_1  | [INFO] PHP-FPM: Server port: 9000
    httpd_1  | [INFO] PHP-FPM: Timeout: 180
    httpd_1  | [INFO] Main vhost: Enabled
    httpd_1  | [INFO] Main vhost: Setting SSL type to: http and https
    httpd_1  | [INFO] Main vhost: Enable automatic generation of SSL certificates
    httpd_1  | [INFO] Main vhost: SSL CN: localhost,*.localhost,devilbox,*.devilbox,httpd
    httpd_1  | [INFO] $MAIN_VHOST_DOCROOT not specified. Keeping default: htdocs
    httpd_1  | [INFO] $MAIN_VHOST_TPL not specified. Keeping default: cfg
    httpd_1  | [INFO] Main vhost: Enabling httpd status page
    httpd_1  | [INFO] Main vhost: Changing status page alias to: /devilbox-httpd-status
    httpd_1  | [INFO] Mass vhost: Enabled
    httpd_1  | [INFO] Mass vhost: Setting SSL type to: http and https
    httpd_1  | [INFO] Mass vhost: Enable automatic generation of SSL certificates
    httpd_1  | [INFO] Mass vhost: changing tld to: .test
    httpd_1  | [INFO] Mass vhost: changing document root to: htdocs
    httpd_1  | [INFO] Mass vhost: changing template dir to: .devilbox
    httpd_1  | [INFO] vhost-gen: no customized template found
    httpd_1  | root $ sed -i'' 's/__PHP_ENABLE__/yes/g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's/__PHP_ADDR__/172.16.238.10/g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's/__PHP_PORT__/9000/g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's/__PHP_TIMEOUT__/180/g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's/__PHP_ENABLE__/yes/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's/__PHP_ADDR__/172.16.238.10/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's/__PHP_PORT__/9000/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's/__PHP_TIMEOUT__/180/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ERROR__/no/g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ACCESS__/no/g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ERROR__/no/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's/__DOCKER_LOGS_ACCESS__/no/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's|__ENABLE_STATUS__|yes|g' /etc/vhost-gen/main.yml
    httpd_1  | root $ sed -i'' 's|__STATUS_ALIAS__|/devilbox-httpd-status|g' /etc/vhost-gen/main.yml
    httpd_1  | root $ vhost-gen -n localhost -p /var/www/default/htdocs -t /etc/vhost-gen/templates-main/ -c /etc/vhost-gen/main.yml -o /var/www/default/cfg -v -d -s -m both
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Loading configuration file        (-c): /etc/vhost-gen/main.yml
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Loading vhost template (global)   (-t): /etc/vhost-gen/templates-main/nginx.yml
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Loading vhost template (override) (-o): /var/www/default/cfg/nginx.yml
    httpd_1  | vhost-gen: [WARN]  (2021-05-24 09:15:44): Override Vhost template not found: /var/www/default/cfg/nginx.yml
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Creating vhost type: https and http (both)
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Using vhost name: localhost
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Log setting: dir -> True
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Log setting: Not specified
    httpd_1  | vhost-gen: [INFO]  (2021-05-24 09:15:44): Vhost config written to: /etc/httpd/conf.d/localhost.conf
    httpd_1  | root $ sed -i'' 's|__DOCROOT_SUFFIX__|htdocs|g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ sed -i'' 's/__TLD__/.test/g' /etc/vhost-gen/mass.yml
    httpd_1  | root $ mkdir -p /etc/httpd/cert/main
    httpd_1  | root $ cert-gen -v -c DE -s Berlin -l Berlin -o Devilbox -u Devilbox -n 'localhost' -e '[email protected]' -a 'localhost *.localhost devilbox *.devilbox httpd' /ca/devilbox-ca.key /ca/devilbox-ca.crt /etc/httpd/cert/main/localhost.key /etc/httpd/cert/main/localhost.csr /etc/httpd/cert/main/localhost.crt
    httpd_1  | $ openssl req -newkey rsa:2048 -sha256 -nodes -extensions v3_req -config <(echo "[req]
    httpd_1  | distinguished_name = req_distinguished_name
    httpd_1  | x509_extensions = v3_req
    httpd_1  |
    httpd_1  | [req_distinguished_name]
    httpd_1  |
    httpd_1  | [ v3_req ]
    httpd_1  | basicConstraints = critical, CA:FALSE
    httpd_1  | subjectKeyIdentifier = hash
    httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
    httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
    httpd_1  | extendedKeyUsage = serverAuth, clientAuth
    httpd_1  | subjectAltName=${ALT_NAMES}") -keyout /etc/httpd/cert/main/localhost.key -subj '/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=localhost/[email protected]' -out /etc/httpd/cert/main/localhost.csr
    httpd_1  | $ openssl x509 -req -sha256 -extensions v3_req -extfile <(echo "[req]
    httpd_1  | distinguished_name = req_distinguished_name
    httpd_1  | x509_extensions = v3_req
    httpd_1  |
    httpd_1  | [req_distinguished_name]
    httpd_1  |
    httpd_1  | [ v3_req ]
    httpd_1  | basicConstraints = critical, CA:FALSE
    httpd_1  | subjectKeyIdentifier = hash
    httpd_1  | keyUsage = critical, digitalSignature, keyEncipherment
    httpd_1  | authorityKeyIdentifier = keyid:always,issuer:always
    httpd_1  | extendedKeyUsage = serverAuth, clientAuth
    httpd_1  | subjectAltName=${ALT_NAMES}") -days 825 -in /etc/httpd/cert/main/localhost.csr -CA /ca/devilbox-ca.crt -CAkey /ca/devilbox-ca.key -CAcreateserial -out /etc/httpd/cert/main/localhost.crt
    httpd_1  | Certificate:
    httpd_1  |     Data:
    httpd_1  |         Version: 3 (0x2)
    httpd_1  |         Serial Number:
    httpd_1  |             46:86:77:76:ba:dc:3f:0b:3a:9a:d9:2a:ae:a0:f9:72:d7:fb:7b:23
    httpd_1  |         Signature Algorithm: sha256WithRSAEncryption
    httpd_1  |         Issuer: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = Devilbox Root CA, emailAddress = [email protected], dnQualifier = FYMPZv8kOPjb0SSH6uOmGGK5BtU=
    httpd_1  |         Validity
    httpd_1  |             Not Before: May 24 12:15:44 2021 GMT
    httpd_1  |             Not After : Aug 27 12:15:44 2023 GMT
    httpd_1  |         Subject: C = DE, ST = Berlin, L = Berlin, O = Devilbox, OU = Devilbox, CN = localhost, emailAddress = [email protected]
    httpd_1  |         Subject Public Key Info:
    httpd_1  |             Public Key Algorithm: rsaEncryption
    httpd_1  |                 RSA Public-Key: (2048 bit)
    httpd_1  |                 Modulus:
    httpd_1  |                     00:a4:f0:d8:67:a5:71:66:6c:46:89:70:cd:21:c8:
    httpd_1  |                     f7:ca:89:5b:25:52:d5:81:31:2b:a6:26:a6:7c:60:
    httpd_1  |                     90:89:5f:d3:6e:4a:f7:f1:1e:d6:34:d2:51:b2:b7:
    httpd_1  |                     72:7b:2b:56:e7:95:1c:83:88:98:cd:e6:ab:de:f9:
    httpd_1  |                     fa:bf:6e:86:91:d3:d9:0c:be:d9:57:b9:e5:f1:9e:
    httpd_1  |                     d7:ac:c9:54:53:30:1b:a9:a0:9d:2c:cd:a9:fe:5d:
    httpd_1  |                     f3:6c:5e:c3:d1:1e:6c:57:4a:aa:16:b9:8c:82:2a:
    httpd_1  |                     0d:64:72:84:ac:98:b8:0b:ba:c5:11:7a:78:77:3f:
    httpd_1  |                     7b:53:2c:4b:92:87:ce:a8:d4:a1:27:12:9f:55:f4:
    httpd_1  |                     f5:77:7d:a8:b1:c8:96:27:14:85:21:f5:ae:a3:05:
    httpd_1  |                     76:75:d4:ee:a2:e9:45:75:e8:3a:7f:a7:68:d5:6c:
    httpd_1  |                     8d:5d:49:f8:53:10:c5:5b:f6:76:2b:cf:e2:f9:c0:
    httpd_1  |                     b5:ca:a1:78:d8:25:24:7f:bc:70:38:98:06:a4:42:
    httpd_1  |                     d0:40:89:86:a6:5c:99:b9:5c:a4:68:1f:d6:3c:58:
    httpd_1  |                     16:b5:27:1c:20:a1:86:68:d8:f3:4a:fd:55:29:fa:
    httpd_1  |                     b4:ba:18:e3:61:15:c6:a9:d6:df:90:81:12:35:0e:
    httpd_1  |                     49:3c:df:03:ec:cc:40:04:cd:f5:f5:d6:8d:72:e2:
    httpd_1  |                     85:5d
    httpd_1  |                 Exponent: 65537 (0x10001)
    httpd_1  |         X509v3 extensions:
    httpd_1  |             X509v3 Basic Constraints: critical
    httpd_1  |                 CA:FALSE
    httpd_1  |             X509v3 Subject Key Identifier:
    httpd_1  |                 1C:77:4D:25:0A:2E:46:2C:62:1C:B6:89:E0:FE:7A:4C:61:30:4B:04
    httpd_1  |             X509v3 Key Usage: critical
    httpd_1  |                 Digital Signature, Key Encipherment
    httpd_1  |             X509v3 Authority Key Identifier:
    httpd_1  |                 keyid:15:83:0F:66:FF:24:38:F8:DB:D1:24:87:EA:E3:A6:18:62:B9:06:D5
    httpd_1  |                 DirName:/C=DE/ST=Berlin/L=Berlin/O=Devilbox/OU=Devilbox/CN=Devilbox Root CA/[email protected]/dnQualifier=FYMPZv8kOPjb0SSH6uOmGGK5BtU=
    httpd_1  |                 serial:6D:EC:0B:66:59:3A:E8:B0:40:C0:6E:F5:0D:50:18:68:D8:3C:26:E5
    httpd_1  |
    httpd_1  |             X509v3 Extended Key Usage:
    httpd_1  |                 TLS Web Server Authentication, TLS Web Client Authentication
    httpd_1  |             X509v3 Subject Alternative Name:
    httpd_1  |                 DNS:localhost, DNS:localhost, DNS:*.localhost, DNS:devilbox, DNS:*.devilbox, DNS:httpd
    httpd_1  |     Signature Algorithm: sha256WithRSAEncryption
    httpd_1  |          a5:cc:c3:ad:63:46:82:a0:d5:98:4a:bc:b5:fc:26:5a:bb:b5:
    httpd_1  |          be:07:8a:d3:38:07:b8:e6:9b:fd:6f:b9:61:32:a1:fb:4c:4d:
    httpd_1  |          d8:2b:28:68:1f:23:f7:3c:a9:48:75:a0:59:7e:a8:40:97:c0:
    httpd_1  |          8c:67:a8:ea:93:06:3e:ab:75:e6:38:02:f2:3a:6a:ba:d3:74:
    httpd_1  |          1d:3b:cd:29:6e:ac:ca:87:a2:3d:fc:cc:09:51:f6:05:f3:8d:
    httpd_1  |          a4:00:10:a5:05:e4:69:27:b2:80:74:8e:41:c2:db:d8:fb:01:
    httpd_1  |          95:ce:63:88:b9:5c:60:2e:81:a5:2d:fd:ae:f9:96:90:0c:ca:
    httpd_1  |          6e:11:ad:27:29:44:f3:5a:6c:ba:fd:c0:2e:ee:23:31:99:83:
    httpd_1  |          48:8e:4c:5f:d0:fb:e2:e7:0a:0b:28:b9:24:04:5f:46:1c:e5:
    httpd_1  |          06:40:18:3b:96:a8:42:e1:b4:bc:41:b0:34:fa:8b:f1:10:36:
    httpd_1  |          fd:64:a6:b1:40:ef:7e:00:25:f7:18:45:8c:56:02:f6:f9:60:
    httpd_1  |          82:47:1c:d0:e1:aa:96:30:8f:a3:83:3d:20:19:ec:96:1b:fd:
    httpd_1  |          94:bf:03:95:d3:e5:ce:ab:ad:db:a9:42:e5:33:9b:79:99:3f:
    httpd_1  |          ab:b9:30:41:d1:19:a7:fa:e6:86:12:75:e3:0d:e2:a3:46:58:
    httpd_1  |          90:80:d0:cb
    httpd_1  | /etc/httpd/cert/main/localhost.crt: OK
    httpd_1  | root $ chown -R 1000:1000 /ca
    httpd_1  | [INFO] Starting supervisord: 3.3.5
    httpd_1  | 2021-05-24 09:15:45,097 INFO Set uid to user 0 succeeded
    httpd_1  | 2021-05-24 09:15:45,099 INFO supervisord started with pid 1
    php_1    | [INFO] Forwarding httpd:80 to 127.0.0.1:80 inside this docker.
    php_1    | [INFO] Forwarding httpd:443 to 127.0.0.1:443 inside this docker.
    php_1    | [INFO] Forwarding mysql:3306 to 127.0.0.1:3306 inside this docker.
    php_1    | [INFO] Forwarding pgsql:5432 to 127.0.0.1:5432 inside this docker.
    mysql_1  | 2021-05-24 12:15:45+00:00 [Note] [Entrypoint]: Entrypoint script for MySQL Server 1:10.5.8+maria~focal started.
    php_1    | [INFO] Forwarding redis:6379 to 127.0.0.1:6379 inside this docker.
    php_1    | [INFO] Forwarding memcd:11211 to 127.0.0.1:11211 inside this docker.
    php_1    | [INFO] Forwarding mongo:27017 to 127.0.0.1:27017 inside this docker.
    php_1    | [INFO] Enabling 'socat-80-httpd-80' to be started by supervisord
    php_1    | [INFO] Enabling 'socat-443-httpd-443' to be started by supervisord
    php_1    | [INFO] Enabling 'socat-3306-mysql-3306' to be started by supervisord
    Error response from daemon: Ports are not available: listen tcp 0.0.0.0:5432: bind: An attempt was made to access a socket in a way that is prohibited by access permissions```
    opened by SHJordanSLIM 2
  • Super tiny, not really a bug. There's a small (possible) error in env_example

    Super tiny, not really a bug. There's a small (possible) error in env_example

    Hi:

    Line 89 of env-example says:

    ### Note: Only ALPHA ([a-zA-Z]+) characters are supported.

    But that's not strictly true. Dots are allowed, as well. For example:

    TLD_SUFFIX=loc.my.edu

    Also works.

    I realize that that's probably because dots are allowed in hostnames in general, but it might be a good idea to say something like:

    ### Note: In addition to period or dot character ('.'), only ALPHA ([a-zA-Z]+) characters are supported.

    Please let me know if I can be of assistance.

    Thank you!

    bug 
    opened by ultrablue 0
  • PHP + Puppeteer docker image

    PHP + Puppeteer docker image

    I am trying to create a PHP and puppeteer docker image that will work with bevilbox. here is my dockerfile

    # Run npm install -g [email protected]
    
    
    # fix yarn key
    RUN curl -sS https://dl.yarnpkg.com/debian/pubkey.gpg | apt-key add -
    
    RUN apt-get update \
        && apt-get install -y wget gnupg \
        && wget -q -O - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add - \
        && sh -c 'echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main" >> /etc/apt/sources.list.d/google.list' \
        && apt-get update \
        && apt-get install -y google-chrome-stable fonts-ipafont-gothic fonts-wqy-zenhei fonts-thai-tlwg fonts-kacst fonts-freefont-ttf libxss1 \
          --no-install-recommends \
        && rm -rf /var/lib/apt/lists/*
    
    # If running Docker >= 1.13.0 use docker run's --init arg to reap zombie processes, otherwise
    # uncomment the following lines to have `dumb-init` as PID 1
    # ADD https://github.com/Yelp/dumb-init/releases/download/v1.2.2/dumb-init_1.2.2_x86_64 /usr/local/bin/dumb-init
    # RUN chmod +x /usr/local/bin/dumb-init
    # ENTRYPOINT ["dumb-init", "--"]
    
    # Uncomment to skip the chromium download when installing puppeteer. If you do,
    # you'll need to launch puppeteer with:
    #     browser.launch({executablePath: 'google-chrome-stable'})
    # ENV PUPPETEER_SKIP_CHROMIUM_DOWNLOAD true
    
    # Install puppeteer so it's available in the container.
    RUN npm install puppeteer
    
        # Add user so we don't need --no-sandbox.
        # same layer as npm install to keep re-chowned files from using up several hundred MBs more space
    RUN groupadd -r pptruser && useradd -r -g pptruser -G audio,video pptruser \
        && mkdir -p /home/pptruser/Downloads \
        && chown -R pptruser:pptruser /home/pptruser \
        && chown -R pptruser:pptruser /node_modules
    
    # Run everything after as non-privileged user.
    USER pptruser
    CMD ["google-chrome-stable"]
    

    I am getting the following error chown: cannot access '/node_modules': No such file or directory

    opened by MikePageDev 0
Releases(v1.9.2)
  • v1.9.2(Jun 4, 2021)

    Release v1.9.2 (2021-06-04)

    Added

    • Added Homebrew for all PHP images
    • Added pdo_sqlsrv PHP extension for 7.4 and 8.0
    • Xdebug 3.0 documentation
    Source code(tar.gz)
    Source code(zip)
  • v1.9.1(May 20, 2021)

    Release v1.9.1 (2021-05-19)

    Added

    • Added PHP Xdebug info page for intranet

    Changed

    • Fixes #769 Adjusted Xdebug 3.0 defaults
    • Update PHP images to 0.124
    • MySQL database use binlog by default
    • Fixes https://github.com/cytopia/devilbox/issues/790 Updated Adminer to 4.8.1

    Fixed

    • Fixes #783 Kibana 6.6 and above uses ELASTICSEARCH_HOSTS
    • Fixes #801 Intranet not available when some php modules disabled or not compiled
    • Fixes https://github.com/cytopia/devilbox/issues/794
    • Fixes https://github.com/cytopia/devilbox/issues/773
    Source code(tar.gz)
    Source code(zip)
  • v1.9.0(Dec 13, 2020)

    Release v1.9.0 (2020-12-12)

    Fixed

    • #761 Fixed missing Varnish config env var
    • #10 watcherd performance issues
    • Fixed mdl rubygen for PHP images
    • Fixed drupal (Drupal Console Launcher) for PHP images

    Added

    • Added ioncube extension to PHP 7.4
    • Added sqlsrv extension to PHP 7.4
    • Added apcu extension to PHP 8.0
    • Added blackfire extension to PHP 8.0
    • Added igbinary extension to PHP 8.0
    • Added imap extension to PHP 8.0
    • Added mcrypt extension to PHP 8.0
    • Added memcache extension to PHP 8.0
    • Added msgpack extension to PHP 8.0
    • Added oauth extension to PHP 8.0
    • Added psr extension to PHP 8.0
    • Added solr extension to PHP 8.0
    • Added xlswriter extension to PHP 8.0
    • Added yaml extension to PHP 8.0
    • Added apcu extension to PHP 8.1
    • Added igbinary extension to PHP 8.1
    • Added imap extension to PHP 8.1
    • Added mcrypt extension to PHP 8.1
    • Added memcache extension to PHP 8.1
    • Added msgpack extension to PHP 8.1
    • Added oauth extension to PHP 8.1
    • Added psr extension to PHP 8.1
    • Added solr extension to PHP 8.1
    • Added xlswriter extension to PHP 8.1
    • Added yaml extension to PHP 8.1
    • Added checks for TLD_SUFFIX in check-config.sh

    Changed

    • #763 redis extension compiles with msgpack and igbinary as available serializers
    • Updated xdebug to latest version
    • Updated watcherd to latest version
    • Updated vhost-gen to latest version
    Source code(tar.gz)
    Source code(zip)
  • v1.8.3(Nov 22, 2020)

    Release v1.8.3 (2020-11-22)

    Fixed

    • #753 Fixed symlink handling in watcherd
    • #751 Fixed duplicate output in check-config.sh

    Added

    • #755 Added ~/.composer/vendor/bin to $PATH
    • #692 Added custom supervisor configs
    • Added project and customization checks in check-config.sh
    • Intranet: show custom PHP configuration files
    • Intranet: show custom Httpd configuration files

    Intranet Preview

    Screenshot 2020-11-22 10-57-44  selection

    Screenshot 2020-11-22 11-52-06  selection

    Source code(tar.gz)
    Source code(zip)
  • v1.8.2(Nov 14, 2020)

    Release v1.8.2 (2020-11-14)

    Fixed

    • #643 Wrong entrypoint in mysql images
    • #703 Don't fail on uid/gid change
    • #749 Fix to disable PHP modules without *.so ext
    • Fixed check-config.sh to properly expand ~ character in path

    Added

    • #707 New .env variable: HOST_PATH_BACKUPDIR

    Changed

    • #547 Added link to official Contao Devilbox Documentation
    Source code(tar.gz)
    Source code(zip)
  • v1.8.1(Nov 12, 2020)

    Release v1.8.1 (2020-11-12)

    Fixed

    • Silence PHP warnings in phpmemcached and opcache GUIs
    • #746 Fix xdebug config for PHP 8.0 and 8.1

    Added

    • Added check-config.sh script to check against correct Devilbox configuration
    Source code(tar.gz)
    Source code(zip)
  • v1.8.0(Nov 9, 2020)

    Release v1.8.0 (2020-11-08)

    Fixed

    • #739 Disabled gd-jis: https://bugs.php.net/bug.php?id=73582
    • #740 Use latest PHP 8.0 image

    Added

    • #715 PHP module mongodb is re-added to PHP 8.0
    • Added PHP 8.1: https://github.com/devilbox/docker-php-fpm-8.1
    • Added Postgres images: 11.7, 11.8, 11.9, 12.2, 12.3, 12.4, 13.0
    • Added Redis images: 6.0
    • Added Memcache images: 1.6
    • Added MongoDB images: 4.4
    • Added MySQL images: MariaDB 10.5

    Changed

    • #736 Composer is updated to v2 (/usr/local/bin/composer)
    • #728 Updated phpPgAdmin from 7.12 to 7.13
    • Updated phpMyAdmin from 5.0.0 to 5.0.4
    • Updated phpMyAdmin from 4.9.3 to 4.9.7
    • Updated Adminer from 4.7.5 to 4.7.7
    • Composer is available as v1 and v2 (/usr/local/bin/composer-1 and /usr/local/bin/composer-2)
    • New default PHP version: 7.4
    • New default MySQL version: MariaDB 10.5
    • New default Postgres version: 12.4
    • New default Redis version: 6.0
    • New default Memcached version 1.6
    • New default MongoDB version: 4.4
    Source code(tar.gz)
    Source code(zip)
  • v1.7.2(Sep 18, 2020)

  • v1.7.1(Aug 9, 2020)

    Release v1.7.1 (2020-08-09)

    Added

    • #700 Re-added imap for PHP 7.4
    • #611 Adding certbot binary to PHP
    • #713 Added gsfonts
    • #713 Added mupdf and mupdf-tools
    • #714 Added PDF support for imagick

    Changed

    • Updated Nginx (stable and mainline)
    • Updated MySQL/MariaDB/PerconaDB images
    Source code(tar.gz)
    Source code(zip)
  • v1.7.0(Mar 25, 2020)

    Release v1.7.0 (2020-03-24)

    Added

    • Python Flask support
      • https://devilbox.readthedocs.io/en/latest/examples/setup-reverse-proxy-python-flask.html
      • https://devilbox.readthedocs.io/en/latest/custom-container/enable-python-flask.html
    Source code(tar.gz)
    Source code(zip)
  • v1.6.3(Mar 23, 2020)

    Devilbox Bugfix Release v1.6.3 (2020-03-23)

    Fixed

    • Fixed PHP FPM images
    • Fixed cert-gen for HAProxy
    • Various spelling errors in documentation
    • PostgreSQL startup without a password

    Added

    • #686 Added documentation for ExpressEngine
    • New .env var: PGSQL_HOST_AUTH_METHOD
    Source code(tar.gz)
    Source code(zip)
  • v1.6.2(Feb 9, 2020)

  • v1.6.1(Jan 5, 2020)

  • v1.6.0(Jan 4, 2020)

    Devilbox Release v1.6.0 (2020-01-04)

    Changed

    • #642 Make email catch-all configurable
    • #265 Make SSL vhost settings configurable

    Added

    • #615 Add phpmd
    • #378 Allow to mount local .ssh/ directory into PHP container (read-only)
    • New .env variable: HOST_PATH_SSH_DIR
    Source code(tar.gz)
    Source code(zip)
  • v1.5.0(Jan 3, 2020)

  • v1.4.0(Jan 2, 2020)

    Devilbox Release v1.4.0 (2020-01-02)

    Fixed

    • [X] Fixes #618 Update Compose version to 2.3
    • [x] Fixes #614 Update to latest mhsendmail binary with -o flag
    • [x] Fixes #265 Fix http to https redirect for projects

    Changed

    • [x] Fixes #642 Be able to disable email catch-all and still run postfix
    Source code(tar.gz)
    Source code(zip)
  • v1.3.0(Dec 28, 2019)

    Devilbox Release v1.3.0 (2019-12-29)

    Fixed

    • #626 Cannot create MongoDB database with Adminer

    Added

    • latest PHP-FPM images
    • PHP module: solr
    • PHP module: ssh2
    • phpMyAdmin to 5.0.0

    Changed

    • Use official PHP 7.4 Docker image as base
    • Updated Adminer to 4.7.5
    sed -i'' 's/^<?php$/<?php if(!function_exists("get_magic_quotes_runtime")){function get_magic_quotes_runtime(){return false;}}if(!function_exists("get_magic_quotes_gpc")){function get_magic_quotes_gpc(){return false;}}/g' adminer-4.7.5-en.php
    sed -i'' 's/while(list(\$y,\$X)=each(\$qg))/foreach ($qg as $y => $x)/g' adminer-4.7.5-en.php
    sed -i'' 's/error_reporting(6135)/error_reporting(0)/g' adminer-4.7.5-en.php
    
    • Updated phpMyAdmin to 4.9.3
    Source code(tar.gz)
    Source code(zip)
  • v1.2.0(Dec 1, 2019)

    Devilbox Release v1.2.0 (2019-12-01)

    Fixed

    • Fixes #622 Certificate Generation Settings
    • Fixes #640 Mac OS Catalina invalidates virtual host certificates
    • Fixes #592 sqlsrv connection problem

    Added

    • Added latest PHP-FPM images
    • Added latest MySQL images
    • Added latest Apache/Nginx images

    Changed

    • Made PHP 7.3 the default version

    Updating

    See notes for how to update: https://github.com/cytopia/devilbox/blob/master/UPDATING.md#update-from-v110-to-v120

    Source code(tar.gz)
    Source code(zip)
  • v1.1.0(Nov 24, 2019)

    Devilbox Release v1.1.0 (2019-11-24)

    Fixed

    • #644 Fix GD jpeg support missing in PHP 7.4
    • #619 Fix PHP 7.x WebP support with imagick

    Added

    • Make Ngrok region configurable via NGROK_REGION env variable
    • #641 Added phpPgAdmin v7 for PHP >=7
    • #594 Tool: ghostscript
    • Extensive GitHub Action CI checks
    • Added new PostgreSQL images
    • Added new MongoDB images

    Changed

    • Updated PHP Docker images (PHP version, modules and tools)
    Source code(tar.gz)
    Source code(zip)
  • v1.0.2(May 21, 2019)

    Devilbox Bugfix Release v1.0.2 (2019-05-21)

    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

    • 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
    • #572 Make npm binaries available in $PATH
    • Remove orphaned mentions of HOST_PATH_MYSQL_DATADIR
    • #583 Allow symlinks in autostart scripts

    Added

    • Documentation: Setup ProcessWire
    • Tool: Angular CLI
    • Tool: Laravel Lumen
    • #573 Tool: prestissimo
    • Tool: yq
    • Module: OAuth
    • #580 zlib header files
    Source code(tar.gz)
    Source code(zip)
  • v1.0.1(Mar 24, 2019)

    Devilbox 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 Read custom MySQL configuration
    • #540 Fix '&' password substitution in mysqldump-secure
    • #209 Documentation for Xdebug on Docker for Windows

    Changed

    • 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 Documentation improvements for connecting to databases

    Added

    • #536 Added @vue/cli and @vue/cli-service-global
    Source code(tar.gz)
    Source code(zip)
  • v1.0.0(Mar 19, 2019)

  • v1.0.0-alpha1(Mar 9, 2019)

  • v0.15.0(Mar 9, 2019)

    Devilbox Release v0.15.0 (2019-03-09)

    The Devilbox will switch to semantic versioning as of now and master will be treated as unstable/development. Ensure to stay on git tags for stability. Release will now happen much more iterative and more often.

    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

    Added

    • CHANGELOG by the standard of: https://keepachangelog.com
    • UPDATING provides information how to update between major versions
    • HTTP/2 support
    • Reverse Proxy support
    • Autostart scripts
    • Allow to enable/disable PHP modules
    • Allow to set Nginx worker_processes via .env
    • Allow to set Nginx worker_connections via .env
    • Intranet vendors
      • PHPRedMin
      • PHPMemcachedAdmin
    • Mount options for volumes
    • Docker Compose images:
      • PHP 5.2
      • PHP 5.3
      • PHP 7.4
      • PHP 8.0
      • Alpine images where possible
    • Docker Compose overwrite images:
      • Blackfire
      • ELK (Elastic Search, Logstash and Kibana)
      • MailHog
      • Ngrok
      • RabbitMQ
      • Solr
      • Varnish
      • HAProxy
    • New binaries
      • blackfire
      • dep (Deployer)
      • drush6
      • drush7
      • drush8
      • php-cs-fixer
      • rsync
      • unzip
      • wkhtmltopdf
      • zip
      • zsh
    • New PHP modules
      • blackfire
      • ffi
      • ioncube
      • oci8
      • phalcon
      • pdo_oci
      • pdo_sqlsrv
      • rdkafka
      • sqlsrv
    • Framework documentation:
      • Codeignitor
      • Contao CMS
      • Craft CMS
      • NodeJS Reverse proxy
      • Photon CMS
      • Presta Shop
      • Shopware CMS
      • Sphinx documentation Reverse proxy
      • Typo3
    • GitHub Issue templates
    • Discourse forum link: https://devilbox.discourse.group
    Source code(tar.gz)
    Source code(zip)
  • 0.14(May 6, 2018)

    • HTTPS support
    • Automated SSL certificate generation
      • Certificates signed by Devilbox CA
      • Documentation how to add CA into Chrome/FF
      • Every new project automatically has valid SSL certificates

    https://devilbox.readthedocs.io/en/latest/configuration-global/https-ssl.html

    Source code(tar.gz)
    Source code(zip)
  • 0.13.1(Apr 29, 2018)

    • Be able to communicate with external hosts
    • Fix various DNS issues
    • Documentation:
      • handle multiple env files
      • communicate with external hosts
      • Linux Auto-DNS
    Source code(tar.gz)
    Source code(zip)
  • 0.13(Apr 15, 2018)

    This is a major release which introduces various stabilization and performance fixes as well as ships a very detailed documentation about all customizable features.

    • Major documentation rewrite: (https://devilbox.readthedocs.io)
    • Various intranet fixes
    • Various intranet performance fixes
    • Various fixes for DNS Docker image (https://github.com/cytopia/docker-bind)
    • Major upgrade of all PHP Docker images (https://github.com/devilbox/docker-php-fpm)
      • Auto-built and pushed every night
      • Many new tools inside
      • Latest versions of tools and security patches every night
      • Be able to customize php.ini and php-fpm.conf
      • Fix performance issues on high load
    • Windows shell.bat to access container
    • Upgraded phpMyAdmin to 4.8
    • Upgraded Adminer to 4.6.2
    Source code(tar.gz)
    Source code(zip)
  • 0.12.1(Jan 31, 2018)

    Features / Fixes

    • [X] Fix Bind auto-dns
    • [X] Fix mail display in intranet
    • [X] Fix Httpd port in intranet
    • [X] Fix error handling in intranet logger
    • [X] Fix false values retrieved from memcached
    • [X] Various fixes in documentation
    Source code(tar.gz)
    Source code(zip)
  • 0.12(Oct 10, 2017)

    • HTTPD: Webserver now runs under Host systems user (same as PHP/HHVM container)
    • HTTPD: Be able to change name of docroot directory (htdocs)
    • HTTPD: Allow to customize each projects vhost configuration (via vhost-gen templates)
    • HTTPD: Apache 2.2 now works with HHVM
    • HTTPD: Apache and Nginx are rewritten from scratch and are now based on official containers
    • HTTPD: All Webserver Docker container are now being built every night by Travis and pushed to Dockerhub on success
    • HTTPD: All Webserver Docker container have moved to new github namespace https://github.com/devilbox
    • PHP/HHVM: Allow to inject custom variables (e.g. for dev, env, staging...)
    • PHP/HHVM: Custom bash configuration
    • PHP/HHVM: Custom tools configuration (e.g. vim)
    • PHP/HHVM: Integrate awesome-ci
    • PHP/HHVM: Be able to load custom PHP modules on the fly
    • Bind: Fix DNS forwarder
    • Doc: How to install Joomla
    • Doc: How to install Laravel
    • Intranet: Password protect devilbox intranet
    • Intranet: Disable devilbox intranet
    • Intranet: Various speedups via new Ajax calls
    • Intranet: Better DNS detection by fixing cross domain origins
    • Intranet: Run Adminer in its own window
    • New Container: PerconaDB 5.5, 5.6, 5.7
    • New Container: PHP 7.2
    • New Container: Redis 4.0
    • New Container: PostgreSQL 10.0
    • New Container: Memcached 1.5.2
    • Misc: Move gh-pages to separate git project: https://github.com/devilbox/devilbox.org
    Source code(tar.gz)
    Source code(zip)
  • 0.11(Jun 28, 2017)

    • [X] Doc: Various examples for how to setup up different frameworks on the devilbox
    • [X] Doc: How to backup databases
    • [X] Doc: Usage
    • [X] Doc: Overview
    • [X] Doc: Configuration
    • [X] Doc: Technical documentation
    • [X] Doc: FAQ
    • [X] Mongo: Separate datadir by version
    • [X] PHP/HHVM: Integrate mysqldump-secure
    • [X] CI: Check almost any combination against each other
    • [X] DNS: AutoDNS via Bind
    Source code(tar.gz)
    Source code(zip)
Owner
cytopia
DevOps Engineer
cytopia
Up and running with small Docker environments

Vessel Up and running with small Docker dev environments. Documentation Full documentation can be found at https://vessel.shippingdocker.com. Install

Shipping Docker 1k Jul 24, 2021
Stacker - The environment for local web development, ready for use.

Introduction English 简体中文 Why stacker? Stacker - This is a local environment for web development with everything you need. What is its benefit? You do

Nikolay Stepanov 355 Jun 26, 2021
A development tool for all your projects that is fast, easy, powerful and liberating

Lando A Liberating Dev Tool For All Your Projects The local development and DevOps tool trusted by professional developers across the galaxy. Free you

Lando 3k Jul 24, 2021
Full PHP development environment for Docker.

Full PHP development environment based on Docker. Use Docker First - Learn About It Later! Join Us Awesome People Laradock is an MIT-licensed open sou

laradock 10.7k Jul 24, 2021
Dockerized version of Laravel Homestead

laraedit-docker Dockerized version of Laravel Homestead Documentation For now you can check out the wiki for details on using the container. Once the

LaraEdit 441 Jun 7, 2021
Symfony5 template w/ Docker config

Symfony5 w/ Docker config A project template in the following configuration: Symfony 5.2 PHP8 PostgreSQL 13.2 Separate Docker containers for Nginx, FP

Andrew Alyamovsky 4 Jun 28, 2021
Vagrant is a tool for building and distributing development environments.

Vagrant Website: https://www.vagrantup.com/ Source: https://github.com/hashicorp/vagrant HashiCorp Discuss: https://discuss.hashicorp.com/c/vagrant/24

HashiCorp 22.3k Jul 24, 2021
Monitor for any changes in your php application and automatically restart it (suitable for async apps).

PHP-watcher PHP-watcher helps develop long-running PHP applications by automatically restarting them when file changes in the directory are detected.

Sergey Zhuk 324 Jul 27, 2021
A fork of Laravel Valet to work in Linux.

Introduction Valet Linux is a Laravel development environment for Linux minimalists. No Vagrant, no /etc/hosts file. You can even share your sites pub

Carlos Priego 1.1k Jul 23, 2021
适用于一线安服的ctf培训题目,全docker环境一键启动

CTF培训题目集合 这些题目均是在前安服工作时候积累的培训题目,做成了docker环境,可以直接使用docker-compose up -d启动题目,部分题目可能未完善,存在bug。目前的工作不再做一线安服了,就把题目开源,给还战斗在一线的安服兄弟们一个参考。如果有侵权,联系我删除。 题目名称 分类

le31ei 122 Jul 22, 2021
Vagrant/Puppet GUI

PuPHPet PuPHPet - A simple GUI to set up virtual machines for PHP development What? PuPHPet is a web application that allows you to easily and quickly

PuPHPet 3.9k Jul 19, 2021
Software to automate the management and configuration of any infrastructure or application at scale. Get access to the Salt software package repository here:

Latest Salt Documentation Open an issue (bug report, feature request, etc.) Salt is the world’s fastest, most intelligent and scalable automation engi

SaltStack 11.8k Jul 21, 2021
Server automation framework and application

Puppet Puppet, an automated administrative engine for your Linux, Unix, and Windows systems, performs administrative tasks (such as adding users, inst

Puppet 6.2k Jul 20, 2021