Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Automatic PR to nightly from 2024-02-08T10:25:43Z #5716

Merged
merged 115 commits into from
Jul 31, 2024
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
115 commits
Select commit Hold shift + click to select a range
6dc0bdb
Proper number of threads regex.
Jan 9, 2024
e184713
added action for support label in issues
DerLinkman Feb 8, 2024
63426c3
unbound: remove netcat check & package
DerLinkman Feb 8, 2024
8ae762a
Merge pull request #5717 from mailcow/staging
DerLinkman Feb 8, 2024
1787c53
[Netfilter] respect ban time limits
Habetdin Jan 30, 2024
3cb9c2e
ui: fix wrong docs links
DerLinkman Feb 9, 2024
86ba019
[Rspamd] apply domain wide footer to alias domains
FreddleSpl0it Feb 9, 2024
a0e55cb
[Web] fix blank /debug page with invalid timezone
FreddleSpl0it Feb 9, 2024
288dbfa
[Web] display human readable domainnames instead of punycode
FreddleSpl0it Feb 9, 2024
dac1bd8
[Web] fix setting unchecked checkboxes
FreddleSpl0it Feb 9, 2024
d65a0bb
[ClamAV] Update to 1.2.2
FreddleSpl0it Feb 13, 2024
861fa7b
Merge pull request #5728 from mailcow/fix/debug-tz
FreddleSpl0it Feb 14, 2024
ff05cff
Merge pull request #5730 from mailcow/fix/add-domain-gal
FreddleSpl0it Feb 14, 2024
705d144
Merge pull request #5729 from mailcow/feat/readable-domainnames
FreddleSpl0it Feb 14, 2024
7d3f9fa
Merge pull request #5727 from mailcow/fix/domain-wide-footer
FreddleSpl0it Feb 14, 2024
d8baadb
Merge pull request #5679 from Habetdin/staging
FreddleSpl0it Feb 14, 2024
3b83949
[Netfilter] Update to 1.58
FreddleSpl0it Feb 14, 2024
7dae4a9
Translations update from Weblate (#5732)
milkmaker Feb 14, 2024
8ed6217
Translations update from Weblate (#5740)
milkmaker Feb 14, 2024
8d4ef14
Merge pull request #5741 from mailcow/staging
FreddleSpl0it Feb 15, 2024
6a807b7
Remove one GmbH
MAGICCC Feb 15, 2024
6f4720e
chore(deps): update thollander/actions-comment-pull-request action to…
renovate[bot] Feb 17, 2024
02a55ce
Fix unbound healthcheck.sh to log all messages to logfile
Feb 19, 2024
98cdb95
[Rspamd] milter update Content-Type and Content-Transfer-Encoding hea…
FreddleSpl0it Feb 19, 2024
79432a4
Translations update from Weblate (#5762)
milkmaker Feb 25, 2024
35f039a
sogo: update to 5.10.0
DerLinkman Feb 26, 2024
d7430bf
sogo: add new options to sogo.conf for update 5.10.0
DerLinkman Feb 26, 2024
1fb0060
Merge pull request #5765 from mailcow/feat/sogo-5.10
DerLinkman Feb 27, 2024
e0eb3a4
update postscreen_access.cidr
milkmaker Mar 1, 2024
d92ffe8
helper: remove old SOGo repo to not break builds on ARM64
DerLinkman Mar 1, 2024
8c0637b
[Web] Updated lang.lv-lv.json (#5777)
milkmaker Mar 5, 2024
fd73b3a
Update lang.zh-cn.json (#5789)
aaadddfgh Mar 13, 2024
b054a57
Merge pull request #5770 from mailcow/update/postscreen_access.cidr
DerLinkman Mar 19, 2024
bbbdcfb
Merge pull request #5743 from mailcow/fix-5742
DerLinkman Mar 20, 2024
52455be
Translations update from Weblate (#5810)
milkmaker Mar 30, 2024
dc7a48c
Update French translation (#5805)
yvan-algoo Mar 30, 2024
26be1cb
Set local_addrs in Rspamd
dragoangel Apr 1, 2024
5dc8366
[Web] Updated lang.tr-tr.json (#5813)
milkmaker Apr 1, 2024
237a25e
update postscreen_access.cidr (#5811)
milkmaker Apr 2, 2024
8a82bab
[Web] Updated lang.tr-tr.json (#5815)
milkmaker Apr 2, 2024
00d4b32
[Web] deny api calls from sogo
FreddleSpl0it Apr 3, 2024
2db8f48
[Web] escape html of alert messages
FreddleSpl0it Apr 3, 2024
0d09c86
[Web] fix invalid rspamd map check
FreddleSpl0it Apr 3, 2024
75550ee
Merge pull request #5812 from mailcow/limit-local-addrs
FreddleSpl0it Apr 3, 2024
17d797c
Merge pull request #5751 from mailcow/fix/rspamd-rewrite-ct
FreddleSpl0it Apr 3, 2024
3aee2b6
[Web] use SEC_FETCH_DEST header instead of Referer to block api requests
FreddleSpl0it Apr 3, 2024
9decfa9
Merge pull request #5818 from mailcow/fix/web
FreddleSpl0it Apr 4, 2024
36b5ccc
Merge pull request #5819 from mailcow/staging
FreddleSpl0it Apr 4, 2024
7660ca8
[Web] break loop if rspamd_map is valid
FreddleSpl0it Apr 4, 2024
b37caaf
[Web] secure container_ctrl.php
FreddleSpl0it Apr 4, 2024
62e458f
[Web] Updated lang.fr-fr.json (#5824)
milkmaker Apr 4, 2024
e449cac
Translations update from Weblate (#5835)
milkmaker Apr 8, 2024
549539b
Update lang.pt-pt.json (#5832)
7zx Apr 8, 2024
3dd4c45
Translations update from Weblate (#5839)
milkmaker Apr 10, 2024
7cb138d
Improve Dutch translation (#5840)
mitchellvanbijleveld Apr 11, 2024
c8ff538
remove version from docker-compose.yml
Apr 16, 2024
20582b6
[Web] Updated lang.lv-lv.json (#5862)
milkmaker Apr 30, 2024
47fd1bb
Update lang.ru-ru.json (#5865)
RakhimovRamis May 3, 2024
e12981a
[Web] Updated lang.zh-cn.json (#5873)
milkmaker May 7, 2024
cd83ffb
Update debug.twig to include a link to the git project URL for the ma…
CallMeLeon167 May 10, 2024
47c08ab
Update debug.twig target="_blank" attribute for the mailcow version t…
CallMeLeon167 May 10, 2024
c160e1f
Update debug.twig
CallMeLeon167 May 10, 2024
f7f93c3
fix formatting of the mailcow version tag link
CallMeLeon167 May 10, 2024
8a8687a
[Web] Updated lang.zh-cn.json (#5876)
milkmaker May 10, 2024
58f63aa
[UI] Corrected Sieve Preset 1 (Fixed Regex)
DerLinkman May 13, 2024
6ba2459
Fixed blocking last connection fetching
PierrePlt May 18, 2024
e5ada99
Update alpine Docker tag to v3.20
renovate[bot] May 22, 2024
cac65d0
chore(deps): update dependency nextcloud/server to v28.0.6
renovate[bot] May 28, 2024
64cd7e7
Switch IP2Country lookup backend to shortened version
Thomas2500 May 28, 2024
11e9a77
update postscreen_access.cidr
milkmaker Jun 1, 2024
ba8902f
os: updated all Alpine containers to 3.20
DerLinkman Jun 5, 2024
dc5eb6f
Merge pull request #5883 from mailcow:renovate/alpine-3.x
DerLinkman Jun 5, 2024
2fa3a22
Merge pull request #5875 from CallMeLeon167:staging_cml
DerLinkman Jun 5, 2024
49d7388
Merge pull request #5863 from mailcow:update/postscreen_access.cidr
DerLinkman Jun 5, 2024
34b0574
Merge pull request #5886 from Thomas2500:patch-1
DerLinkman Jun 5, 2024
af626d9
dovecot: fixed sa-rules download
DerLinkman Jun 5, 2024
8f3ea09
Merge pull request #5893 from mailcow/feat/base-os
DerLinkman Jun 5, 2024
27c007e
Merge pull request #5750 from DocFraggle:staging
DerLinkman Jun 6, 2024
e0bde1c
compose: removed all versions declarations (DEPRECATED)
DerLinkman Jun 6, 2024
b4e8355
Merge pull request #5845 from iamspido:patch-1
DerLinkman Jun 6, 2024
9ca2fb7
Remove discontinued SORBS DNSBL
mkuron Jun 8, 2024
18d7a55
Merge pull request #5901 from mailcow:sorbs
DerLinkman Jun 10, 2024
4a052da
Add switch to skip fetching certificates auto{config,discover} subdom…
schichtnudelauflauf Jun 10, 2024
9776849
Merge pull request #5880 from PierrePlt:fix/blocking-last-logins
DerLinkman Jun 10, 2024
1b2c2c0
Merge pull request #5690 from mailcow:renovate/nextcloud-server-28.x
DerLinkman Jun 10, 2024
533c4e7
nextcloud: add deprecation notice once script start
DerLinkman Jun 10, 2024
f675af5
Merge pull request #5902 from mailcow/feat/nextcloud-deprecation
DerLinkman Jun 10, 2024
38b0641
Remove unnecessary log lines in Postfix's log (#5817)
SwissOS Jun 10, 2024
9daf2d8
Translations update from Weblate (#5908)
milkmaker Jun 16, 2024
527577b
chore(deps): update docker/build-push-action action to v6 (#5910)
renovate[bot] Jun 17, 2024
443941e
[Rspamd] Delete overriding obsolete rspamd plugin (#5900)
realizelol Jun 24, 2024
1af9c21
Translations update from Weblate (#5912)
milkmaker Jun 24, 2024
bf13af9
increased rspamd image tag
DerLinkman Jun 24, 2024
6fc86dd
acme: corrected acme-tiny download path
DerLinkman Jun 24, 2024
2cf952e
[Postfix] Upgrade to Deb12 + PF to 3.7.10 & Drop TLS 1.0/1.1 per defa…
DerLinkman Jun 26, 2024
cf65942
dovecot: add Flatcurve FTS Engine as EXPERIMENTAL (#5920)
DerLinkman Jun 26, 2024
9c814cc
Merge pull request #5922 from mailcow/staging
DerLinkman Jun 27, 2024
b9f8959
Update CONTRIBUTING.md
DerLinkman Jun 27, 2024
9715c57
Revert "Translations update from Weblate (#5912)"
DerLinkman Jun 27, 2024
b9ae174
Merge pull request #5925 from mailcow/revert-5912-weblate-translated
DerLinkman Jun 27, 2024
70126e1
Merge pull request #5926 from mailcow/staging
DerLinkman Jun 27, 2024
8e2d3a6
update postscreen_access.cidr
milkmaker Jul 1, 2024
aadeeb0
Merge pull request #5634 from torzech/proper-threads-regex
DerLinkman Jul 9, 2024
9b478b3
php: Rebase on Debian 12 (#5951)
DerLinkman Jul 12, 2024
fc7ea7a
web: remove WIP notice for ARM64 from ui
DerLinkman Jul 12, 2024
ef7ec06
Merge pull request #5930 from mailcow/update/postscreen_access.cidr
DerLinkman Jul 12, 2024
2dbe8bf
Merge pull request #5952 from mailcow/staging
DerLinkman Jul 12, 2024
58c0a46
Revert "Update debug.twig to include a link to the git project URL fo…
DerLinkman Jul 12, 2024
a689109
Merge pull request #5955 from mailcow/revert-5875-staging_cml
DerLinkman Jul 12, 2024
eea81e2
Revert "php: Rebase on Debian 12" (#5956)
DerLinkman Jul 12, 2024
987a027
Merge pull request #5957 from mailcow/staging
DerLinkman Jul 12, 2024
7325715
postfix: remove forced helo restrictions from master.cf
DerLinkman Jul 24, 2024
7f7a869
Do not add MAILCOW_WHITE on failed DMARC
dragoangel Jul 28, 2024
8fbfd99
Update composites.conf
dragoangel Jul 28, 2024
03fccb2
Merge pull request #5971 from mailcow/dragoangel-patch-1
DerLinkman Jul 29, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
37 changes: 37 additions & 0 deletions .github/workflows/check_if_support_labeled.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Check if labeled support, if so send message and close issue
on:
issues:
types:
- labeled
jobs:
add-comment:
if: github.event.label.name == 'support'
runs-on: ubuntu-latest
permissions:
issues: write
steps:
- name: Add comment
run: gh issue comment "$NUMBER" --body "$BODY"
env:
GH_TOKEN: ${{ secrets.SUPPORTISSUES_ACTION_PAT }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}
BODY: |
**THIS IS A AUTOMATED MESSAGE!**

It seems your issue is not a bug.
Therefore we highly advise you to get support!

You can get support either by:
- ordering a paid [support contract at Servercow](https://www.servercow.de/mailcow?lang=en#support/) (Directly from the developers) or
- using the [community forum](https://community.mailcow.email) (**Based on volunteers! NO guaranteed answer**) or
- using the [Telegram support channel](https://t.me/mailcow) (**Based on volunteers! NO guaranteed answer**)

This issue will be closed. If you think your reported issue is not a support case feel free to comment above and if so the issue will reopened.

- name: Close issue
env:
GH_TOKEN: ${{ secrets.SUPPORTISSUES_ACTION_PAT }}
GH_REPO: ${{ github.repository }}
NUMBER: ${{ github.event.issue.number }}
run: gh issue close "$NUMBER" -r "not planned"
2 changes: 1 addition & 1 deletion .github/workflows/check_prs_if_on_staging.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ jobs:
if: github.event.pull_request.base.ref != 'staging' #check if the target branch is not staging
steps:
- name: Send message
uses: thollander/actions-comment-pull-request@v2.4.3
uses: thollander/actions-comment-pull-request@v2.5.0
with:
GITHUB_TOKEN: ${{ secrets.CHECKIFPRISSTAGING_ACTION_PAT }}
message: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/rebuild_backup_image.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
password: ${{ secrets.BACKUPIMAGEBUILD_ACTION_DOCKERHUB_TOKEN }}

- name: Build and push
uses: docker/build-push-action@v5
uses: docker/build-push-action@v6
with:
context: .
platforms: linux/amd64,linux/arm64
Expand Down
30 changes: 16 additions & 14 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,31 +1,33 @@
# Contribution Guidelines (Last modified on 18th December 2023)
# Contribution Guidelines (Last modified on 27th June 2024)

First of all, thank you for wanting to provide a bugfix or a new feature for the mailcow community, it's because of your help that the project can continue to grow!

## Pull Requests (Last modified on 18th December 2023)
## Pull Requests (Last modified on 27th June 2024)

However, please note the following regarding pull requests:

1. **ALWAYS** create your PR using the staging branch of your locally cloned mailcow instance, as the pull request will end up in said staging branch of mailcow once approved. Ideally, you should simply create a new branch for your pull request that is named after the type of your PR (e.g. `feat/` for function updates or `fix/` for bug fixes) and the actual content (e.g. `sogo-6.0.0` for an update from SOGo to version 6 or `html-escape` for a fix that includes escaping HTML in mailcow).
2. Please **keep** this pull request branch **clean** and free of commits that have nothing to do with the changes you have made (e.g. commits from other users from other branches). *If you make changes to the `update.sh` script or other scripts that trigger a commit, there is usually a developer mode for clean working in this case.
3. **Test your changes before you commit them as a pull request.** <ins>If possible</ins>, write a small **test log** or demonstrate the functionality with a **screenshot or GIF**. *We will of course also test your pull request ourselves, but proof from you will save us the question of whether you have tested your own changes yourself.*
4. Please **ALWAYS** create the actual pull request against the staging branch and **NEVER** directly against the master branch. *If you forget to do this, our moobot will remind you to switch the branch to staging.*
5. Wait for a merge commit: It may happen that we do not accept your pull request immediately or sometimes not at all for various reasons. Please do not be disappointed if this is the case. We always endeavor to incorporate any meaningful changes from the community into the mailcow project.
6. If you are planning larger and therefore more complex pull requests, it would be advisable to first announce this in a separate issue and then start implementing it after the idea has been accepted in order to avoid unnecessary frustration and effort!
2. **ALWAYS** report/request issues/features in the english language, even though mailcow is a german based company. This is done to allow other GitHub users to reply to your issues/requests too which did not speak german or other languages besides english.
3. Please **keep** this pull request branch **clean** and free of commits that have nothing to do with the changes you have made (e.g. commits from other users from other branches). *If you make changes to the `update.sh` script or other scripts that trigger a commit, there is usually a developer mode for clean working in this case.
4. **Test your changes before you commit them as a pull request.** <ins>If possible</ins>, write a small **test log** or demonstrate the functionality with a **screenshot or GIF**. *We will of course also test your pull request ourselves, but proof from you will save us the question of whether you have tested your own changes yourself.*
5. Please **ALWAYS** create the actual pull request against the staging branch and **NEVER** directly against the master branch. *If you forget to do this, our moobot will remind you to switch the branch to staging.*
6. Wait for a merge commit: It may happen that we do not accept your pull request immediately or sometimes not at all for various reasons. Please do not be disappointed if this is the case. We always endeavor to incorporate any meaningful changes from the community into the mailcow project.
7. If you are planning larger and therefore more complex pull requests, it would be advisable to first announce this in a separate issue and then start implementing it after the idea has been accepted in order to avoid unnecessary frustration and effort!

---

## Issue Reporting (Last modified on 18th December 2023)
## Issue Reporting (Last modified on 27th June 2024)

If you plan to report a issue within mailcow please read and understand the following rules:

1. **ONLY** use the issue tracker for bug reports or improvement requests and NOT for support questions. For support questions you can either contact the [mailcow community on Telegram](https://docs.mailcow.email/#community-support-and-chat) or the mailcow team directly in exchange for a [support fee](https://docs.mailcow.email/#commercial-support).
2. **ONLY** report an error if you have the **necessary know-how (at least the basics)** for the administration of an e-mail server and the usage of Docker. mailcow is a complex and fully-fledged e-mail server including groupware components on a Docker basement and it requires a bit of technical know-how for debugging and operating.
3. **ONLY** report bugs that are contained in the latest mailcow release series. *The definition of the latest release series includes the last major patch (e.g. 2023-12) and all minor patches (revisions) below it (e.g. 2023-12a, b, c etc.).* New issue reports published starting from January 1, 2024 must meet this criterion, as versions below the latest releases are no longer supported by us.
4. When reporting a problem, please be as detailed as possible and include even the smallest changes to your mailcow installation. Simply fill out the corresponding bug report form in detail and accurately to minimize possible questions.
5. **Before you open an issue/feature request**, please first check whether a similar request already exists in the mailcow tracker on GitHub. If so, please include yourself in this request.
6. When you create a issue/feature request: Please note that the creation does <ins>**not guarantee an instant implementation or fix by the mailcow team or the community**</ins>.
7. Please **ALWAYS** anonymize any sensitive information in your bug report or feature request before submitting it.
3. **ALWAYS** report/request issues/features in the english language, even though mailcow is a german based company. This is done to allow other GitHub users to reply to your issues/requests too which did not speak german or other languages besides english.
4. **ONLY** report bugs that are contained in the latest mailcow release series. *The definition of the latest release series includes the last major patch (e.g. 2023-12) and all minor patches (revisions) below it (e.g. 2023-12a, b, c etc.).* New issue reports published starting from January 1, 2024 must meet this criterion, as versions below the latest releases are no longer supported by us.
5. When reporting a problem, please be as detailed as possible and include even the smallest changes to your mailcow installation. Simply fill out the corresponding bug report form in detail and accurately to minimize possible questions.
6. **Before you open an issue/feature request**, please first check whether a similar request already exists in the mailcow tracker on GitHub. If so, please include yourself in this request.
7. When you create a issue/feature request: Please note that the creation does <ins>**not guarantee an instant implementation or fix by the mailcow team or the community**</ins>.
8. Please **ALWAYS** anonymize any sensitive information in your bug report or feature request before submitting it.

### Quick guide to reporting problems:
1. Read your logs; follow them to see what the reason for your problem is.
Expand All @@ -36,4 +38,4 @@ If you plan to report a issue within mailcow please read and understand the foll
6. [Create an issue](https://github.com/mailcow/mailcow-dockerized/issues/new/choose) over at our GitHub repository if you think your problem might be a bug or a missing feature you badly need. But please make sure, that you include **all the logs** and a full description to your problem.
7. Ask your questions in our community-driven [support channels](https://docs.mailcow.email/#community-support-and-chat).

## When creating an issue/feature request or a pull request, you will be asked to confirm these guidelines.
## When creating an issue/feature request or a pull request, you will be asked to confirm these guidelines.
10 changes: 4 additions & 6 deletions data/Dockerfiles/acme/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
FROM alpine:3.18
FROM alpine:3.20

LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

LABEL maintainer "The Infrastructure Company GmbH GmbH <info@servercow.de>"

ARG PIP_BREAK_SYSTEM_PACKAGES=1
RUN apk upgrade --no-cache \
&& apk add --update --no-cache \
bash \
Expand All @@ -15,9 +15,7 @@ RUN apk upgrade --no-cache \
tini \
tzdata \
python3 \
py3-pip \
&& pip3 install --upgrade pip \
&& pip3 install acme-tiny
acme-tiny --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/

COPY acme.sh /srv/acme.sh
COPY functions.sh /srv/functions.sh
Expand Down
8 changes: 8 additions & 0 deletions data/Dockerfiles/acme/acme.sh
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,10 @@ if [[ "${ONLY_MAILCOW_HOSTNAME}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
ONLY_MAILCOW_HOSTNAME=y
fi

if [[ "${AUTODISCOVER_SAN}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
AUTODISCOVER_SAN=y
fi

# Request individual certificate for every domain
if [[ "${ENABLE_SSL_SNI}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
ENABLE_SSL_SNI=y
Expand Down Expand Up @@ -211,7 +215,11 @@ while true; do
ADDITIONAL_SAN_ARR+=($i)
fi
done

if [[ ${AUTODISCOVER_SAN} == "y" ]]; then
# Fetch certs for autoconfig and autodiscover subdomains
ADDITIONAL_WC_ARR+=('autodiscover' 'autoconfig')
fi

if [[ ${SKIP_IP_CHECK} != "y" ]]; then
# Start IP detection
Expand Down
2 changes: 1 addition & 1 deletion data/Dockerfiles/backup/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
FROM debian:bullseye-slim
FROM debian:bookworm-slim

RUN apt update && apt install pigz
4 changes: 2 additions & 2 deletions data/Dockerfiles/clamd/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM alpine:3.19
FROM alpine:3.20

LABEL maintainer "The Infrastructure Company GmbH GmbH <info@servercow.de>"
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

RUN apk upgrade --no-cache \
&& apk add --update --no-cache \
Expand Down
4 changes: 2 additions & 2 deletions data/Dockerfiles/dockerapi/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
FROM alpine:3.19
FROM alpine:3.20

LABEL maintainer "The Infrastructure Company GmbH GmbH <info@servercow.de>"
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

ARG PIP_BREAK_SYSTEM_PACKAGES=1
WORKDIR /app
Expand Down
4 changes: 2 additions & 2 deletions data/Dockerfiles/dockerapi/modules/DockerApi.py
Original file line number Diff line number Diff line change
Expand Up @@ -358,8 +358,8 @@ def container_post__exec__rspamd__worker_password(self, request_json, **kwargs):
for line in cmd_response.split("\n"):
if '$2$' in line:
hash = line.strip()
hash_out = re.search('\$2\$.+$', hash).group(0)
rspamd_passphrase_hash = re.sub('[^0-9a-zA-Z\$]+', '', hash_out.rstrip())
hash_out = re.search(r'\$2\$.+$', hash).group(0)
rspamd_passphrase_hash = re.sub(r'[^0-9a-zA-Z\$]+', '', hash_out.rstrip())
rspamd_password_filename = "/etc/rspamd/override.d/worker-controller-password.inc"
cmd = '''/bin/echo 'enable_password = "%s";' > %s && cat %s''' % (rspamd_passphrase_hash, rspamd_password_filename, rspamd_password_filename)
cmd_response = self.exec_cmd_container(container, cmd, user="_rspamd")
Expand Down
11 changes: 6 additions & 5 deletions data/Dockerfiles/dovecot/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
FROM alpine:3.19
LABEL maintainer "The Infrastructure Company GmbH GmbH <info@servercow.de>"
FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

# renovate: datasource=github-releases depName=tianon/gosu versioning=semver-coerced extractVersion=^(?<version>.*)$
ARG GOSU_VERSION=1.16
Expand All @@ -24,6 +24,7 @@ RUN addgroup -g 5000 vmail \
envsubst \
ca-certificates \
curl \
coreutils \
jq \
lua \
lua-cjson \
Expand Down Expand Up @@ -62,7 +63,7 @@ RUN addgroup -g 5000 vmail \
perl-package-stash-xs \
perl-par-packer \
perl-parse-recdescent \
perl-lockfile-simple --repository=http://dl-cdn.alpinelinux.org/alpine/edge/community/ \
perl-lockfile-simple \
libproc \
perl-readonly \
perl-regexp-common \
Expand Down Expand Up @@ -104,13 +105,12 @@ RUN addgroup -g 5000 vmail \
dovecot-pigeonhole-plugin \
dovecot-pop3d \
dovecot-fts-solr \
dovecot-fts-flatcurve \
&& arch=$(arch | sed s/aarch64/arm64/ | sed s/x86_64/amd64/) \
&& wget -O /usr/local/bin/gosu "https://github.com/tianon/gosu/releases/download/$GOSU_VERSION/gosu-$arch" \
&& chmod +x /usr/local/bin/gosu \
&& gosu nobody true

# RUN cpan LockFile::Simple

COPY trim_logs.sh /usr/local/bin/trim_logs.sh
COPY clean_q_aged.sh /usr/local/bin/clean_q_aged.sh
COPY syslog-ng.conf /etc/syslog-ng/syslog-ng.conf
Expand All @@ -129,6 +129,7 @@ COPY stop-supervisor.sh /usr/local/sbin/stop-supervisor.sh
COPY quarantine_notify.py /usr/local/bin/quarantine_notify.py
COPY quota_notify.py /usr/local/bin/quota_notify.py
COPY repl_health.sh /usr/local/bin/repl_health.sh
COPY optimize-fts.sh /usr/local/bin/optimize-fts.sh

ENTRYPOINT ["/docker-entrypoint.sh"]
CMD exec /usr/bin/supervisord -c /etc/supervisor/supervisord.conf
55 changes: 52 additions & 3 deletions data/Dockerfiles/dovecot/docker-entrypoint.sh
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ ${REDIS_CMDLINE} SET DOVECOT_REPL_HEALTH 1 > /dev/null
# Create missing directories
[[ ! -d /etc/dovecot/sql/ ]] && mkdir -p /etc/dovecot/sql/
[[ ! -d /etc/dovecot/lua/ ]] && mkdir -p /etc/dovecot/lua/
[[ ! -d /etc/dovecot/conf.d/ ]] && mkdir -p /etc/dovecot/conf.d/
[[ ! -d /var/vmail/_garbage ]] && mkdir -p /var/vmail/_garbage
[[ ! -d /var/vmail/sieve ]] && mkdir -p /var/vmail/sieve
[[ ! -d /etc/sogo ]] && mkdir -p /etc/sogo
Expand Down Expand Up @@ -109,7 +110,14 @@ EOF

echo -n ${ACL_ANYONE} > /etc/dovecot/acl_anyone

if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
if [[ "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY]) ]]; then
echo -e "\e[33mActivating Flatcurve as FTS Backend...\e[0m"
echo -e "\e[33mDepending on your previous setup a full reindex might be needed... \e[0m"
echo -e "\e[34mVisit https://docs.mailcow.email/manual-guides/Dovecot/u_e-dovecot-fts/#fts-related-dovecot-commands to learn how to reindex\e[0m"
echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify fts fts_flatcurve listescape replication' > /etc/dovecot/mail_plugins
echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify mail_log fts fts_flatcurve listescape replication' > /etc/dovecot/mail_plugins_imap
echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl fts fts_flatcurve notify listescape replication' > /etc/dovecot/mail_plugins_lmtp
elif [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
echo -n 'quota acl zlib mail_crypt mail_crypt_acl mail_log notify listescape replication' > /etc/dovecot/mail_plugins
echo -n 'quota imap_quota imap_acl acl zlib imap_zlib imap_sieve mail_crypt mail_crypt_acl notify listescape replication mail_log' > /etc/dovecot/mail_plugins_imap
echo -n 'quota sieve acl zlib mail_crypt mail_crypt_acl notify listescape replication' > /etc/dovecot/mail_plugins_lmtp
Expand Down Expand Up @@ -239,6 +247,47 @@ function script_deinit()
end
EOF

# Temporarily set FTS depending on user choice inside mailcow.conf. Will be removed as soon as Solr is dropped
if [[ "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY])$ ]]; then
cat <<EOF > /etc/dovecot/conf.d/fts.conf
# Autogenerated by mailcow
plugin {
fts_autoindex = yes
fts_autoindex_exclude = \Junk
fts_autoindex_exclude2 = \Trash
fts = flatcurve

# These are not flatcurve settings, but required for Dovecot FTS. See
# Dovecot FTS Configuration link above for further information.
fts_languages = en es de
fts_tokenizer_generic = algorithm=simple
fts_tokenizers = generic email-address

# OPTIONAL: Recommended default FTS core configuration
fts_filters = normalizer-icu snowball stopwords
fts_filters_en = lowercase snowball english-possessive stopwords
}
EOF
elif [[ ! "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])$ ]]; then
cat <<EOF > /etc/dovecot/conf.d/fts.conf
# Autogenerated by mailcow
plugin {
fts = solr
fts_autoindex = yes
fts_autoindex_exclude = \Junk
fts_autoindex_exclude2 = \Trash
fts_solr = url=http://solr:8983/solr/dovecot-fts/

fts_tokenizers = generic email-address
fts_tokenizer_generic = algorithm=simple

fts_filters = normalizer-icu snowball stopwords
fts_filters_en = lowercase snowball english-possessive stopwords
}
EOF
fi


# Replace patterns in app-passdb.lua
sed -i "s/__DBUSER__/${DBUSER}/g" /etc/dovecot/lua/passwd-verify.lua
sed -i "s/__DBPASS__/${DBPASS}/g" /etc/dovecot/lua/passwd-verify.lua
Expand Down Expand Up @@ -343,7 +392,6 @@ mail_replica = tcp:${MAILCOW_REPLICA_IP}:${DOVEADM_REPLICA_PORT}
EOF
fi


# 401 is user dovecot
if [[ ! -s /mail_crypt/ecprivkey.pem || ! -s /mail_crypt/ecpubkey.pem ]]; then
openssl ecparam -name prime256v1 -genkey | openssl pkey -out /mail_crypt/ecprivkey.pem
Expand Down Expand Up @@ -387,7 +435,8 @@ chmod +x /usr/lib/dovecot/sieve/rspamd-pipe-ham \
/usr/local/bin/maildir_gc.sh \
/usr/local/sbin/stop-supervisor.sh \
/usr/local/bin/quota_notify.py \
/usr/local/bin/repl_health.sh
/usr/local/bin/repl_health.sh \
/usr/local/bin/optimize-fts.sh

# Prepare environment file for cronjobs
printenv | sed 's/^\(.*\)$/export \1/g' > /source_env.sh
Expand Down
7 changes: 7 additions & 0 deletions data/Dockerfiles/dovecot/optimize-fts.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
#!/bin/bash

if [[ "${SKIP_SOLR}" =~ ^([yY][eE][sS]|[yY])+$ && ! "${FLATCURVE_EXPERIMENTAL}" =~ ^([yY][eE][sS]|[yY])+$ ]]; then
exit 0
else
doveadm fts optimize -A
fi
2 changes: 1 addition & 1 deletion data/Dockerfiles/dovecot/sa-rules.sh
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ else
fi

# Deploy
curl --connect-timeout 15 --retry 10 --max-time 30 http://www.spamassassin.heinlein-support.de/$(dig txt 1.4.3.spamassassin.heinlein-support.de +short | tr -d '"' | tr -dc '0-9').tar.gz --output /tmp/sa-rules-heinlein.tar.gz
curl --connect-timeout 15 --retry 10 --max-time 30 https://www.spamassassin.heinlein-support.de/$(dig txt 1.4.3.spamassassin.heinlein-support.de +short | tr -d '"' | tr -dc '0-9').tar.gz --output /tmp/sa-rules-heinlein.tar.gz
if gzip -t /tmp/sa-rules-heinlein.tar.gz; then
tar xfvz /tmp/sa-rules-heinlein.tar.gz -C /tmp/sa-rules-heinlein
cat /tmp/sa-rules-heinlein/*cf > /etc/rspamd/custom/sa-rules
Expand Down
2 changes: 1 addition & 1 deletion data/Dockerfiles/netfilter/Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM alpine:3.19
FROM alpine:3.20
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"

WORKDIR /app
Expand Down
Loading
Loading