# docker-compose up -d
[...]
Creating mailu_admin_1
Creating mailu_imap_1
Creating mailu_front_1 ... error
Creating mailu_webmail_1 ... done
ERROR: for front Cannot start service front: driver failed programming external connectivity on endpoint mailu_front_1 (65e3145d60ac3cd1a2368a2bd1b52c4d1f48a8148bc3a70ea8892111a5ee196a): Error starting userland proxy: listen tcp 0.0.0.0:995: bind: address already in use
Error starting userland proxy: listen tcp 0.0.0.0:995: bind: address already in use
It sounds like something is already listening on port 995 on your host. Could you run one of the following commands and provide the result?
ss -lntp
netstat -lntp
I don't have anything listen on this port, the error will show only as it changes.
BIND_ADDRESS4=127.0.0.1 to BIND_ADDRESS4=0.0.0.0
Hm. Maybe something to do with ipv6 bindings, I will check right away.
Docker treats 0.0.0.0 as "listen on all IPv4 and IPv6 interfaces"
Well, exactly like @HorayNarea mentioned, I just confirmed that setting BIND_ADDRESS4 to 0.0.0.0 will have Docker listen on all IPv6 and IPv4, which is incomptible with having it listen on ipv6 separately.
What now, how do I get started?
Instead of listening on all interfaced, simply fill in the public IP address of your mail server in BIND_ADDRESS4. Or, if you really wish to listen to all interfaces, remove the references to BIND_ADDRESS6 in your docker-compose.yml.
But that only works if the public IP address is available on your interface, e.g. not behind a NAT…
I'm running Mailu in exactly that environment and just removed all the BIND_ADDRESS6 port-bindings from docker-compose.yml
Most helpful comment
But that only works if the public IP address is available on your interface, e.g. not behind a NAT…
I'm running Mailu in exactly that environment and just removed all the
BIND_ADDRESS6port-bindings fromdocker-compose.yml