### ### --------------------------------------------------- ### D E V I L B O X R U N - T I M E S E T T I N G S ### --------------------------------------------------- ### ### All the following settings are applied during ### $ docker-compose up ### ### No need to rebuild any docker images! ### ### IMPORTANT: ### ---------- ### When changing any values ensure to stop, rm and restart: ### $ docker-compose stop ### $ docker-compose rm -f ### $ docker-compose up ### ### NOTE: ### ----- ### For you own custom variables, scroll to the bottom ### # The following line will disable any shellcheck warnings throughout this file # shellcheck disable=SC2034,SC2125 ### ### Show all executed commands in each ### docker image during docker-compose up? ### ### 1: Yes ### 0: No DEBUG_COMPOSE_ENTRYPOINT=1 ### ### Log to file or Docker logs. ### ### Logging to file means log files are available under log/ ### on your host operating system. ### Logging to Docker logs means log files are streamed to ### stdout and stderr. ### ### 1: Log to Docker logs ### 0: Log to file ### DOCKER_LOGS=0 ### ### Relative or absolute path to the devilbox repository. ### (Used as a prefix for all mount paths) ### There is no need to change this. ### ### The only exception is for OSX users wanting to use NFS ### mounts instead of Filesystem mounts due to degraded performance ### on OSX. ### ### 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 ### DEVILBOX_PATH=. ### ### At what IP address should the docker services listen ### on the Host computer? ### ### The specified default should be fine for Linux and OSX (127.0.0.1:). ### If you are on windows, you will probably have to change ### it to the IP address of the docker machine. ### ### a.) Leave blank, to listen on all interfaces (no trailing colon ':') ### LOCAL_LISTEN_ADDR= ### b.) If an IP is specified, note the trailing colon ':' ### LOCAL_LISTEN_ADDR=127.0.0.1: ### LOCAL_LISTEN_ADDR= ### ### This is the domain suffix your projects will be made available ### with mass-virtual-hosting. ### It is also required for the internal DNS server to be setup. ### ### Note: Only ALPHA ([a-zA-Z]+) characters are supported. ### ### Example: ### TLD_SUFFIX=loc ### Makes your project available under xxxx.loc ### ### Example: ### TLD_SUFFIX=local ### Makes your project available under xxxx.local ### TLD_SUFFIX=loc ### ### Optional DNS configuration ### Allows you to add extra DNS records (above the wildcard entry) ### Useful if your host computer run other Docker services that you want to connect to or reach ### from within the Devilbox network by a custom hostname. ### ### Format: ### ------- ### Resolve any custom defined hostname to an IP address (useable inside container and host os) ### EXTRA_HOSTS==[,=] ### ### Resolve any custom defined hostname to whatever IP address a CNAME resolves to ### (Useable inside the container and host OS). ### Note: CNAME must be resolvable by Google DNS ### EXTRA_HOSTS==[,=] ### ### Examples: ### --------- ### EXTRA_HOSTS=hostname.loc=1.2.3.4 ### EXTRA_HOSTS=host.loc=1.2.3.4,host.example.org=3.4.5.6 EXTRA_HOSTS= ### ### Set your user id and group id ### ### This should be changed to the value of your local ### users uid and gid ### ### Type `id` on the terminal to find out your values ### NEW_UID=1000 NEW_GID=1000 ### ### Timezone for all dockers and service config files ### TIMEZONE=Europe/Berlin ################################################################################ ### ### INTRANET SETTINGS ### ################################################################################ ### ### TLD_SUFFIX domains are checked if they are set in the ### host computer /etc/hosts or available via attached DNS server. ### Timeout is done on vhosts.php (intranet) via ajax calls. ### In order to keep performance, set this to a low value. ### DNS checks might not succeed in time on slow machines. ### If DNS is valid, but timeout is expired, set this to a higher value. ### ### DNS_CHECK_TIMEOUT value is how many seconds to time out ### Default is to timeout after 1 second (DNS_CHECK_TIMEOUT=1) ### DNS_CHECK_TIMEOUT=1 ### ### Devilbox UI SSL Certificate generation ### ### When using SSL each certificate requires names for which it is responsible: ### Common Name as well as alternative names. ### ### Specify comma separated hostnames below by which you want to access the Devilbox. ### Those hostnames will be included in the SSL certificate for the Devilbox intranet. ### This has nothing to do for SSL certificates for projects, it is just for the intranet ### itself. ### DEVILBOX_UI_SSL_CN=localhost,*.localhost,devilbox,*.devilbox,httpd ### ### Devilbox UI Password protection enable/disable (1/0) ### ### Set DEVILBOX_UI_PROTECT to 1 in order to password protect the ### intranet. ### ### Example: ### DEVILBOX_UI_PROTECT=1 ### DEVILBOX_UI_PROTECT=0 ### DEVILBOX_UI_PROTECT=0 ### ### Devilbox UI Password ### ### When DEVILBOX_UI_PROTECT=1, use the following password ### to log in. The password can always be changed. ### When changing the password, make sure to restart your ### PHP container. ### ### Example: ### DEVILBOX_UI_PASSWORD=my-very-secure-password ### DEVILBOX_UI_PASSWORD=Some pass with spaces ### ### The default username is 'devilbox' ### DEVILBOX_UI_PASSWORD=password ### ### Enable the Devilbox Intranet? ### ### Example: ### DEVILBOX_UI_ENABLE=1 ### DEVILBOX_UI_ENABLE=0 ### DEVILBOX_UI_ENABLE=1 ### ### Automatically be logged in into phpMyAdmin ### ### Example: ### DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=1 ### DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=0 ### DEVILBOX_VENDOR_PHPMYADMIN_AUTOLOGIN=1 ### ### Automatically be logged in into phpPgAdmin ### ### Example: ### DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1 ### DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=0 ### DEVILBOX_VENDOR_PHPPGADMIN_AUTOLOGIN=1 ################################################################################ ### ### 1. Choose Images (Version) ### ################################################################################ ### ### You can choose any combination of httpd, mysql, postgresql or php. ### Each of them are fully compatible between one another. ### ### ### 1.1 Choose PHP Server Image ### ### Note: PHP 5.2 is not officially supported. Intranet won't work (due to lack of namespace support). ### PHP 5.2 only works with Apache 2.4, Nginx stable and Nginx mainline. ### Use at your own risk. ### #PHP_SERVER=5.2 #PHP_SERVER=5.3 #PHP_SERVER=5.4 #PHP_SERVER=5.5 #PHP_SERVER=5.6 #PHP_SERVER=7.0 #PHP_SERVER=7.1 PHP_SERVER=7.2 #PHP_SERVER=7.3 #PHP_SERVER=7.4 #PHP_SERVER=8.0 ### ### 1.2 Choose HTTPD Server Image ### #HTTPD_SERVER=apache-2.2 #HTTPD_SERVER=apache-2.4 HTTPD_SERVER=nginx-stable #HTTPD_SERVER=nginx-mainline ### ### 1.3 Choose MySQL Server Image ### #MYSQL_SERVER=mysql-5.5 #MYSQL_SERVER=mysql-5.6 #MYSQL_SERVER=mysql-5.7 #MYSQL_SERVER=mysql-8.0 #MYSQL_SERVER=mariadb-5.5 #MYSQL_SERVER=mariadb-10.0 #MYSQL_SERVER=mariadb-10.1 #MYSQL_SERVER=mariadb-10.2 MYSQL_SERVER=mariadb-10.3 #MYSQL_SERVER=percona-5.5 #MYSQL_SERVER=percona-5.6 #MYSQL_SERVER=percona-5.7 ### ### 1.4 Choose PostgreSQL Server Image ### ### IMPORTANT: Apline based images might cause issues on Docker Toolbox or OSX ### https://github.com/docker/toolbox/issues/510 ### #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.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 ### ### 1.5 Choose Redis Server Image ### ### IMPORTANT: Apline based images might cause issues on Docker Toolbox or OSX ### https://github.com/docker/toolbox/issues/510 ### #REDIS_SERVER=2.8 #REDIS_SERVER=3.0 #REDIS_SERVER=3.0-alpine #REDIS_SERVER=3.2 #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 ### ### 1.6 Choose Memcached Server Image ### ### IMPORTANT: Apline based images might cause issues on Docker Toolbox or OSX ### https://github.com/docker/toolbox/issues/510 ### #MEMCD_SERVER=1.4 #MEMCD_SERVER=1.4-alpine MEMCD_SERVER=1.5 #MEMCD_SERVER=1.5-alpine #MEMCD_SERVER=latest #MEMCD_SERVER=alpine ### ### 1.7 Choose Mongo Server Image ### #MONGO_SERVER=2.8 #MONGO_SERVER=3.0 #MONGO_SERVER=3.2 #MONGO_SERVER=3.4 #MONGO_SERVER=3.6 MONGO_SERVER=4.0 #MONGO_SERVER=latest ################################################################################ ### ### 2. Host Mounts (Your computer) ### ################################################################################ ### ### Global mount options ### ### Note: When adding custom mount options, ensure to start with a ### leading ',' (comma), as those options are prepended to already ### existing mount options. ### ### Note: If no mount options are specified, leave this variable empty ### and do not add a leading ',' (comman). ### ### MOUNT_OPTIONS=,cached ### MOUNT_OPTIONS= ### ### Example: Allow to share mounts accross container with SELINUX enabled ### ### MOUNT_OPTIONS=,z ### MOUNT_OPTIONS= ### ### Local filesystem path to www projects. ### ### 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_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 ################################################################################ ### ### 3. PHP Docker Settings ### ################################################################################ ### ### Enable certain PHP modules which are not enabled by default ### ### Currently the only modules that can be enabled are 'ioncube' and 'blackfire' ### Also ensure to disable xdebug when using any of the above: ### https://xdebug.org/docs/install#compat ### ### PHP_MODULES_ENABLE=ioncube, blackfire ### PHP_MODULES_ENABLE= ### ### Disable any PHP modules that you don't require ### ### Specify a comma separated list without spaces of modules to disable ### ### PHP_MODULES_DISABLE=xdebug,imagick,swoole ### PHP_MODULES_DISABLE=oci8,PDO_OCI,pdo_sqlsrv,sqlsrv,rdkafka,swoole ### ### Configure everything else about PHP in ### * cfg/php-ini-X.X/*.ini ### * cfg/php-fpm-X.X/*.conf ################################################################################ ### ### 4. HTTPD Docker Settings ### ################################################################################ ### ### Expose HTTPD Port to Host ### HOST_PORT_HTTPD=80 HOST_PORT_HTTPD_SSL=443 ### ### Document Root Subdirectory ### ### In your project directory, which subfolder should ### serve your files? ### ### When changing this value, restart the devilbox. ### HTTPD_DOCROOT_DIR=htdocs ### ### Per vHost Config Subdirectory ### ### In your project directory, which subfolder should ### hold apache, nginx templates for a customized vhost? ### ### When changing this value, restart the devilbox. ### HTTPD_TEMPLATE_DIR=.devilbox ### ### Webserver timeout (in seconds) to upstream PHP-FPM server ### ### This value should be greater than PHP's max_execution_time, ### otherwise the php script could still run and the webserver will ### simply drop the connection before getting an answer by PHP. ### HTTPD_TIMEOUT_TO_PHP_FPM=180 ### ### NGINX ONLY ### ### Set worker_processes and worker_connections ### ### https://nginx.org/en/docs/ngx_core_module.html#worker_processes ### https://nginx.org/en/docs/ngx_core_module.html#worker_connections ### HTTPD_NGINX_WORKER_PROCESSES=auto HTTPD_NGINX_WORKER_CONNECTIONS=1024 ################################################################################ ### ### 5. MySQL Docker Settings ### ################################################################################ ### ### MySQL root user password ### ### If $HOST_PATH_MYSQL_DATADIR already contains an existing ### mysql datadir, enter the password for the existing mysql database ### ### If $HOST_PATH_MYSQL_DATADIR is empty, choose a new password that ### will be applied ### MYSQL_ROOT_PASSWORD= ### ### Custom MySQL Runtime Settings ### MYSQL_GENERAL_LOG=0 ### ### Expose MySQL Port to Host ### HOST_PORT_MYSQL=3306 ################################################################################ ### ### 6. PostgreSQL Docker Settings ### ################################################################################ ### ### PostgreSQL 'root' user name (usually postgres) ### PGSQL_ROOT_USER=postgres ### ### PostgreSQL 'root' user password ### PGSQL_ROOT_PASSWORD= ### ### Expose PostgreSQL Port to Host ### HOST_PORT_PGSQL=5432 ################################################################################ ### ### 7. Redis Docker Settings ### ################################################################################ ### ### Expose Redis Port to Host ### HOST_PORT_REDIS=6379 ### ### Custom startup arguments ### ### Apply custom startup arguments to redis ### ### Example: Password protection ### Add password protection to the Redis server by specifying it should ### require a password. ### Note: Do not add quotes or spaces to the password ### ### REDIS_ARGS=--requirepass my-redis-root-password ### ### Example: Verbosity ### ### REDIS_ARGS=--loglevel verbose ### REDIS_ARGS= #REDIS_ARGS=--loglevel verbose --requirepass my-redis-root-password ################################################################################ ### ### 8. Memcached Docker Settings ### ################################################################################ ### ### Expose Memcached Port to Host ### HOST_PORT_MEMCD=11211 ################################################################################ ### ### 9. MongoDB Docker Settings ### ################################################################################ ### ### Expose MongoDB Port to Host ### HOST_PORT_MONGO=27017 ################################################################################ ### ### 10. Bind Docker Settings ### ################################################################################ ### ### Expose Bind Port to Host ### HOST_PORT_BIND=1053 ### ### Add comma separated DNS server from which you want to receive DNS ### You can also add DNS servers from your LAN (if any are available) ### BIND_DNS_RESOLVER=8.8.8.8,8.8.4.4 ### ### Validate DNSSEC ### ### Values: ### no: DNSSEC validation is disabled ### yes: DNSSEC validation is enabled, but a trust anchor must be manually configured. ### auto: DNSSEC validation is enabled, and a default trust anchor for root zone is used. ### BIND_DNSSEC_VALIDATE=no ### ### Bind timing options (time in seconds) ### ### Leave empty for defaults. ### Only change when you know what you are doing. ### BIND_TTL_TIME= BIND_REFRESH_TIME= BIND_RETRY_TIME= BIND_EXPIRY_TIME= BIND_MAX_CACHE_TIME= ### ### Show DNS Queries in Docker logs output? ### ### 1: Yes ### 0: No BIND_LOG_DNS_QUERIES=0 ################################################################################ ### ### 11. Custom variables ### ################################################################################ ### ### Any variable defined in this file will be available ### as environment variables to your PHP/HHV Docker container. ### ### This might be useful to set application environment and retrieve ### them via: ### ### ### Example: ### would produce: 'some value' ### #Foo=some value