Docksal has a built-in reverse proxy container that adds support for running multiple projects or using multiple (arbitrary domains).
The container binds to 192.168.64.100:80
and routes web requests based on the host name.
DNS resolution and routing for *.docksal
domains is automatically configured.
To find the current project’s virtual host name run fin config | grep '^VIRTUAL_HOST'
.
$ fin config | grep '^VIRTUAL_HOST'
VIRTUAL_HOST: myproject.docksal
VIRTUAL_HOST_ALIASES: *.myproject.docksal
By default, the project domain value (myproject.docksal
) is derived from the project folder name sans spaces and dashes.
Also, wildcard sub-domain aliases (*.myproject.docksal
) are added automatically.
The default project domain can be set/overridden as follows:
fin config set VIRTUAL_HOST=custom-domain.docksal
Check configuration changes:
$ fin config | grep '^VIRTUAL_HOST'
VIRTUAL_HOST: custom-domain.docksal
VIRTUAL_HOST_ALIASES: *.custom-domain.docksal
Apply configuration changes with fin project start
(fin p start
for short).
Note: Use a single domain in VIRTUAL_HOST
. Wildcards are added automatically. For multiple domains, read on.
Note: Use fin vhosts
to confirm virtual host configuration was applied in vhost-proxy
.
A completely custom domain(s) can be assigned by extending the io.docksal.virtual-host
label of the web
container in
either docksal-local.yml
or docksal.yml
file in the project.
version: "2.1"
services:
web:
labels:
...
- io.docksal.virtual-host=example.com,mydomain.com,*.mydomain.com
...
Note: io.docksal.virtual-host=${VIRTUAL_HOST},*.${VIRTUAL_HOST},*.${VIRTUAL_HOST}.*
is the default value.
Apply configuration changes with fin project start
(fin p start
for short).
Note: non .docksal
domains (e.g., example.com
) will not be resolved automatically.
You can use fin hosts command to add and manage additional domain names via the system’s hosts
file.
See fin help hosts
.
Note: Use fin vhosts
to confirm virtual host configuration was applied in vhost-proxy
.