{% import "macros.html" as macros %} {% call macros.panel("info", "Step 1 - Download your configuration files") %}
Docker Stack expects a project file, named docker-compose.yml
in a project directory. First create your project directory.
mkdir -p /{{ root }}/{redis,certs,data,dkim,mail,overrides/rspamd,overrides/nginx,filter,dav,webmail}
Then download the project file. A side configuration file makes it easier to read and check the configuration variables generated by the wizard.
cd {{ root }}
wget {{ url_for('.file', uid=uid, filepath='docker-compose.yml', _external=True) }}
wget {{ url_for('.file', uid=uid, filepath='mailu.env', _external=True) }}
We did not insert any malicious code on purpose in the configurations we distribute, but your download could have been intercepted, or our wizard website could have been compromised, so make sure you check the configuration files before going any further.
When you are done checking them, check them one last time.
{% endcall %} {% call macros.panel("info", "Step 3 - Deploy docker stack") %}To deploy the docker stack use the following commands. For more information about setting up docker swarm nodes read the docker documentation
cd {{ root }}
docker swarm init
docker stack deploy -c docker-compose.yml mailu
docker psdocker stack ps --no-trunc mailudocker stack rm mailudocker exec $(docker ps | grep admin | cut -d ' ' -f1) flask mailu admin {{ postmaster }} {{ domain }} PASSWORD
Login to the admin interface to change the password for a safe one, at {% if admin_enabled %} one of the hostnames {{ hostnames.split(',')[0] }}{{ admin_path }}. {% else %} http://127.0.0.1:8080/ui (only directly from the host running docker). If you run mailu on a remote server, and wish to access the admin interface via a SSH tunnel, you can create a port-forward from your local machine to your server like
ssh -L 127.0.0.1:8080:127.0.0.1:8080 <user>@<server>