### ### --------------------------------------------------- ### 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? ### ### 0: Errors ### 1: Errors, Warnings ### 2: Errors, Warnings, Infos (Recommended) ### 3: Errors, Warnings, Infos, Debug ### 4: Errors, Warnings, Infos, Debug, Trace DEBUG_ENTRYPOINT=2 ### ### 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: In addition to period or dot character ('.'), only ALPHA ([a-zA-Z]+) characters are supported. ### Mac users should not use the .local TLD, as this will not resolve properly due Apple's ### use of Multicast DNS. ### ### Note: If you use 'dvl.to' then there is no need for additional DNS as this always points ### to 127.0.0.1 by default. ### ### Example: ### TLD_SUFFIX=loc ### Makes your project available under .loc ### ### Example: ### TLD_SUFFIX=local ### Makes your project available under .local ### TLD_SUFFIX=dvl.to ### ### 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 PHP Docker container (system and php.ini) ### TIMEZONE=UTC ################################################################################ ### ### 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 ### ### HTTPD Supvervisord management ### DEVILBOX_HTTPD_MGMT_USER=supervisord DEVILBOX_HTTPD_MGMT_PASS=mypassword ################################################################################ ### ### 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 PHP_SERVER=8.1 #PHP_SERVER=8.2 ### ### 1.2 Choose HTTPD Server Image ### ### Choose between 'debian' or 'alpine' flavour and then select the version ### ### Note: apache-2.2 has no arm64 support on 'alpine' flavour ### HTTPD_FLAVOUR=alpine #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=percona-5.5 #MYSQL_SERVER=percona-5.6 #MYSQL_SERVER=percona-5.7 #MYSQL_SERVER=percona-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=mariadb-10.4 #MYSQL_SERVER=mariadb-10.5 MYSQL_SERVER=mariadb-10.6 #MYSQL_SERVER=mariadb-10.7 #MYSQL_SERVER=mariadb-10.8 #MYSQL_SERVER=mariadb-10.9 #MYSQL_SERVER=mariadb-10.10 ### ### 1.4 Choose PostgreSQL Server Image ### ### https://www.postgresql.org/support/versioning/ ### ### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX ### https://github.com/docker/toolbox/issues/510 ### # # PostgreSQL without arm64 support # #PGSQL_SERVER=9.0 #PGSQL_SERVER=9.1 #PGSQL_SERVER=9.2-alpine # # PostgreSQL with arm64 support # #PGSQL_SERVER=9.2 #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 #PGSQL_SERVER=10-alpine #PGSQL_SERVER=11 #PGSQL_SERVER=11-alpine #PGSQL_SERVER=12 #PGSQL_SERVER=12-alpine #PGSQL_SERVER=13 #PGSQL_SERVER=13-alpine #PGSQL_SERVER=14 PGSQL_SERVER=14-alpine #PGSQL_SERVER=15 #PGSQL_SERVER=15-alpine #PGSQL_SERVER=latest #PGSQL_SERVER=alpine ### ### 1.5 Choose Redis Server Image ### ### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX ### https://github.com/docker/toolbox/issues/510 ### # # Redis without arm64 support # #REDIS_SERVER=2.8 #REDIS_SERVER=3.0 #REDIS_SERVER=3.0-alpine # # Redis with arm64 support # #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=6.0 #REDIS_SERVER=6.0-alpine #REDIS_SERVER=6.2 REDIS_SERVER=6.2-alpine #REDIS_SERVER=7.0 #REDIS_SERVER=7.0-alpine #REDIS_SERVER=latest #REDIS_SERVER=alpine ### ### 1.6 Choose Memcached Server Image ### ### IMPORTANT: Alpine based images might cause issues on Docker Toolbox or OSX ### https://github.com/docker/toolbox/issues/510 ### # # Memcached without arm64 support # #MEMCD_SERVER=1.4 #MEMCD_SERVER=1.4-alpine # # Memcached with arm64 support # #MEMCD_SERVER=1.5 #MEMCD_SERVER=1.5-alpine #MEMCD_SERVER=1.6 MEMCD_SERVER=1.6-alpine #MEMCD_SERVER=latest #MEMCD_SERVER=alpine ### ### 1.7 Choose Mongo Server Image ### ### https://www.mongodb.com/evolved ### # # MongoDB without arm64 support # #MONGO_SERVER=2.8 #MONGO_SERVER=3.0 #MONGO_SERVER=3.2 # # MongoDB with arm64 support # #MONGO_SERVER=3.4 #MONGO_SERVER=3.6 #MONGO_SERVER=4.0 #MONGO_SERVER=4.2 #MONGO_SERVER=4.4 MONGO_SERVER=5.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 ',' (comma). ### ### 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 where your backups are stored ### ### 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_BACKUPDIR=./backups ### ### The path on your host OS of the ssh directory to be mounted into the ### PHP container into /home/devilbox/.ssh. ### ### IMPORTANT: The path is mounted read-only to ensure you cannot accidentally ## delete anything inside the php container. ### HOST_PATH_SSH_DIR=~/.ssh ################################################################################ ### ### 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,psr,phalcon ### ### Postfix settings for email catch-all ### ### When set to '1' postfix is normally started and made available. However you still need ### to configure it to your needs yourself. For that you can use the autostart scripts ### and define a couple of 'postconf -e name=value' commands. ### ### When set to '2' (email catch-all), no mail will leave the Devilbox. It is automatically ### internally routed the the devilbox mail account and you can see each sent mail ### in the bundled intranet: https://localhost/mail.php ### ### Values: ### 0: Disable postfix (do not start it) ### 1: Enable/Start postfix ### 2: Enable/Start postfix and enable email catch-all ### PHP_MAIL_CATCH_ALL=2 ### ### 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 ### ### Globally enable/disable HTTP/2 support ### ### This cannot be done on a per vhost level and must be enabled/disabled globally. ### ### Values: ### * 0: HTTP/2 is disabled ### * 1: HTTP/2 is enabled ### HTTPD_HTTP2_ENABLE=1 ### ### SSL (HTTP/HTTPS) settings for automated vhost generation ### ### By default each project will have two vhosts (one for HTTP and one for HTTPS). ### You can control the SSL settings for your projects via the below stated values. ### ### This is internally achieved via the '-m' argument of https://github.com/devilbox/vhost-gen ### ### Values: ### * both: Serve HTTP and HTTPS for all projects ### * redir: HTTP always redirects to HTTPS ### * ssl: Only serve HTTPS ### * plain: Only serve HTTP ### HTTPD_VHOST_SSL_TYPE=both ### ### 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 ### ### Remote (Upstream) Backend Timeout ### ### This setting specifies the Timeout for a remote Backend server, ### such as PHP-FPM or a Reverse Proxy. ### ### As for PHP, keep in mind that 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_BACKEND_TIMEOUT=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 ### ### The password is required for the initial creation of the MySQL database ### as well as the Devilbox intranet to display schema and configuration settings. ### ### If you change your MySQL root user password via mysql cli, phpMyAdmin or other tools ### after the database has been created, ensure to adjust the value here accordingly as well. ### ### If you only change this value here after the database has been created, ### the MySQL root user password will not actually be changed and the Devilbox intranet ### won't be able to connect to the MySQL service. ### MYSQL_ROOT_PASSWORD= ### ### 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 ### ### If you want to set a password, ensure to remove 'trust' from ### PGSQL_HOST_AUTH_METHOD below ### PGSQL_ROOT_PASSWORD= ### ### In order to not use a password for PostgreSQL, keep this value at 'trust' ### PGSQL_HOST_AUTH_METHOD=trust ### ### 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