diff --git a/community-containers/stalwart/readme.md b/community-containers/stalwart/readme.md index 80c2c2fd..747f5335 100644 --- a/community-containers/stalwart/readme.md +++ b/community-containers/stalwart/readme.md @@ -1,3 +1,12 @@ +> [!WARNING] +> Nextcloud Community Containers are beta features. +> The Stalwart server is under development. +> +> The stability of these two services is not guaranteed. +> Do not use this feature as a main mail server without a redundancy system and without knowledge. +> +> To learn or use as a secondary server enjoy it and please report bugs at [marcoambrosini/aio-stalwart](https://github.com/marcoambrosini/aio-stalwart/issues). + ## Stalwart mail server This container bundles stalwart mail server and auto-configures it for you. @@ -7,9 +16,8 @@ This container bundles stalwart mail server and auto-configures it for you. - You need to configure a reverse proxy in order to run this container since stalwart needs a dedicated (sub)domain! For that, you might have a look at https://github.com/nextcloud/all-in-one/tree/main/community-containers/caddy. - Currently, only `mail.$NC_DOMAIN` is supported as subdomain! So if Nextcloud is using `your-domain.com`, Stalwart will use `mail.your-domain.com`. - The data of Stalwart will be automatically included in AIOs backup solution! -- After adding and starting the container, you need to run `sudo docker exec -it nextcloud-aio-stalwart configure.sh` and follow https://stalw.art/docs/install/docker/#choose-where-to-store-your-data (1. choose `Local disk using Maildir`, 2. choose `No, create a new directory for me` (or select LDAP if you have an LDAP server), 3. type in your `$NC_DOMAIN` as `domain name` and `mail.$NC_DOMAIN` as `server hostname`. 4. add `DKIM, SPF and DMARC` as advised to your DNS config, 5. Take note of the administrator credentials, 6. Now the config script should exit and automatically restart the container and enable your config. -- See https://stalw.art/docs/directory/types/memory/ how you can easily create new user accounts. (Alternatively see https://stalw.art/docs/directory/types/ldap if you have an LDAP server). You can edit the config file with `sudo docker exec -it nextcloud-aio-stalwart vi /opt/stalwart-mail/etc/config.toml`. Also, you might want to enable logging to stdout so that you can see the stalwart logs in your container logs via `sudo docker exec -it nextcloud-aio-stalwart vi /opt/stalwart-mail/etc/common/tracing.toml` (you need to restart the container afterwards with `sudo docker restart nextcloud-aio-stalwart` in order to apply the settings). -- Afterwards, you can visit the basic admin settings in `https://your-nc-domain.com/settings/admin` and add the your mail server for outgoing mails there. +- After adding and starting the container, you need to run `docker logs nextcloud-aio-stalwart` to obtain the system administrator account and password. With this information, you can log in to the web interface at `https://mail.your-domain.com/login` +- See https://stalw.art/docs/install/docker/ for next steps. - Additionally, you might want to install and configure [snappymail](https://apps.nextcloud.com/apps/snappymail) or [mail](https://apps.nextcloud.com/apps/mail) inside Nextcloud in order to use your mail accounts for sending and retrieving mails. - See https://stalw.art/docs/faq for further faq and docs on the project - See https://github.com/nextcloud/all-in-one/tree/main/community-containers#community-containers how to add it to the AIO stack diff --git a/community-containers/stalwart/stalwart.json b/community-containers/stalwart/stalwart.json index d44dde5b..c1aa3fd5 100644 --- a/community-containers/stalwart/stalwart.json +++ b/community-containers/stalwart/stalwart.json @@ -5,8 +5,8 @@ "display_name": "Stalwart", "documentation": "https://github.com/nextcloud/all-in-one/tree/main/community-containers/stalwart", "image": "marcoambrosini/aio-stalwart", - "image_tag": "v1", - "internal_port": "587", + "image_tag": "v2", + "internal_port": "10003", "restart": "unless-stopped", "ports": [ { @@ -38,6 +38,11 @@ "ip_binding": "", "port_number": "4190", "protocol": "tcp" + }, + { + "ip_binding": "%APACHE_IP_BINDING%", + "port_number": "10003", + "protocol": "tcp" } ], "environment": [ diff --git a/community-containers/stalwart/upgrading.md b/community-containers/stalwart/upgrading.md new file mode 100644 index 00000000..958f4355 --- /dev/null +++ b/community-containers/stalwart/upgrading.md @@ -0,0 +1,29 @@ +> [!NOTE] +> Unless the starting script tells you, you have no action to do to update. + +# UPGRADING + +During a major server update, this message will be displayed: + +> Your data is in an old format. +> +> Make a backup and see https://github.com/nextcloud/all-in-one/blob/main/community-containers/stalwart/upgrading.md +> +> To avoid any loss of data, Stalwart will not launch. + +If there is no update, delete the `/opt/stalwart-mail/aio.lock` file from the container. Beware of data loss. + +See https://github.com/stalwartlabs/mail-server/blob/main/UPGRADING.md + +> [!CAUTION] +> Before each update don't forget to make a backup. + +## Upgrading from 0.7.x to 0.8.x + +Before upgrading, do a backup of your data ! + +```bash +sudo docker run --rm -v nextcloud_aio_stalwart:/opt/stalwart-mail -it --entrypoint /usr/local/bin/stalwart-mail stalwartlabs/mail-server:v0.7.3 --config /opt/stalwart-mail/etc/config.toml --export /opt/stalwart-mail/export +sudo docker run --rm -v nextcloud_aio_stalwart:/opt/stalwart-mail -it --entrypoint /usr/local/bin/stalwart-mail stalwartlabs/mail-server:v0.8.0 --config /opt/stalwart-mail/etc/config.toml --import /opt/stalwart-mail/export +sudo docker run --rm -v nextcloud_aio_stalwart:/opt/stalwart-mail -it --entrypoint /bin/rm alpine /opt/stalwart-mail/aio.lock +```