2018-10-17 14:38:51 +02:00
{% call macros.panel("info", "Step 4 - expose Mailu to the world") %}
2018-03-10 15:05:49 +02:00
< p > A mail server must be exposed to the world to receive emails, send emails,
and let users access their mailboxes. Mailu has some flexibility in the way
you expose it to the world.< / p >
< p > Among Mailu services, the < em > front< / em > server is the one accepting connections,
be it directly from the outside world, through a reverse proxy or in any
complex configuration that you might want to setup. It needs to listen on some
IP addresses in order to expose its public services. You must at least setup
an IPv4 or an IPv6 address if you wish to access Mailu.< / p >
< p > < span class = "label label-warning" > Warning< / span > You must use specific addresses, please
2019-01-16 21:01:09 +02:00
avoid generic all-interfaces addresses like < code > 0.0.0.0< / code > or < code > ::< / code > .
< a href = "https://mailu.io/{{ version }}/compose/setup.html#bind-address" > How to find these addresses.< / a > < / p >
2018-03-10 15:05:49 +02:00
< div class = "form-group" >
< label > IPv4 listen address< / label >
2018-10-17 14:11:55 +02:00
<!-- Validates IPv4 address -->
2018-10-17 16:54:37 +02:00
< input class = "form-control" type = "text" name = "bind4" value = "127.0.0.1"
2018-10-17 14:11:55 +02:00
pattern="^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$">
2019-01-17 16:24:52 +02:00
< label > Subnet of the docker network. This should not conflict with any networks to which your system is connected. (Internal and external!)< / label >
< input class = "form-control" type = "text" name = "subnet" required pattern = "^([0-9]{1,3}\.){3}[0-9]{1,3}(\/([0-9]|[1-2][0-9]|3[0-2]))$"
value="192.168.203.0/24">
2018-03-10 15:05:49 +02:00
< / div >
2019-01-17 16:24:52 +02:00
< div class = "form-check form-check-inline" >
< label class = "form-check-label" >
< input class = "form-check-input" type = "checkbox" name = "ipv6_enabled" value = "true" id = "enable_ipv6" >
Enable IPv6
< / label >
< / div >
< div class = "form-group" id = "ipv6" style = "display: none" >
2019-01-17 17:56:00 +02:00
< p > < span class = "label label-danger" > Read this:< / span > Docker currently does not expose the IPv6 ports properly, as it does not interface with < code > ip6tables< / code > . Be sure to read our < a href = "https://mailu.io/{{ version }}/faq.html#how-to-make-ipv6-work" > FAQ section< / a > !< / p >
2018-03-10 15:05:49 +02:00
< label > IPv6 listen address< / label >
2018-10-17 14:11:55 +02:00
<!-- Validates IPv6 address -->
< input class = "form-control" type = "text" name = "bind6" value = "::1"
2018-10-17 16:54:37 +02:00
pattern="^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*(\/([0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-8]))?$">
2019-01-17 16:24:52 +02:00
< label > Subnet of the docker network. This should not conflict with any networks to which your system is connected. (Internal and external!)< / label >
< input class = "form-control" type = "text" name = "subnet6" required value = "{{ subnet6 }}:beef::/64" >
2018-03-10 15:05:49 +02:00
< / div >
2019-01-16 21:01:09 +02:00
< p > The unbound resolver enables Mailu to do DNSsec verification, DNS root lookups and caching. This also helps the antispam service not to get blocked by the public or ISP DNS servers.< / p >
2018-10-23 14:42:19 +02:00
< div class = "form-check form-check-inline" >
< label class = "form-check-label" >
< input class = "form-check-input" type = "checkbox" name = "resolver_enabled" value = "true" >
Enable unbound resolver
< / label >
< / div >
2018-04-22 16:09:26 +02:00
< p > You server will be available under a main hostname but may expose multiple public
hostnames. Every e-mail domain that points to this server must have one of the
2019-07-29 05:03:32 +02:00
hostnames in its < code > MX< / code > record. Hostnames must be comma-separated. If you're having
2019-05-07 20:19:06 +02:00
trouble accessing your admin interface, make sure it is the first entry here (and possibly the
same as your < code > DOMAIN< / code > entry from earlier.< / p >
2018-04-22 16:09:26 +02:00
< div class = "form-group" >
< label > Public hostnames< / label >
2018-10-17 14:11:55 +02:00
<!-- Validates hostname or list of hostnames -->
< input class = "form-control" type = "text" name = "hostnames" placeholder = "my.host.name,other.host.name" multiple required
pattern="^(?:(?:\w+(?:-+\w+)*\.)+[a-z]+)*(?:,(?:(?:\w+(?:-+\w+)*\.)+[a-z]+)\s*)*$">
2018-04-22 16:09:26 +02:00
< / div >
2018-03-10 15:05:49 +02:00
{% endcall %}