1
0
mirror of https://github.com/mailcow/mailcow-dockerized.git synced 2026-06-13 01:50:34 +00:00

Compare commits

..

23 Commits

Author SHA1 Message Date
FreddleSpl0it 2ac4b1deae Merge pull request #7260 from mailcow/staging
Update 2026-05c
2026-05-26 10:50:58 +02:00
FreddleSpl0it faac56a611 [Unbound] Change version tag 2026-05-26 10:43:25 +02:00
FreddleSpl0it be37bc5a68 Merge pull request #7252 from SYNLINQ/staging
fix unbound CVE-2026-33278
2026-05-26 10:41:52 +02:00
FreddleSpl0it b227c76156 Merge pull request #7259 from mailcow/feat/nginx-1.30.2
[Nginx] Update to 1.30.2
2026-05-26 10:37:57 +02:00
FreddleSpl0it db4e3b4d54 [Nginx] Update to 1.30.2 2026-05-26 10:36:39 +02:00
renovate[bot] e6fa0c5099 Update devops-infra/action-pull-request action to v1.2.0 (#7254)
Signed-off-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-23 22:10:51 +02:00
renovate[bot] ce3ceaf5b8 Update devops-infra/action-pull-request action to v1.1.3 (#7253)
Signed-off-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-23 08:36:46 +02:00
SYNLINQ efc2e76159 Update docker-compose.yml
bump unbound version
2026-05-22 16:27:43 +02:00
SYNLINQ 7d17715e2e Update Dockerfile
install unbound package from alpine:edge
2026-05-22 16:26:47 +02:00
renovate[bot] aed440bcb3 Update devops-infra/action-pull-request action to v1.1.2 (#7247)
Signed-off-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 21:09:43 +02:00
milkmaker 4f2348631a [Web] Updated lang.pl-pl.json (#7245)
Co-authored-by: Adrian-Kozien <adrian@kozien.net>
2026-05-21 17:16:34 +02:00
renovate[bot] da586682f6 Update actions/stale action to v10.3.0 (#7242)
Signed-off-by: milkmaker <milkmaker@mailcow.de>
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
2026-05-21 10:04:58 +02:00
FreddleSpl0it 1eb6d2e26c Merge pull request #7243 from mailcow/staging
Update 2025-05b
2026-05-21 08:33:36 +02:00
FreddleSpl0it 22ae1f5363 Merge pull request #7241 from mailcow/fix/quarantinetable
escape HTML in quarantine table
2026-05-20 18:02:19 +02:00
FreddleSpl0it c9cf8d7f38 Merge pull request #7240 from mailcow/feat/nginx1.30.1
[Nginx] Update to 1.30.1
2026-05-20 17:58:29 +02:00
FreddleSpl0it cbd3d8b9bc escape HTML in quarantine table 2026-05-20 17:53:47 +02:00
FreddleSpl0it f553f38635 [Nginx] Update to 1.30.1 2026-05-20 17:24:41 +02:00
renovate[bot] 07373907e3 Update devops-infra/action-pull-request action to v1.1.1 (#7234) 2026-05-18 08:38:18 +02:00
Jahongir Qurbonov 4ddcee28e4 Add Uzbek language (#7224) 2026-05-13 16:42:38 +02:00
milkmaker b0d16bbcee [Web] Updated lang.pt-br.json (#7228)
Co-authored-by: Edson Wolf <edsonwolf@vivaldi.net>
2026-05-13 16:42:03 +02:00
FreddleSpl0it 384e2f6ac1 Merge pull request #7227 from mailcow/staging
Update 2026-05a
2026-05-13 10:42:14 +02:00
FreddleSpl0it 9175e5f086 Merge pull request #7226 from mailcow/feat/sogo-5.12.8
[SOGo] Update to 5.12.8
2026-05-13 10:34:50 +02:00
FreddleSpl0it ff3d571054 [SOGo] Update to 5.12.8 2026-05-13 10:31:23 +02:00
11 changed files with 1471 additions and 23 deletions
@@ -14,7 +14,7 @@ jobs:
pull-requests: write pull-requests: write
steps: steps:
- name: Mark/Close Stale Issues and Pull Requests 🗑️ - name: Mark/Close Stale Issues and Pull Requests 🗑️
uses: actions/stale@v10.2.0 uses: actions/stale@v10.3.0
with: with:
repo-token: ${{ secrets.STALE_ACTION_PAT }} repo-token: ${{ secrets.STALE_ACTION_PAT }}
days-before-stale: 60 days-before-stale: 60
+1 -1
View File
@@ -12,7 +12,7 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
- name: Run the Action - name: Run the Action
uses: devops-infra/action-pull-request@v1.0.2 uses: devops-infra/action-pull-request@v1.2.0
with: with:
github_token: ${{ secrets.PRTONIGHTLY_ACTION_PAT }} github_token: ${{ secrets.PRTONIGHTLY_ACTION_PAT }}
title: Automatic PR to nightly from ${{ github.event.repository.updated_at}} title: Automatic PR to nightly from ${{ github.event.repository.updated_at}}
+1 -1
View File
@@ -1,4 +1,4 @@
FROM nginx:alpine FROM nginx:1.30.2-alpine
LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer "The Infrastructure Company GmbH <info@servercow.de>"
ENV PIP_BREAK_SYSTEM_PACKAGES=1 ENV PIP_BREAK_SYSTEM_PACKAGES=1
+3 -3
View File
@@ -1,6 +1,6 @@
# SOGo built from source to enable security patch application # SOGo built from source to enable security patch application
# Repository: https://github.com/Alinto/sogo # Repository: https://github.com/Alinto/sogo
# Version: SOGo-5.12.4 # Version: SOGo-5.12.8
# #
# Applied security patches: # Applied security patches:
# - # -
@@ -12,8 +12,8 @@ FROM debian:bookworm
LABEL maintainer="The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer="The Infrastructure Company GmbH <info@servercow.de>"
ARG DEBIAN_FRONTEND=noninteractive ARG DEBIAN_FRONTEND=noninteractive
ARG SOGO_VERSION=SOGo-5.12.5 ARG SOGO_VERSION=SOGo-5.12.8
ARG SOPE_VERSION=SOPE-5.12.5 ARG SOPE_VERSION=SOPE-5.12.8
# Security patches to apply (space-separated commit hashes) # Security patches to apply (space-separated commit hashes)
ARG SOGO_SECURITY_PATCHES="" ARG SOGO_SECURITY_PATCHES=""
# renovate: datasource=github-releases depName=tianon/gosu versioning=semver-coerced extractVersion=^(?<version>.*)$ # renovate: datasource=github-releases depName=tianon/gosu versioning=semver-coerced extractVersion=^(?<version>.*)$
+4 -1
View File
@@ -2,11 +2,14 @@ FROM alpine:3.23
LABEL maintainer = "The Infrastructure Company GmbH <info@servercow.de>" LABEL maintainer = "The Infrastructure Company GmbH <info@servercow.de>"
# install unbound from alpine:edge to get security patches
RUN apk add --no-cache --repository=https://dl-cdn.alpinelinux.org/alpine/edge/main unbound
# install other packages from regular alpine stable repo
RUN apk add --update --no-cache \ RUN apk add --update --no-cache \
curl \ curl \
bind-tools \ bind-tools \
coreutils \ coreutils \
unbound \
bash \ bash \
openssl \ openssl \
drill \ drill \
+1
View File
@@ -112,6 +112,7 @@ $AVAILABLE_LANGUAGES = array(
'sv-se' => 'Svenska (Swedish)', 'sv-se' => 'Svenska (Swedish)',
'tr-tr' => 'Türkçe (Turkish)', 'tr-tr' => 'Türkçe (Turkish)',
'uk-ua' => 'Українська (Ukrainian)', 'uk-ua' => 'Українська (Ukrainian)',
'uz-uz' => 'Oʻzbekcha (Uzbek)',
'vi-vn' => 'Tiếng Việt (Vietnamese)', 'vi-vn' => 'Tiếng Việt (Vietnamese)',
'zh-cn' => '简体中文 (Simplified Chinese)', 'zh-cn' => '简体中文 (Simplified Chinese)',
'zh-tw' => '繁體中文 (Traditional Chinese)', 'zh-tw' => '繁體中文 (Traditional Chinese)',
+8 -4
View File
@@ -102,18 +102,21 @@ jQuery(function($){
{ {
title: 'ID', title: 'ID',
data: 'id', data: 'id',
defaultContent: '' defaultContent: '',
render: $.fn.dataTable.render.text()
}, },
{ {
title: lang.qid, title: lang.qid,
data: 'qid', data: 'qid',
defaultContent: '' defaultContent: '',
render: $.fn.dataTable.render.text()
}, },
{ {
title: lang.sender, title: lang.sender,
data: 'sender', data: 'sender',
className: 'senders-mw220', className: 'senders-mw220',
defaultContent: '' defaultContent: '',
render: $.fn.dataTable.render.text()
}, },
{ {
title: lang.subj, title: lang.subj,
@@ -128,7 +131,8 @@ jQuery(function($){
{ {
title: lang.rcpt, title: lang.rcpt,
data: 'rcpt', data: 'rcpt',
defaultContent: '' defaultContent: '',
render: $.fn.dataTable.render.text()
}, },
{ {
title: lang.danger, title: lang.danger,
+1 -1
View File
@@ -189,7 +189,7 @@
"api_info": "API jest w trakcie prac. Dokumentację można znaleźć pod adresem <a href=\"/api\">/api</a>", "api_info": "API jest w trakcie prac. Dokumentację można znaleźć pod adresem <a href=\"/api\">/api</a>",
"api_key": "klucz API", "api_key": "klucz API",
"api_read_only": "Dostęp tylko do odczytu", "api_read_only": "Dostęp tylko do odczytu",
"api_read_write": "Dostęp tylko do odczytu", "api_read_write": "Dostęp do odczytu i zapisu",
"api_skip_ip_check": "Pomiń sprawdzenie IP dla API", "api_skip_ip_check": "Pomiń sprawdzenie IP dla API",
"app_hide": "Ukryj dla logowania", "app_hide": "Ukryj dla logowania",
"app_links": "Linki aplikacji", "app_links": "Linki aplikacji",
+8 -8
View File
@@ -38,7 +38,7 @@
"add_domain_only": "Adicionar somente domínio", "add_domain_only": "Adicionar somente domínio",
"add_domain_restart": "Adicionar domínio e reiniciar o SoGo", "add_domain_restart": "Adicionar domínio e reiniciar o SoGo",
"alias_address": "Endereço (s) de alias", "alias_address": "Endereço (s) de alias",
"alias_address_info": "<small>Endereço/s de e-mail completo ou @example .com, para capturar todas as mensagens de um domínio (separadas por vírgula). <b> somente domínios mailcow</b>.</small>", "alias_address_info": "<small>Endereço(s) de e-mail completo(s) ou @example.com, para capturar todas as mensagens de um domínio (separadas por vírgula). <b>Apenas domínios do Mailcow</b>.</small>",
"alias_domain": "Domínio de alias", "alias_domain": "Domínio de alias",
"alias_domain_info": "<small>Somente nomes de domínio válidos (separados por vírgula).</small>", "alias_domain_info": "<small>Somente nomes de domínio válidos (separados por vírgula).</small>",
"app_name": "Nome do aplicativo", "app_name": "Nome do aplicativo",
@@ -158,7 +158,7 @@
"logo_dark_label": "Invertido para o modo escuro", "logo_dark_label": "Invertido para o modo escuro",
"configuration": "Configuração", "configuration": "Configuração",
"convert_html_to_text": "Converter HTML em texto sem formatação", "convert_html_to_text": "Converter HTML em texto sem formatação",
"copy_to_clipboard": "Text copied to clipboard!", "copy_to_clipboard": "Copiado para a área de transferência!",
"cors_settings": "Configurações do CORS", "cors_settings": "Configurações do CORS",
"credentials_transport_warning": "<b>Aviso</b>: Adicionar uma nova entrada no mapa de transporte atualizará as credenciais de todas as entradas com uma coluna correspondente do próximo salto.", "credentials_transport_warning": "<b>Aviso</b>: Adicionar uma nova entrada no mapa de transporte atualizará as credenciais de todas as entradas com uma coluna correspondente do próximo salto.",
"customer_id": "ID do cliente", "customer_id": "ID do cliente",
@@ -223,7 +223,7 @@
"includes": "Inclua esses destinatários", "includes": "Inclua esses destinatários",
"ip_check": "Verificação de IP", "ip_check": "Verificação de IP",
"ip_check_disabled": "A verificação de IP está desativada. Você pode ativá-lo em <br><strong>Sistema > Configuração > Opções > Personalizar</strong>", "ip_check_disabled": "A verificação de IP está desativada. Você pode ativá-lo em <br><strong>Sistema > Configuração > Opções > Personalizar</strong>",
"ip_check_opt_in": "Opte por usar o serviço de terceiros <strong>ipv4.mailcow.email.</strong> e <strong>ipv6.mailcow.email</strong> para resolver endereços IP externos.", "ip_check_opt_in": "Opte por usar o serviço de terceiros <strong>ipv4.mailcow.email</strong> e <strong>ipv6.mailcow.email</strong> para resolver endereços IP externos.",
"is_mx_based": "Baseado em MX", "is_mx_based": "Baseado em MX",
"last_applied": "Aplicado pela última vez", "last_applied": "Aplicado pela última vez",
"license_info": "Uma licença não é necessária, mas ajuda no desenvolvimento.<br><a href=\"https://www.servercow.de/mailcow? Lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Registre seu GUID aqui</a> ou <a href=\"https://www.servercow.de/mailcow? Lang=en#support\" target=\"_blank\" alt=\"Support order\">comprar suporte para sua instalação de mailcow.</a>", "license_info": "Uma licença não é necessária, mas ajuda no desenvolvimento.<br><a href=\"https://www.servercow.de/mailcow? Lang=en#sal\" target=\"_blank\" alt=\"SAL order\">Registre seu GUID aqui</a> ou <a href=\"https://www.servercow.de/mailcow? Lang=en#support\" target=\"_blank\" alt=\"Support order\">comprar suporte para sua instalação de mailcow.</a>",
@@ -245,7 +245,7 @@
"oauth2_add_client": "Adicionar cliente OAuth2", "oauth2_add_client": "Adicionar cliente OAuth2",
"oauth2_client_id": "ID do cliente", "oauth2_client_id": "ID do cliente",
"oauth2_client_secret": "Segredo do cliente", "oauth2_client_secret": "Segredo do cliente",
"oauth2_info": "A implementação OAuth2 suporta o tipo de concessão \"Código de Autorização\" e emite tokens de atualização.<br>\nO servidor também emite automaticamente novos tokens de atualização, depois que um token de atualização foi usado.<br><br>\n&#8226; O escopo padrão é <i>perfil</i>. Somente usuários com caixa de e-mail podem ser autenticados contra o OAuth2. Se o parâmetro de escopo for omitido, ele voltará para <i>perfil</i>.<br>\nCaminhos para solicitações OAuth2 API: <br>\n<ul>\n<li>Endpoint de autorização: <code>/oauth/authorize</code></li>\n<li>Endpoint token: <code>/oauth/token</code></li>\n<li>Página de recursos: <code>/oauth/profile</code></li>\n</ul>\nRegenerar o segredo do cliente não expirará os códigos de autorização existentes, mas eles não renovarão seu token.<br><br>\nA revogação dos tokens do cliente causará o término imediato de todas as sessões ativas. Todos os clientes precisam se autenticar novamente.", "oauth2_info": "A implementação do OAuth2 suporta o tipo de concessão \"Código de Autorização\" e emite tokens de atualização.<br>\nO servidor também emite automaticamente novos tokens de atualização após um token de atualização ter sido usado.<br>\nO escopo padrão é <i>profile</i>. Somente usuários de caixa de correio podem ser autenticados com o OAuth2. Se o parâmetro de escopo for omitido, o padrão será <i>profile</i>.<br>\nO parâmetro <i>state</i> deve ser enviado pelo cliente como parte da solicitação de autorização.<br><br>\nCaminhos para solicitações à API OAuth2: <br>\n\n<ul>\n <li>Ponto de extremidade de autorização: <code>/oauth/authorize</code></li>\n <li>Endpoint do token: <code>/oauth/token</code></li>\n <li>Página de recursos: <code>/oauth/profile</code></li>\n</ul>\n\nRegenerar o segredo do cliente não expirará os códigos de autorização existentes, mas impedirá a renovação do token.<br><br>\nA revogação dos tokens de cliente causará o encerramento imediato de todas as sessões ativas. Todos os clientes precisarão se autenticar novamente.",
"oauth2_redirect_uri": "URI de redirecionamento", "oauth2_redirect_uri": "URI de redirecionamento",
"oauth2_renew_secret": "Gere um novo segredo de cliente", "oauth2_renew_secret": "Gere um novo segredo de cliente",
"oauth2_revoke_tokens": "Revogar todos os tokens do cliente", "oauth2_revoke_tokens": "Revogar todos os tokens do cliente",
@@ -730,7 +730,7 @@
"pushover_verify": "Verifique as credenciais", "pushover_verify": "Verifique as credenciais",
"quota_mb": "Cota (MiB)", "quota_mb": "Cota (MiB)",
"quota_warning_bcc": "Aviso de cota BCC", "quota_warning_bcc": "Aviso de cota BCC",
"quota_warning_bcc_info": "Os avisos serão enviados em cópias separadas para os seguintes destinatários. O assunto será sufixado pelo nome de usuário correspondente entre colchetes, por exemplo: <code>Aviso de cota (</code>user@example.com).", "quota_warning_bcc_info": "Os avisos serão enviados em cópias separadas para os seguintes destinatários. O assunto será precedido pelo nome de usuário correspondente entre colchetes, por exemplo: <code>Aviso de cota (user@example.com)</code>.",
"ratelimit": "Limite de taxa", "ratelimit": "Limite de taxa",
"redirect_uri": "URL de redirecionamento/retorno de chamada", "redirect_uri": "URL de redirecionamento/retorno de chamada",
"relay_all": "Retransmita todos os destinatários", "relay_all": "Retransmita todos os destinatários",
@@ -759,7 +759,7 @@
"spam_score": "Defina uma pontuação de spam personalizada", "spam_score": "Defina uma pontuação de spam personalizada",
"subfolder2": "Sincronizar na subpasta no destino <br><small>(vazio = não usar subpasta</small>)", "subfolder2": "Sincronizar na subpasta no destino <br><small>(vazio = não usar subpasta</small>)",
"syncjob": "Editar tarefa de sincronização", "syncjob": "Editar tarefa de sincronização",
"target_address": "<small>Ir para endereço/es (separados por vírgula)</small>", "target_address": "Ir para o(s) endereço(s) <small>(separados por vírgula)</small>",
"target_domain": "Domínio de destino", "target_domain": "Domínio de destino",
"timeout1": "Tempo limite para conexão com o host remoto", "timeout1": "Tempo limite para conexão com o host remoto",
"timeout2": "Tempo limite para conexão com o host local", "timeout2": "Tempo limite para conexão com o host local",
@@ -807,7 +807,7 @@
"cancel": "Cancelar", "cancel": "Cancelar",
"confirm_delete": "Confirme a exclusão", "confirm_delete": "Confirme a exclusão",
"delete_now": "Excluir agora", "delete_now": "Excluir agora",
"delete_these_items": "Confirme suas alterações no seguinte ID de objeto", "delete_these_items": "Por favor, confirme as alterações feitas no seguinte ID de objeto.",
"hibp_check": "Verifique em haveibeenpwned.com", "hibp_check": "Verifique em haveibeenpwned.com",
"hibp_nok": "Combinado! Essa é uma senha potencialmente perigosa!", "hibp_nok": "Combinado! Essa é uma senha potencialmente perigosa!",
"hibp_ok": "Nenhuma combinação encontrada.", "hibp_ok": "Nenhuma combinação encontrada.",
@@ -1393,7 +1393,7 @@
"syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Não é possível se conectar ao servidor remoto", "syncjob_EXIT_CONNECTION_FAILURE_HOST1": "Não é possível se conectar ao servidor remoto",
"syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "Nome de usuário ou senha incorretos", "syncjob_EXIT_AUTHENTICATION_FAILURE_USER1": "Nome de usuário ou senha incorretos",
"tag_handling": "Definir o tratamento para e-mails marcados", "tag_handling": "Definir o tratamento para e-mails marcados",
"tag_help_example": "Exemplo de um endereço de e-mail marcado: me <b>+Facebook</b> @example .org", "tag_help_example": "Exemplo de endereço de e-mail com tag: eu+Facebook</b>@exemplo.org",
"tag_help_explain": "Na subpasta: uma nova subpasta com o nome da tag será criada abaixo da CAIXA DE ENTRADA (“Caixa de entrada/Facebook”). <br>\r\nNo assunto: o nome das tags será anexado ao assunto do e-mail, por exemplo: “[Facebook] Minhas notícias”.", "tag_help_explain": "Na subpasta: uma nova subpasta com o nome da tag será criada abaixo da CAIXA DE ENTRADA (“Caixa de entrada/Facebook”). <br>\r\nNo assunto: o nome das tags será anexado ao assunto do e-mail, por exemplo: “[Facebook] Minhas notícias”.",
"tag_in_none": "Não faça nada", "tag_in_none": "Não faça nada",
"tag_in_subfolder": "Na subpasta", "tag_in_subfolder": "Na subpasta",
File diff suppressed because it is too large Load Diff
+3 -3
View File
@@ -1,7 +1,7 @@
services: services:
unbound-mailcow: unbound-mailcow:
image: ghcr.io/mailcow/unbound:1.25 image: ghcr.io/mailcow/unbound:1.25.1-1
environment: environment:
- TZ=${TZ} - TZ=${TZ}
- SKIP_UNBOUND_HEALTHCHECK=${SKIP_UNBOUND_HEALTHCHECK:-n} - SKIP_UNBOUND_HEALTHCHECK=${SKIP_UNBOUND_HEALTHCHECK:-n}
@@ -200,7 +200,7 @@ services:
- phpfpm - phpfpm
sogo-mailcow: sogo-mailcow:
image: ghcr.io/mailcow/sogo:5.12.5-3 image: ghcr.io/mailcow/sogo:5.12.8-1
environment: environment:
- DBNAME=${DBNAME} - DBNAME=${DBNAME}
- DBUSER=${DBUSER} - DBUSER=${DBUSER}
@@ -419,7 +419,7 @@ services:
- php-fpm-mailcow - php-fpm-mailcow
- sogo-mailcow - sogo-mailcow
- rspamd-mailcow - rspamd-mailcow
image: ghcr.io/mailcow/nginx:1.06 image: ghcr.io/mailcow/nginx:1.30.2-1
dns: dns:
- ${IPV4_NETWORK:-172.22.1}.254 - ${IPV4_NETWORK:-172.22.1}.254
environment: environment: