Merge branch 'master' into fix/prepend-checks-once
This commit is contained in:
commit
0a9ba6472e
|
@ -80,7 +80,7 @@ jobs:
|
||||||
|
|
||||||
# NOTE: AMD64 can build within 2 minutes
|
# NOTE: AMD64 can build within 2 minutes
|
||||||
- name: 'Build images'
|
- name: 'Build images'
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.14.0
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
# Build at least the AMD64 image (which runs against the test suite).
|
# Build at least the AMD64 image (which runs against the test suite).
|
||||||
|
|
|
@ -67,7 +67,7 @@ jobs:
|
||||||
password: ${{ secrets.GITHUB_TOKEN }}
|
password: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|
||||||
- name: 'Build and publish images'
|
- name: 'Build and publish images'
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.14.0
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
build-args: |
|
build-args: |
|
||||||
|
|
|
@ -43,7 +43,7 @@ jobs:
|
||||||
# Importing from the cache should create the image within approx 30 seconds:
|
# Importing from the cache should create the image within approx 30 seconds:
|
||||||
# NOTE: `qemu` step is not needed as we only test for AMD64.
|
# NOTE: `qemu` step is not needed as we only test for AMD64.
|
||||||
- name: 'Build AMD64 image from cache'
|
- name: 'Build AMD64 image from cache'
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.14.0
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
tags: mailserver-testing:ci
|
tags: mailserver-testing:ci
|
||||||
|
|
|
@ -42,7 +42,7 @@ jobs:
|
||||||
# Importing from the cache should create the image within approx 30 seconds:
|
# Importing from the cache should create the image within approx 30 seconds:
|
||||||
# NOTE: `qemu` step is not needed as we only test for AMD64.
|
# NOTE: `qemu` step is not needed as we only test for AMD64.
|
||||||
- name: 'Build AMD64 image from cache'
|
- name: 'Build AMD64 image from cache'
|
||||||
uses: docker/build-push-action@v6.13.0
|
uses: docker/build-push-action@v6.14.0
|
||||||
with:
|
with:
|
||||||
context: .
|
context: .
|
||||||
tags: mailserver-testing:ci
|
tags: mailserver-testing:ci
|
||||||
|
|
|
@ -2,10 +2,12 @@
|
||||||
|
|
||||||
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
||||||
|
|
||||||
## [Unreleased](https://github.com/docker-mailserver/docker-mailserver/compare/v14.0.0...HEAD)
|
## [Unreleased](https://github.com/docker-mailserver/docker-mailserver/compare/v15.0.0...HEAD)
|
||||||
|
|
||||||
> **Note**: Changes and additions listed here are contained in the `:edge` image tag. These changes may not be as stable as released changes.
|
> **Note**: Changes and additions listed here are contained in the `:edge` image tag. These changes may not be as stable as released changes.
|
||||||
|
|
||||||
|
## [v15.0.0](https://github.com/docker-mailserver/docker-mailserver/releases/tag/v15.0.0)
|
||||||
|
|
||||||
### Breaking
|
### Breaking
|
||||||
|
|
||||||
- **saslauthd** mechanism support via ENV `SASLAUTHD_MECHANISMS` with `pam`, `shadow`, `mysql` values has been removed. Only `ldap` and `rimap` remain supported ([#4259](https://github.com/docker-mailserver/docker-mailserver/pull/4259))
|
- **saslauthd** mechanism support via ENV `SASLAUTHD_MECHANISMS` with `pam`, `shadow`, `mysql` values has been removed. Only `ldap` and `rimap` remain supported ([#4259](https://github.com/docker-mailserver/docker-mailserver/pull/4259))
|
||||||
|
@ -17,6 +19,7 @@ All notable changes to this project will be documented in this file. The format
|
||||||
- This has been corrected to `/var/lib/getmail` (_if you have mounted a DMS State Volume to `/var/mail-state`, `/var/lib/getmail` will be symlinked to `/var/mail-state/lib-getmail`_).
|
- This has been corrected to `/var/lib/getmail` (_if you have mounted a DMS State Volume to `/var/mail-state`, `/var/lib/getmail` will be symlinked to `/var/mail-state/lib-getmail`_).
|
||||||
- To preserve this state when upgrading to DMS v15, **you must manually migrate `getmail/` from the _DMS Config Volume_ to `lib-getmail/` in the _DMS State Volume_.**
|
- To preserve this state when upgrading to DMS v15, **you must manually migrate `getmail/` from the _DMS Config Volume_ to `lib-getmail/` in the _DMS State Volume_.**
|
||||||
- `setup email delete <EMAIL ADDRESS>` now requires explicit confirmation if the mailbox data should be deleted ([#4365](https://github.com/docker-mailserver/docker-mailserver/pull/4365)).
|
- `setup email delete <EMAIL ADDRESS>` now requires explicit confirmation if the mailbox data should be deleted ([#4365](https://github.com/docker-mailserver/docker-mailserver/pull/4365)).
|
||||||
|
- **Rspamd:** Removed deprecated file path check (_DMS config volume: `./rspamd-modules.conf` => `./rspamd/custom-commands.conf`_) ([#4373](https://github.com/docker-mailserver/docker-mailserver/pull/4373))
|
||||||
|
|
||||||
### Added
|
### Added
|
||||||
|
|
||||||
|
@ -26,7 +29,7 @@ All notable changes to this project will be documented in this file. The format
|
||||||
|
|
||||||
### Updates
|
### Updates
|
||||||
|
|
||||||
**Internal:**
|
- **Internal:**
|
||||||
- **Removed `VERSION` file** from the repo. Releases of DMS prior to v13 (Nov 2023) would check this to detect new releases ([#3677](https://github.com/docker-mailserver/docker-mailserver/issues/3677), [#4321](https://github.com/docker-mailserver/docker-mailserver/pull/4321))
|
- **Removed `VERSION` file** from the repo. Releases of DMS prior to v13 (Nov 2023) would check this to detect new releases ([#3677](https://github.com/docker-mailserver/docker-mailserver/issues/3677), [#4321](https://github.com/docker-mailserver/docker-mailserver/pull/4321))
|
||||||
- During image build, ensure a secure connection when downloading the `fail2ban` package ([#4080](https://github.com/docker-mailserver/docker-mailserver/pull/4080))
|
- During image build, ensure a secure connection when downloading the `fail2ban` package ([#4080](https://github.com/docker-mailserver/docker-mailserver/pull/4080))
|
||||||
- **Documentation:**
|
- **Documentation:**
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
# Docs: https://docker-mailserver.github.io/docker-mailserver/v14.0/config/advanced/mail-fetchmail
|
# Docs: https://docker-mailserver.github.io/docker-mailserver/v15.0/config/advanced/mail-fetchmail
|
||||||
# Additional context, with CLI commands for verification:
|
# Additional context, with CLI commands for verification:
|
||||||
# https://github.com/orgs/docker-mailserver/discussions/3994#discussioncomment-9290570
|
# https://github.com/orgs/docker-mailserver/discussions/3994#discussioncomment-9290570
|
||||||
|
|
||||||
services:
|
services:
|
||||||
dms-fetch:
|
dms-fetch:
|
||||||
image: ghcr.io/docker-mailserver/docker-mailserver:latest # :14.0
|
image: ghcr.io/docker-mailserver/docker-mailserver:latest # :15.0
|
||||||
hostname: mail.example.test
|
hostname: mail.example.test
|
||||||
environment:
|
environment:
|
||||||
ENABLE_FETCHMAIL: 1
|
ENABLE_FETCHMAIL: 1
|
||||||
|
@ -26,7 +26,7 @@ services:
|
||||||
target: /tmp/docker-mailserver/fetchmail.cf
|
target: /tmp/docker-mailserver/fetchmail.cf
|
||||||
|
|
||||||
dms-remote:
|
dms-remote:
|
||||||
image: ghcr.io/docker-mailserver/docker-mailserver:latest # :14.0
|
image: ghcr.io/docker-mailserver/docker-mailserver:latest # :15.0
|
||||||
hostname: mail.remote.test
|
hostname: mail.remote.test
|
||||||
environment:
|
environment:
|
||||||
# Allows for us send a test mail easily by trusting any mail client run within this container (`swaks`):
|
# Allows for us send a test mail easily by trusting any mail client run within this container (`swaks`):
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
# Docs: https://docker-mailserver.github.io/docker-mailserver/v14.0/config/advanced/mail-forwarding/relay-hosts/
|
# Docs: https://docker-mailserver.github.io/docker-mailserver/v15.0/config/advanced/mail-forwarding/relay-hosts/
|
||||||
# Additional context, with CLI commands for verification:
|
# Additional context, with CLI commands for verification:
|
||||||
# https://github.com/docker-mailserver/docker-mailserver/issues/4136#issuecomment-2253693490
|
# https://github.com/docker-mailserver/docker-mailserver/issues/4136#issuecomment-2253693490
|
||||||
|
|
||||||
services:
|
services:
|
||||||
# This would represent your actual DMS container:
|
# This would represent your actual DMS container:
|
||||||
dms-sender:
|
dms-sender:
|
||||||
image: mailserver/docker-mailserver:latest # :14.0
|
image: mailserver/docker-mailserver:latest # :15.0
|
||||||
hostname: mail.example.test
|
hostname: mail.example.test
|
||||||
environment:
|
environment:
|
||||||
# All outbound mail will be relayed through this host
|
# All outbound mail will be relayed through this host
|
||||||
|
@ -37,7 +37,7 @@ services:
|
||||||
|
|
||||||
# Pretend this is your third-party relay service:
|
# Pretend this is your third-party relay service:
|
||||||
dms-relay:
|
dms-relay:
|
||||||
image: mailserver/docker-mailserver:latest # :14.0
|
image: mailserver/docker-mailserver:latest # :15.0
|
||||||
hostname: smtp.relay-service.test
|
hostname: smtp.relay-service.test
|
||||||
environment:
|
environment:
|
||||||
# WORKAROUND: Bypass security checks from the mail-client (dms-sender container)
|
# WORKAROUND: Bypass security checks from the mail-client (dms-sender container)
|
||||||
|
@ -58,7 +58,7 @@ services:
|
||||||
|
|
||||||
# Pretend this is another mail server that your target recipient belongs to (like Gmail):
|
# Pretend this is another mail server that your target recipient belongs to (like Gmail):
|
||||||
dms-destination:
|
dms-destination:
|
||||||
image: mailserver/docker-mailserver:latest # :14.0
|
image: mailserver/docker-mailserver:latest # :15.0
|
||||||
hostname: mail.destination.test
|
hostname: mail.destination.test
|
||||||
# WORKAROUND: dms-relay must be able to resolve DNS for `@destination.test` to the IP of this container:
|
# WORKAROUND: dms-relay must be able to resolve DNS for `@destination.test` to the IP of this container:
|
||||||
# Normally a MX record would direct mail to the MTA (eg: `mail.destination.test`)
|
# Normally a MX record would direct mail to the MTA (eg: `mail.destination.test`)
|
||||||
|
|
|
@ -151,6 +151,6 @@ We provide this support via two config files:
|
||||||
[wikipedia::smarthost]: https://en.wikipedia.org/wiki/Smart_host
|
[wikipedia::smarthost]: https://en.wikipedia.org/wiki/Smart_host
|
||||||
|
|
||||||
[docs::env-relay]: ../../environment.md#relay-host
|
[docs::env-relay]: ../../environment.md#relay-host
|
||||||
[dms-repo::helpers-relay]: https://github.com/docker-mailserver/docker-mailserver/blob/v14.0.0/target/scripts/helpers/relay.sh
|
[dms-repo::helpers-relay]: https://github.com/docker-mailserver/docker-mailserver/blob/v15.0.0/target/scripts/helpers/relay.sh
|
||||||
[dms-gh::pr-3607]: https://github.com/docker-mailserver/docker-mailserver/issues/3607
|
[dms-gh::pr-3607]: https://github.com/docker-mailserver/docker-mailserver/issues/3607
|
||||||
[dms-gh::relay-example]: https://github.com/docker-mailserver/docker-mailserver/issues/3842#issuecomment-1913380639
|
[dms-gh::relay-example]: https://github.com/docker-mailserver/docker-mailserver/issues/3842#issuecomment-1913380639
|
||||||
|
|
|
@ -139,7 +139,7 @@ To use the web interface you will need to configure a password, [otherwise you w
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Related:** A minimal Rspamd `compose.yaml` [example with a reverse-proxy for web access][gh-dms:guide::rspamd-web].
|
**Related:** A minimal Rspamd `compose.yaml` [example with a reverse-proxy for web access][gh-dms::guide::rspamd-web].
|
||||||
|
|
||||||
### DNS
|
### DNS
|
||||||
|
|
||||||
|
@ -353,8 +353,8 @@ While _Abusix_ can be integrated into Postfix, Postscreen and a multitude of oth
|
||||||
[abusix-docs::rspamd-integration]: https://abusix.com/docs/rspamd/
|
[abusix-docs::rspamd-integration]: https://abusix.com/docs/rspamd/
|
||||||
[spamhaus::faq::dnsbl-usage]: https://www.spamhaus.org/faq/section/DNSBL%20Usage#365
|
[spamhaus::faq::dnsbl-usage]: https://www.spamhaus.org/faq/section/DNSBL%20Usage#365
|
||||||
|
|
||||||
[dms-repo::rspamd-actions-config]: https://github.com/docker-mailserver/docker-mailserver/tree/v14.0.0/target/rspamd/local.d/actions.conf
|
[dms-repo::rspamd-actions-config]: https://github.com/docker-mailserver/docker-mailserver/tree/v15.0.0/target/rspamd/local.d/actions.conf
|
||||||
[dms-repo::default-rspamd-configuration]: https://github.com/docker-mailserver/docker-mailserver/tree/v14.0.0/target/rspamd
|
[dms-repo::default-rspamd-configuration]: https://github.com/docker-mailserver/docker-mailserver/tree/v15.0.0/target/rspamd
|
||||||
[gh-dms::guide::valkey]: https://github.com/docker-mailserver/docker-mailserver/issues/4001#issuecomment-2652596692
|
[gh-dms::guide::valkey]: https://github.com/docker-mailserver/docker-mailserver/issues/4001#issuecomment-2652596692
|
||||||
[gh-dms::guide::rspamd-web]: https://github.com/orgs/docker-mailserver/discussions/4269#discussioncomment-11329588
|
[gh-dms::guide::rspamd-web]: https://github.com/orgs/docker-mailserver/discussions/4269#discussioncomment-11329588
|
||||||
|
|
||||||
|
|
|
@ -24,39 +24,41 @@ As the official DMS image does not provide `dovecot-solr`, you'll need to includ
|
||||||
!!! quote ""
|
!!! quote ""
|
||||||
|
|
||||||
=== "`user-patches.sh`"
|
=== "`user-patches.sh`"
|
||||||
|
|
||||||
If you'd prefer to avoid a custom image build. This approach is simpler but with the caveat that any time the container is restarted, you'll have a delay as the package is installed each time.
|
If you'd prefer to avoid a custom image build. This approach is simpler but with the caveat that any time the container is restarted, you'll have a delay as the package is installed each time.
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
|
|
||||||
apt-get update && apt-get install dovecot-solr
|
apt-get update && apt-get install dovecot-solr
|
||||||
```
|
```
|
||||||
|
|
||||||
=== "`compose.yaml`"
|
=== "`compose.yaml`"
|
||||||
|
|
||||||
A custom DMS image does not add much friction. You do not need a separate `Dockerfile` as Docker Compose supports building from an inline `Dockerfile` in your `compose.yaml`.
|
A custom DMS image does not add much friction. You do not need a separate `Dockerfile` as Docker Compose supports building from an inline `Dockerfile` in your `compose.yaml`.
|
||||||
|
|
||||||
The `image` key of the service is swapped for the `build` key instead, as shown below:
|
The `image` key of the service is swapped for the `build` key instead, as shown below:
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
services:
|
services:
|
||||||
mailserver:
|
mailserver:
|
||||||
hostname: mail.example.com
|
hostname: mail.example.com
|
||||||
# The `image` setting now represents the tag for the local build configured below:
|
# The `image` setting now represents the tag for the local build configured below:
|
||||||
image: local/dms:14.0
|
image: local/dms:${DMS_TAG?Must set DMS image tag}
|
||||||
# Local build (no need to try pull `image` remotely):
|
# Local build (no need to try pull `image` remotely):
|
||||||
pull_policy: build
|
pull_policy: build
|
||||||
# Add this `build` section to your real `compose.yaml` for your DMS service:
|
# Add this `build` section to your real `compose.yaml` for your DMS service:
|
||||||
build:
|
build:
|
||||||
dockerfile_inline: |
|
dockerfile_inline: |
|
||||||
FROM docker.io/mailserver/docker-mailserver:14.0
|
FROM docker.io/mailserver/docker-mailserver:${DMS_TAG?Must set DMS image tag}
|
||||||
RUN apt-get update && apt-get install dovecot-solr
|
RUN apt-get update && apt-get install dovecot-solr
|
||||||
```
|
```
|
||||||
|
|
||||||
- Just run `docker compose up` and it will pull DMS and build your custom image to run a container.
|
This approach only needs to install the package once with the image build itself which minimizes the delay of container startup.
|
||||||
- Updating to a new DMS release is straight-forward, just adjust the version tag as you normally would. If you make future changes that don't apply, you may need to force a rebuild.
|
|
||||||
- This approach only needs to install the package once with the image build itself. This minimizes delay of container startup.
|
- Just run `DMS_TAG='14.0' docker compose up` and it will pull the DMS image, then build your custom DMS image to run a new container instance.
|
||||||
|
- Updating to a new DMS release is straight-forward, just adjust the `DMS_TAG` ENV value or change the image tag directly in `compose.yaml` as you normally would to upgrade an image.
|
||||||
|
- If you make future changes to the `dockerfile_inline` that don't seem to be applied, you may need to force a rebuild with `DMS_TAG='14.0' docker compose up --build`.
|
||||||
|
|
||||||
!!! note "Why doesn't DMS include `dovecot-solr`?"
|
!!! note "Why doesn't DMS include `dovecot-solr`?"
|
||||||
|
|
||||||
|
|
|
@ -111,14 +111,6 @@ function _rspamd_handle_user_modules_adjustments() {
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
# We check for usage of the previous location of the commands file.
|
|
||||||
# TODO This can be removed after the release of v14.0.0.
|
|
||||||
local RSPAMD_DMS_CUSTOM_COMMANDS_F_OLD="${RSPAMD_DMS_D}-modules.conf"
|
|
||||||
readonly RSPAMD_DMS_CUSTOM_COMMANDS_F_OLD
|
|
||||||
if [[ -f ${RSPAMD_DMS_CUSTOM_COMMANDS_F_OLD} ]]; then
|
|
||||||
_dms_panic__general "Old custom command file location '${RSPAMD_DMS_CUSTOM_COMMANDS_F_OLD}' is deprecated (use '${RSPAMD_DMS_CUSTOM_COMMANDS_F}' now)" 'Rspamd setup'
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [[ -f "${RSPAMD_DMS_CUSTOM_COMMANDS_F}" ]]; then
|
if [[ -f "${RSPAMD_DMS_CUSTOM_COMMANDS_F}" ]]; then
|
||||||
__rspamd__log 'debug' "Found file '${RSPAMD_DMS_CUSTOM_COMMANDS_F}' - parsing and applying it"
|
__rspamd__log 'debug' "Found file '${RSPAMD_DMS_CUSTOM_COMMANDS_F}' - parsing and applying it"
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue