cytopia / devilbox

A modern Docker LAMP stack and MEAN stack for local development
http://devilbox.org
MIT License
4.4k stars 654 forks source link

[Bug]: AutoDNS not working on MacOS Ventura 13.5.2 #1001

Closed thoni56 closed 1 year ago

thoni56 commented 1 year ago

Have you already looked into this bug?

(Optional) Error message

;; Got recursion not available from 127.0.0.1, trying next server

What went wrong?

Trying to setup auto-DNS, have added 127.0.0.1 as first DNS-server, port 53 is propagated from docker container but get the following nslookup response:

MacBook-Pro-3(arm64):devilbox $ nslookup events-copy.dvl.to
;; Got recursion not available from 127.0.0.1, trying next server
Server:     192.168.34.1
Address:    192.168.34.1#53

** server can't find events-copy.dvl.to: NXDOMAIN

Expected behaviour

That the build in DNS server answered "127.0.0.1" so that the virtual host inside the Devilbox docker container would be found.

How can we reproduce the bug?

Install according to instructions, enable auto DNS using HOST_PORT_BIND=53.

I can also ping the server from within devilbox:

devilbox@php-8.1.14 in /shared/httpd $ ping events-copy.dvl.to
PING events-copy.dvl.to (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.072 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.156 ms
^C
--- events-copy.dvl.to ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1013ms
rtt min/avg/max/mdev = 0.072/0.114/0.156/0.042 ms
devilbox@php-8.1.14 in /shared/httpd $ 
logout
MacBook-Pro-3(arm64):devilbox $ ping events-copy.dvl.to
ping: cannot resolve events-copy.dvl.to: Unknown host

Host Operating System

MacOS

Host Platform (amd64, arm64, other)

arm64

(Linux only) Is SELinux enabled?

Not using Linux

Docker version

Docker version 24.0.6, build ed223bc820

Docker Compose version

Docker Compose version v2.21.0-desktop.1 - but I'm using "docker compose"

Devilbox version

Devilbox v3.0.0-beta-0.3 (2023-01-02)

Have you removed stopped containers before starting?

Yes

Have you pulled latest Docker images before starting?

Yes

Devilbox start command

docker compose up -d php mysql httpd

Config: .env file

###
###  ---------------------------------------------------
###  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 <project>.loc
###
### Example:
###   TLD_SUFFIX=local
### Makes your project available under <project>.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=<hostname>=<ip>[,<hostname>=<ip>]
###
### 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=<hostname>=<CNAME>[,<hostname>=<CNAME>]
###
### 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=501
NEW_GID=20

###
### 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=53

###
### 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: <?php getenv('MY_APPLICATION_ENV'); ?>
###

###
### Example:
### <?php echo getenv('Foo'); ?> would produce: 'some value'
###
#Foo=some value

Config: docker-compose.override.yml

No response

Config: ./check-config.sh

# ==============================================================================
# Checking git
# ==============================================================================
[ERR]   git is unclean
?? cfg/php-ini-8.1/error_reporting.ini-unused
?? cfg/php-ini-8.1/xdebug.ini-unused

# ==============================================================================
# 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 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
[SUCC]  All devilbox directories have correct uid
[SUCC]  All devilbox directories have correct gid

# ==============================================================================
# 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
# ==============================================================================
[ERR]   Project 'events-copy.dvl.to' has no valid DNS record
[ERR]   Project 'events-migrated-to-J4.dvl.to' has no valid DNS record
[ERR]   Project 'joomla-civicrm.dvl.to' has no valid DNS record
[SUCC]  All projects have valid HTTPD_DOCROOT_DIR

# ==============================================================================
# Checking customizations
# ==============================================================================
[INFO]  No custom configurations applied

# ==============================================================================
# SUMMARY
# ==============================================================================
[ERR]   Found 4 error(s)
[ERR]   Devilbox might not work properly
[ERR]   Fix the issues before submitting a bug report
[INFO]  No custom configurations applied
[INFO]  Ensure to run 'docker-compose stop; docker-compose rm -f' on .env changes or custom configs

Log: docker-compose logs

devilbox-bind-1   | [INFO] Debug level: 2
devilbox-bind-1   | 
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | /etc/bind/named.conf
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | include "/etc/bind/named.conf.logging";
devilbox-bind-1   | include "/etc/bind/named.conf.options";
devilbox-bind-1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devilbox-bind-1   | [INFO] BIND logging: disabled explicitly
devilbox-bind-1   | [INFO] Using default DNS TTL time: 3600 sec
devilbox-bind-1   | [INFO] Using default DNS Refresh time: 1200 sec
devilbox-bind-1   | [INFO] Using default DNS Retry time: 180 sec
devilbox-bind-1   | [INFO] Using default DNS Expiry time: 1209600 sec
devilbox-bind-1   | [INFO] Using default DNS Max Cache time: 10800 sec
devilbox-bind-1   | [INFO] Changing DNS Max Cache size to: 90%
devilbox-bind-1   | [INFO] Not adding any PTR records
devilbox-bind-1   | [INFO] Adding A Record: *.dvl.to -> 127.0.0.1
devilbox-bind-1   | zone rpz/IN: loaded serial 1695813812
devilbox-bind-1   | OK
devilbox-bind-1   | [INFO] Not adding any CNAME records
devilbox-bind-1   | [INFO] $ALLOW_QUERY not set.
devilbox-php-1    | 2023-09-27 11:23:07,290 INFO success: socat-443-httpd-443 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:07,290 INFO success: socat-5432-pgsql-5432 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:07,290 INFO success: socat-6379-redis-6379 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:07,290 INFO success: socat-80-httpd-80 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:15,317 WARN received SIGQUIT indicating exit request
devilbox-php-1    | 2023-09-27 11:23:15,318 INFO waiting for rsyslogd, php-fpm, postfix, socat-11211-memcd-11211, socat-27017-mongo-27017, socat-3306-mysql-3306, socat-443-httpd-443, socat-5432-pgsql-5432, socat-6379-redis-6379, socat-80-httpd-80 to die
devilbox-php-1    | 2023-09-27 11:23:15,320 INFO stopped: socat-80-httpd-80 (exit status 143)
devilbox-bind-1   | [INFO] DNS query rules will not be set
devilbox-bind-1   | [INFO] $ALLOW_RECURSION not set.
devilbox-bind-1   | [INFO] DNS recursion rules will not be set
devilbox-bind-1   | [INFO] DNSSEC Validation: no
devilbox-php-1    | 2023-09-27 11:23:15,321 INFO stopped: socat-6379-redis-6379 (exit status 143)
devilbox-php-1    | 2023-09-27 11:23:15,323 INFO stopped: socat-5432-pgsql-5432 (exit status 143)
devilbox-php-1    | 2023-09-27 11:23:15,325 INFO stopped: socat-443-httpd-443 (exit status 143)
devilbox-php-1    | 2023-09-27 11:23:15,326 INFO stopped: socat-3306-mysql-3306 (exit status 143)
devilbox-php-1    | 2023-09-27 11:23:15,328 INFO stopped: socat-27017-mongo-27017 (exit status 143)
devilbox-php-1    | 2023-09-27 11:23:15,329 INFO stopped: socat-11211-memcd-11211 (exit status 143)
devilbox-php-1    | 2023-09-27 11:23:16,332 INFO reaped unknown pid 1298 (terminated by SIGTERM)
devilbox-php-1    | 2023-09-27 11:23:16,333 INFO reaped unknown pid 1299 (terminated by SIGTERM)
devilbox-php-1    | 2023-09-27 11:23:16,333 INFO reaped unknown pid 1300 (terminated by SIGTERM)
devilbox-php-1    | Sep 27 11:23:15 php postfix/postfix-script[1317]: stopping the Postfix mail system
devilbox-php-1    | Sep 27 11:23:15 php postfix/master[1298]: terminating on signal 15
devilbox-php-1    | 2023-09-27 11:23:17,529 INFO stopped: postfix (exit status 0)
devilbox-php-1    | 2023-09-27 11:23:18,558 INFO stopped: php-fpm (exit status 0)
devilbox-php-1    | 2023-09-27 11:23:18,558 INFO waiting for rsyslogd to die
devilbox-php-1    | 2023-09-27 11:23:18,561 INFO stopped: rsyslogd (exit status 0)
devilbox-php-1    | [INFO] Debug level: 2
devilbox-php-1    | [INFO] Changing user 'devilbox' uid to: 501
devilbox-php-1    | root $ usermod -u 501 devilbox 2>/dev/null
devilbox-php-1    | usermod: no changes
devilbox-php-1    | root $ chown -R devilbox /home/devilbox 2>/dev/null || true
devilbox-php-1    | root $ chown -R devilbox /var/lib/php/session
devilbox-php-1    | root $ chown -R devilbox /var/lib/php/wsdlcache
devilbox-php-1    | root $ chown -R devilbox /var/spool/mail/devilbox
devilbox-php-1    | root $ chown -R devilbox /etc/supervisor/custom.d
devilbox-php-1    | [INFO] Changing group 'devilbox' gid to: 20
devilbox-php-1    | root $ groupmod -g 20 devilbox 2>/dev/null
devilbox-php-1    | root $ chown -R :devilbox /home/devilbox 2>/dev/null || true
devilbox-php-1    | root $ chown -R :devilbox /var/lib/php/session
devilbox-php-1    | root $ chown -R :devilbox /var/lib/php/wsdlcache
devilbox-php-1    | root $ chown -R :devilbox /var/spool/mail/devilbox
devilbox-php-1    | root $ chown -R :devilbox /etc/supervisor/custom.d
devilbox-php-1    | [INFO] Setting container timezone to: UTC
devilbox-php-1    | root $ ln -sf /usr/share/zoneinfo/UTC /etc/localtime
devilbox-php-1    | [INFO] Setting PHP: timezone=UTC
devilbox-php-1    | root $ echo 'date.timezone = UTC' > /usr/local/etc/php/conf.d/devilbox-runtime-timezone.ini
devilbox-php-1    | [INFO] Docker date set to: Wed Sep 27 11:23:32 UTC 2023
devilbox-php-1    | [INFO] $DOCKER_LOGS set to 0. Logging to files under: /var/log/php
devilbox-php-1    | [INFO] Make sure to mount this directory in order to view logs
devilbox-php-1    | root $ chown -R devilbox:devilbox /var/log/php
devilbox-php-1    | root $ chmod 0755 /var/log/php
devilbox-php-1    | [INFO] $ENABLE_MAIL set to 2. Enabling postfix catch-all
devilbox-php-1    | root $ chown devilbox:devilbox /var/log/php
devilbox-php-1    | root $ chown devilbox:devilbox /var/log/php/mail.log
devilbox-php-1    | root $ chmod 0644 /var/log/php/mail.log
devilbox-php-1    | root $ chmod 0644 /var/mail/devilbox
devilbox-php-1    | root $ chown devilbox:devilbox /var/mail
devilbox-php-1    | root $ chown devilbox:devilbox /var/mail/devilbox
devilbox-php-1    | root $ postconf -e 'strict_mailbox_ownership=no'
devilbox-bind-1   | [INFO] Adding custom DNS forwarder: 8.8.8.8,8.8.4.4
devilbox-bind-1   | 
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | /etc/bind/named.conf.options
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | options {
devilbox-php-1    | root $ postconf -e 'inet_protocols=ipv4'
devilbox-php-1    | root $ postconf -e 'myhostname=localhost'
devilbox-php-1    | root $ postconf -e 'virtual_alias_maps=pcre:/etc/postfix/virtual'
devilbox-php-1    | root $ echo '/.*@.*/ devilbox' >> /etc/postfix/virtual
devilbox-php-1    | root $ newaliases
devilbox-php-1    | [INFO] Forwarding httpd:80 to 127.0.0.1:80 inside this docker.
devilbox-php-1    | [INFO] Forwarding httpd:443 to 127.0.0.1:443 inside this docker.
devilbox-php-1    | [INFO] Forwarding mysql:3306 to 127.0.0.1:3306 inside this docker.
devilbox-php-1    | [INFO] Forwarding pgsql:5432 to 127.0.0.1:5432 inside this docker.
devilbox-php-1    | [INFO] Forwarding redis:6379 to 127.0.0.1:6379 inside this docker.
devilbox-php-1    | [INFO] Forwarding memcd:11211 to 127.0.0.1:11211 inside this docker.
devilbox-php-1    | [INFO] Forwarding mongo:27017 to 127.0.0.1:27017 inside this docker.
devilbox-php-1    | [INFO] Enabling 'socat-80-httpd-80' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'socat-443-httpd-443' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'socat-3306-mysql-3306' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'socat-5432-pgsql-5432' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'socat-6379-redis-6379' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'socat-11211-memcd-11211' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'socat-27017-mongo-27017' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'rsyslogd' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'postfix' to be started by supervisord
devilbox-php-1    | [INFO] Enabling 'php-fpm' to be started by supervisord
devilbox-php-1    | root $ find /usr/local/etc/php/conf.d -type f -iname '*.ini' -exec chmod 0644 "{}" \;
devilbox-php-1    | root $ find /usr/local/etc/php-fpm.d -type f -iname '*.conf' -exec chmod 0644 "{}" \;
devilbox-php-1    | [INFO] $ENABLE_MODULES set, but empty. Not enabling any PHP modules.
devilbox-php-1    | [INFO] Disabling the following PHP modules: oci8,PDO_OCI,pdo_sqlsrv,sqlsrv,rdkafka,swoole,psr,phalcon
devilbox-php-1    | root $ chown devilbox:devilbox /etc/mysqldump-secure.conf
devilbox-php-1    | root $ chown devilbox:devilbox /etc/mysqldump-secure.cnf
devilbox-php-1    | root $ chown devilbox:devilbox /var/log/mysqldump-secure.log
devilbox-php-1    | root $ chown devilbox:devilbox /shared/backups/mysql
devilbox-php-1    | [INFO] $MYSQL_BACKUP_USER set for mysqldump-secure. Changing to 'root'
devilbox-php-1    | root $ sed -i'' 's/^user.*/user = root/g' /etc/mysqldump-secure.cnf
devilbox-php-1    | [INFO] $MYSQL_BACKUP_PASS set for mysqldump-secure. Changing to '******'
devilbox-php-1    | root $ perl -pi -e 's/^password.*/password = /g' /etc/mysqldump-secure.cnf
devilbox-php-1    | [INFO] $MYSQL_BACKUP_HOST set for mysqldump-secure. Changing to 'mysql'
devilbox-php-1    | root $ sed -i'' 's/^host.*/host = mysql/g' /etc/mysqldump-secure.cnf
devilbox-php-1    | root $ chown devilbox:devilbox /shared/backups
devilbox-php-1    | root $ chown devilbox:devilbox /shared/httpd
devilbox-php-1    | root $ chmod 0755 /shared/backups
devilbox-php-1    | root $ chmod 0755 /shared/httpd
devilbox-php-1    | root $ cp /ca/devilbox-ca.crt /usr/local/share/ca-certificates/devilbox-devilbox-ca.crt
devilbox-php-1    | root $ update-ca-certificates
devilbox-php-1    | Updating certificates in /etc/ssl/certs...
devilbox-php-1    | 0 added, 0 removed; done.
devilbox-php-1    | Running hooks in /etc/ca-certificates/update.d...
devilbox-php-1    | done.
devilbox-php-1    | [INFO] Starting supervisord
devilbox-php-1    | 2023-09-27 11:23:34,988 WARN No file matches via include "/etc/supervisor/custom.d/*.conf"
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/php-fpm.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/postfix.conf" during parsing
devilbox-bind-1   |     directory "/var/cache/bind";
devilbox-bind-1   |     dnssec-validation no;
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/rsyslogd.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-11211-memcd-11211.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-27017-mongo-27017.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-3306-mysql-3306.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-443-httpd-443.conf" during parsing
devilbox-bind-1   |     auth-nxdomain no;    # conform to RFC1035
devilbox-bind-1   |     listen-on-v6 { any; };
devilbox-bind-1   |     max-cache-size 90%;
devilbox-bind-1   |     response-policy { zone "rpz"; };
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-5432-pgsql-5432.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-6379-redis-6379.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Included extra file "/etc/supervisor/conf.d/socat-80-httpd-80.conf" during parsing
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO Set uid to user 0 succeeded
devilbox-php-1    | 2023-09-27 11:23:34,989 INFO supervisord started with pid 1
devilbox-php-1    | 2023-09-27 11:23:35,997 INFO spawned: 'rsyslogd' with pid 1199
devilbox-php-1    | 2023-09-27 11:23:36,001 INFO spawned: 'php-fpm' with pid 1200
devilbox-php-1    | 2023-09-27 11:23:36,006 INFO spawned: 'postfix' with pid 1201
devilbox-php-1    | 2023-09-27 11:23:36,010 INFO spawned: 'socat-11211-memcd-11211' with pid 1202
devilbox-bind-1   |     forwarders {
devilbox-bind-1   |         8.8.8.8;
devilbox-bind-1   |         8.8.4.4;
devilbox-bind-1   |     };
devilbox-bind-1   | };
devilbox-bind-1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devilbox-bind-1   | 
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | /etc/bind/custom/conf/rpz.conf
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | zone "rpz" IN {
devilbox-bind-1   |     type master;
devilbox-bind-1   |     allow-transfer { any; };
devilbox-bind-1   |     allow-update { any; };
devilbox-bind-1   |     file "/etc/bind/custom/zone/rpz";
devilbox-bind-1   | };
devilbox-bind-1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devilbox-bind-1   | 
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | /etc/bind/custom/zone/rpz
devilbox-bind-1   | --------------------------------------------------------------------------------
devilbox-bind-1   | $TTL 3600
devilbox-bind-1   | @                               IN   SOA     bind. admin.bind. (
devilbox-php-1    | 2023-09-27 11:23:36,013 INFO spawned: 'socat-27017-mongo-27017' with pid 1205
devilbox-php-1    | 2023-09-27 11:23:36,015 INFO spawned: 'socat-3306-mysql-3306' with pid 1206
devilbox-php-1    | 2023-09-27 11:23:36,019 INFO spawned: 'socat-443-httpd-443' with pid 1208
devilbox-php-1    | 2023-09-27 11:23:36,022 INFO spawned: 'socat-5432-pgsql-5432' with pid 1209
devilbox-php-1    | 2023-09-27 11:23:36,028 INFO spawned: 'socat-6379-redis-6379' with pid 1210
devilbox-php-1    | 2023-09-27 11:23:36,039 INFO spawned: 'socat-80-httpd-80' with pid 1211
devilbox-php-1    | 2023-09-27 11:23:37,083 INFO success: rsyslogd entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-bind-1   |                                              1695813812     ; Serial number
devilbox-bind-1   |                                              1200           ; Refresh time
devilbox-bind-1   |                                              180            ; Retry time
devilbox-bind-1   |                                              1209600        ; Expiry time
devilbox-bind-1   |                                              10800          ; Negative Cache TTL
devilbox-bind-1   | )
devilbox-php-1    | 2023-09-27 11:23:37,083 INFO success: php-fpm entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,083 INFO success: postfix entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-bind-1   | 
devilbox-bind-1   | ; NS Records
devilbox-bind-1   |                                 IN   NS      bind.
devilbox-bind-1   | 
devilbox-bind-1   | ; Custom Records
devilbox-bind-1   | *.dvl.to                        IN   A       127.0.0.1
devilbox-bind-1   | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
devilbox-php-1    | 2023-09-27 11:23:37,083 INFO success: socat-11211-memcd-11211 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,083 INFO success: socat-27017-mongo-27017 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,083 INFO success: socat-3306-mysql-3306 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,084 INFO success: socat-443-httpd-443 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,084 INFO success: socat-5432-pgsql-5432 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,084 INFO success: socat-6379-redis-6379 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-php-1    | 2023-09-27 11:23:37,084 INFO success: socat-80-httpd-80 entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
devilbox-bind-1   | [INFO] Starting BIND 9.18.16

(Optional) Additional information

No response

vikas5914 commented 1 year ago

@thoni56 Have you done this part: https://devilbox.readthedocs.io/en/latest/howto/dns/add-custom-dns-server-on-mac.html#howto-add-custom-dns-server-on-mac

thoni56 commented 1 year ago

@vikas5914 Yes, of course. Added 127.0.0.1 first and then I get the nslookup above, which clearly states that it tried 127.0.0.1 but failed and continued to the next server. When I remove my ordinary server, no name lookup works, so no internet access or nothing.

My guess is that the built in DNS server does not handle the requests that are sent from modern MacOS/nslookup correctly or completely. Is there a way that can monitor that traffic and be explicit about what is really sent to the Devilbox DNS?

thoni56 commented 1 year ago

Also this is the output of dig:

MacBook-Pro-3(arm64):~ $ dig @127.0.0.1 events-copy.dvl.to

; <<>> DiG 9.10.6 <<>> @127.0.0.1 events-copy.dvl.to
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: REFUSED, id: 28161
;; flags: qr rd; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1
;; WARNING: recursion requested but not available

;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 1232
; OPT=15: 00 12 ("..")
;; QUESTION SECTION:
;events-copy.dvl.to.        IN  A

;; Query time: 2 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Thu Sep 28 14:18:48 CEST 2023
;; MSG SIZE  rcvd: 53

It clearly shows that a recursive lookup was requested from the Devilbox DNS server, but was refused.

vikas5914 commented 1 year ago

@thoni56 Can you show that Port 53 is in use/LISTEN? Something like netstat -an | grep -E 'LISTEN\s*$' (I don't if this work in MAC)

thoni56 commented 1 year ago

When Devilbox is not running there are no other processes on port 53:

MacBook-Pro-3(arm64):~ $ netstat -an | grep -E 'LISTEN\s*$'
tcp4       0      0  127.0.0.1.51825        *.*                    LISTEN     
tcp6       0      0  *.51816                *.*                    LISTEN     
tcp4       0      0  *.51816                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.631          *.*                    LISTEN     
tcp6       0      0  ::1.631                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.9000         *.*                    LISTEN     
tcp4       0      0  127.0.0.1.49175        *.*                    LISTEN     
tcp6       0      0  *.5000                 *.*                    LISTEN     
tcp4       0      0  *.5000                 *.*                    LISTEN     
tcp6       0      0  *.7000                 *.*                    LISTEN     
tcp4       0      0  *.7000                 *.*                    LISTEN     
tcp4       0      0  127.0.0.1.11000        *.*                    LISTEN     
tcp4       0      0  127.0.0.1.33334        *.*                    LISTEN     
tcp4       0      0  127.0.0.1.33333        *.*                    LISTEN     
tcp4       0      0  *.88                   *.*                    LISTEN     
tcp6       0      0  *.88                   *.*                    LISTEN     
tcp4       0      0  *.445                  *.*                    LISTEN     
tcp6       0      0  *.445                  *.*                    LISTEN     
tcp4       0      0  *.5900                 *.*                    LISTEN     
tcp6       0      0  *.5900                 *.*                    LISTEN     
tcp4       0      0  *.22                   *.*                    LISTEN     
tcp6       0      0  *.22                   *.*                    LISTEN     

With Devilbox:

MacBook-Pro-3(arm64):devilbox $ docker compose up -d bind
[+] Running 1/0
 ✔ Container devilbox-bind-1  Running                                                               0.0s 
MacBook-Pro-3(arm64):devilbox $ netstat -an | grep -E 'LISTEN\s*$'
tcp46      0      0  *.53                   *.*                    LISTEN     
tcp4       0      0  127.0.0.1.51825        *.*                    LISTEN     
tcp6       0      0  *.51816                *.*                    LISTEN     
tcp4       0      0  *.51816                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.631          *.*                    LISTEN     
tcp6       0      0  ::1.631                *.*                    LISTEN     
tcp4       0      0  127.0.0.1.9000         *.*                    LISTEN     
tcp4       0      0  127.0.0.1.49175        *.*                    LISTEN     
tcp6       0      0  *.5000                 *.*                    LISTEN     
tcp4       0      0  *.5000                 *.*                    LISTEN     
tcp6       0      0  *.7000                 *.*                    LISTEN     
tcp4       0      0  *.7000                 *.*                    LISTEN     
tcp4       0      0  127.0.0.1.11000        *.*                    LISTEN     
tcp4       0      0  127.0.0.1.33334        *.*                    LISTEN     
tcp4       0      0  127.0.0.1.33333        *.*                    LISTEN     
tcp4       0      0  *.88                   *.*                    LISTEN     
tcp6       0      0  *.88                   *.*                    LISTEN     
tcp4       0      0  *.445                  *.*                    LISTEN     
tcp6       0      0  *.445                  *.*                    LISTEN     
tcp4       0      0  *.5900                 *.*                    LISTEN     
tcp6       0      0  *.5900                 *.*                    LISTEN     
tcp4       0      0  *.22                   *.*                    LISTEN     
tcp6       0      0  *.22                   *.*                    LISTEN     
vikas5914 commented 1 year ago

@thoni56 Does the DNS work when Devilbox is running with a bind container?

thoni56 commented 1 year ago

@vikas5914 What do you mean? It always starts with a bind container, doesn't it? At least there is always one in the Docker desktop, even when I start it with "docker compose up -d httpd php mysql".

I'll try and explicitly add a bind container... Nope, no difference. And yes, it always starts the bind container, which is kinda necessary...

And since the Devilbox DNS answers with a REFUSE (as I showed above) I must be alive. And I can also ping the virtual host inside Devilbox. So there is something wrong with DNS requests coming from the host, that either gets distorted or misinterpreted on its way from the host to the Devilbox DNS process.

vikas5914 commented 1 year ago

@thoni56 It Looks like something is wrong with the Bind. Also with dvl.to you don't need AutoDNS. But the domain DNS is broken.

I suggest using dbox.dev and disable AutoDNS. (set to some other port )

thoni56 commented 1 year ago

So, I have misunderstood the basis of AutoDNS in that I don't need that at all to reach any subdomain of dvl.to? Where in the documentation is that described? I got the impression that in order to avoid editing the /etc/hosts file you need to enable AutoDNS, but that is not true?

Also the documentation explicitly recommends not using .dev since Google has registered that. So what is up with that?

And what exactly did you mean by "using dbox.dev"? Should I change the TLD in the .env file to that? And if I do, will lookups automatically route to 127.0.0.1? And is how is this suggestion connected with "with dvl.to you don't need AutoDNS"? Is it instead of dvl.to?

vikas5914 commented 1 year ago

@thoni56 For example, if you use a TLD or Domain that does not exist (Like .local or .wip or .asdsadasd), you need Auto DNS to point those to 127.0.0.1. The Documentation uses .loc as an example. You will need Auto DNS to point any domain or subdomain *.loc to 127.0.0.1

Both dbox.dev and dvl.to are real domains bought by people (dvl.to is owned by the project owner), and their subdomains are points to 127.0.0.1 by their name server. dvl.to was working fine until last month. It downed, and it's not working. So, a community member bought dbox.dev and did this point thing.

Where in the documentation is that described? => Its mentioned in the .env file. Check see the comment above TLD_SUFFIX in .env file. The documentation dos not mention or use dvl.to anywhere. (https://devilbox.readthedocs.io/en/latest/search.html?q=dvl.to&check_keywords=yes&area=default)

And what exactly did you mean by "using dbox.dev" => use dbox.dev as TLD_SUFFIX . So the URL will <project_name>.dbox.dev and automatically point to 127.0.0.1 without Auto DNS.

thoni56 commented 1 year ago

Thanks, @vikas5914, for that explanation. So there are actually two things going on here:

  1. If your web site/app does not have particular requirements about which domain it runs on, and you can find a domain that points all subdomains to 127.0.0.1, then you don't need AutoDNS. And there are actually quite a few of those domains out there, see https://stackoverflow.com/questions/1562954/public-wildcard-domain-name-to-resolve-to-127-0-0-1 for some domains to try, and also dvl.to (not working right now), dbox.dev as you mentioned. I successfully tried with localhost.tv.
  2. Devilbox DNS refusal on recursive lookups. I won't dig into this deeper since it is not affecting my progress. But someone should probably verify that it still works as expected. My problem might very likely be me misunderstanding or misconfiguring...

Anyway, thanks for the help.