Some configurations in the release are backwards incompatible with what was working before.
With 0.4.0 version, we added Port mapping from host's Port 8000/8080 to mailman-web container's port 8000/8080. Make sure you have this in your docker-compose.yaml
mailman-web:
ports:
- "127.0.0.1:8000:8000" # HTTP
- "127.0.0.1:8080:8080" # uwsgi
You should update your web server to proxy 127.0.0.1:8000.
Update the Nginx configuration to look like this, notice the
actual URL for proxy_pass
is the only thing that has changed
along with some options like uwsgi_read_timeout
and include uwsgi_params
that have been removed from the previous version.
location / {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Forwarded-For $remote_addr;
}
For other web servers like Apache2, update the URL accordingly.
Note that if you are using uwsgi_pass
instead of proxy_pass
then you should update the URL accordingly to https://127.0.0.1:8080
.
MTA configuration needs updating to ensure that all IPs from the
172.19.199.0/24
subnet is added to mynetworks
in Postfix configs.
Please verify that the network configuration generated by the containers look like this:
$ docker exec mailman-core cat /etc/mailman.cfg
# This file is autogenerated at container startup.
[database]
class: mailman.database.postgresql.PostgreSQLDatabase
url: postgres://mailman:mailmanpass@database/mailmandb
[runner.retry]
sleep_time: 10s
[webservice]
hostname: 172.19.199.3
port: 8001
admin_user: restadmin
admin_pass: restpass
configuration: /etc/gunicorn.cfg
[mta]
incoming: mailman.mta.postfix.LMTP
outgoing: mailman.mta.deliver.deliver
lmtp_host: 172.19.199.3
lmtp_port: 8024
smtp_host: 172.19.199.1
smtp_port: 25
configuration: /etc/postfix-mailman.cfg
[archiver.hyperkitty]
class: mailman_hyperkitty.Archiver
enable: yes
configuration: /etc/mailman-hyperkitty.cfg
Note that lmtp_host and webserver hostname can be different than before since new containers don't have static IP addresses. They are automatically parsed from the output of "ip route" command from inside mailman-core container.
You can verify that the IP address of the containers by running the following commands, note that the output can be different and it is fine if that is the case.
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mailman-core
172.19.199.3
$ docker inspect -f '{{range.NetworkSettings.Networks}}{{.IPAddress}}{{end}}' mailman-web
172.19.199.4
- The MM_HOSTNAME now defaults to output of
hostname -i
instead ofmailman-core
. This is the hostname Core binds to for Webservice. - Added pymysql to the image to use MySQL as database.
- The default settings for using SQLITE are now more sane.
- Postfix's transport maps are generated at the container startup now even when there is no lists exist.
- The default search_index for whoosh now exists on persistent storage at
/opt/mailman-web-data
- Move to using Alpine instead of Debian for this image, python2.7:alpine-3.6 image is now the base image
- Django compressor is now using
sassc
from alpine repo. - Default value of SECRET_KEY is now removed. It is MUST to set SECRET_KEY environment variable to run this image now.
- If a SERVE_FROM_DOMAIN environment variable is defined, the default Django's example.com site is renamed to this domain. The SITE_ID remains same so there is no change required to serve this domain.
- If MAILMAN_ADMIN_USER and MAILMAN_ADMIN_EMAIL environment variables are defined a Django Superuser is created by default. The password for this user would have to be reset on the first login.
- Fix cron configuration which would run them in wrong order.
- Removed facebook as default social auth provider in the settings.py
- Uwsgi now listens on port 8080 for uwsgi protocol and 8000 for http protocol.
- Threads are enabled by default in the uwsgi configuration now.
- Hyperkitty updated to v1.1.1