From 7e037663a1bd97702e27a656a539d18ed0b22b14 Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Sun, 12 Feb 2017 16:58:58 +0100 Subject: [PATCH 1/5] Use relative path for certificates, fixes #35 (cherry picked from commit e6c18e6ac3803ffe6fcd2c418b44496dfccce4ce) --- admin/mailu/certbot.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/admin/mailu/certbot.py b/admin/mailu/certbot.py index 7b476a19..b58ea68a 100644 --- a/admin/mailu/certbot.py +++ b/admin/mailu/certbot.py @@ -28,15 +28,17 @@ def certbot_install(domain): path = app.config["CERTS_PATH"] cert = os.path.join(path, "cert.pem") key = os.path.join(path, "key.pem") - live_cert = os.path.join(path, "live", domain, "fullchain.pem") - live_key = os.path.join(path, "live", domain, "privkey.pem") + live_cert = os.path.join("live", domain, "fullchain.pem") + live_key = os.path.join("live", domain, "privkey.pem") if not os.path.islink(cert) or os.readlink(cert) != live_cert: must_reload = True - os.unlink(cert) + if os.path.exists(cert): + os.unlink(cert) os.symlink(live_cert, cert) if not os.path.islink(key) or os.readlink(key) != live_key: must_reload = True - os.unlink(key) + if os.path.exists(key): + os.unlink(key) os.symlink(live_key, key) return must_reload From 2bd2fb456b001b75d7f0c14e4ac9d9f6eda0386d Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Sun, 12 Feb 2017 19:55:46 +0100 Subject: [PATCH 2/5] Publish version 1.4.0 --- CHANGELOG.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e8815ebc..1964a595 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,15 +5,30 @@ Notable changes to this project are documented in the current file. For more details about individual changes, see the Git log. You should read this before upgrading Freposte.io as some changes will include useful notes. -v1.4.0 - unreleased +v1.4.0 - 2017-02-12 ------------------- - Global: make sure that ``DEBUG`` is commented in your ``.env`` if you disabled it and update your ``docker-compose.yml`` +- Global: now only using proper upstream packages - Security: disable verbose logging of passwords by the fetchmail script +- Security: the SMTP TLS configuration was improved - Feature: certbot certificate generation is available, uncomment ``ENABLE_CERTBOT`` in your ``.env`` to enable it +- Feature: fetched emails can now be kept on the remote server +- Feature: a maximum quota can now be configured per domain +- Feature: admins can now send public announcements +- Feature: managesieve is enabled and configured in Webmails automatically +- Feature: a DAV server is available +- L10N: language is selected automatically based on HTTP headers - L10N: french loca is now available +- L10N: german loca is now available +- L10N: dutch loca is now available +- Upstream: upgrade to Roundcube 1.2.3 +- Upstream: upgrade to Dovecot 2.2.27 +- Bug: mail forwards are now handled by Postfix directly to avoid many bugs + with sieve forwards +- Bug: fixed multiple bugs in the admin UI v1.3.0 - 2016-11-05 ------------------- From c1d175d7a7b28605f516d609ea2433ffc57beefb Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Tue, 14 Feb 2017 21:37:51 +0100 Subject: [PATCH 3/5] Handle infinite quotas when adding validators, fixes #162 (cherry picked from commit fe0b292d452c0b54386c169899ffec4517becb7d) --- admin/mailu/admin/views/users.py | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/admin/mailu/admin/views/users.py b/admin/mailu/admin/views/users.py index b7647138..0d086e23 100644 --- a/admin/mailu/admin/views/users.py +++ b/admin/mailu/admin/views/users.py @@ -22,8 +22,9 @@ def user_create(domain_name): return flask.redirect( flask.url_for('.user_list', domain_name=domain.name)) form = forms.UserForm() - form.quota_bytes.validators = [ - wtforms.validators.NumberRange(max=domain.max_quota_bytes)] + if domain.max_quota_bytes: + form.quota_bytes.validators = [ + wtforms.validators.NumberRange(max=domain.max_quota_bytes)] if form.validate_on_submit(): if domain.has_email(form.localpart.data): flask.flash('Email is already used', 'error') @@ -53,8 +54,9 @@ def user_edit(user_email): wtforms_components.read_only(form.localpart) form.pw.validators = [] form.localpart.validators = [] - form.quota_bytes.validators = [ - wtforms.validators.NumberRange(max=max_quota_bytes)] + if max_quota_bytes: + form.quota_bytes.validators = [ + wtforms.validators.NumberRange(max=max_quota_bytes)] if form.validate_on_submit(): form.populate_obj(user) if form.pw.data: From c350a2b2aea0308bd9a88b9c323f275639d7e272 Mon Sep 17 00:00:00 2001 From: matiasvictor Date: Mon, 27 Mar 2017 11:50:04 -0300 Subject: [PATCH 4/5] Add portuguese translation --- .../translations/pt/LC_MESSAGES/messages.po | 518 ++++++++++++++++++ 1 file changed, 518 insertions(+) create mode 100644 admin/mailu/translations/pt/LC_MESSAGES/messages.po diff --git a/admin/mailu/translations/pt/LC_MESSAGES/messages.po b/admin/mailu/translations/pt/LC_MESSAGES/messages.po new file mode 100644 index 00000000..1a1e97a1 --- /dev/null +++ b/admin/mailu/translations/pt/LC_MESSAGES/messages.po @@ -0,0 +1,518 @@ +# Translations template for PROJECT. +# Copyright (C) 2016 ORGANIZATION +# This file is distributed under the same license as the PROJECT project. +# FIRST AUTHOR , 2016. +# +msgid "" +msgstr "" +"Project-Id-Version: PROJECT VERSION\n" +"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" +"POT-Creation-Date: 2017-03-27 11:37-0300\n" +"PO-Revision-Date: 2017-03-27 11:43-0300\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Generated-By: Babel 2.3.4\n" +"X-Generator: Poedit 1.8.9\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"X-Poedit-Basepath: .\n" + +#: mailu/admin/forms.py:32 +msgid "Invalid email address." +msgstr "Endereço de e-mail inválido" + +#: mailu/admin/forms.py:36 +msgid "Confirm" +msgstr "Confirmar" + +#: mailu/admin/forms.py:40 mailu/admin/forms.py:54 +msgid "E-mail" +msgstr "E-mail" + +#: mailu/admin/forms.py:41 mailu/admin/forms.py:55 mailu/admin/forms.py:72 +#: mailu/admin/forms.py:120 +msgid "Password" +msgstr "Senha" + +#: mailu/admin/forms.py:42 mailu/admin/templates/login.html:9 +#: mailu/admin/templates/login.html:17 +msgid "Sign in" +msgstr "Entrar" + +#: mailu/admin/forms.py:46 mailu/admin/templates/domain/details.html:21 +#: mailu/admin/templates/domain/list.html:19 +msgid "Domain name" +msgstr "Domínio" + +#: mailu/admin/forms.py:47 +msgid "Maximum user count" +msgstr "Quantidade máxima de usuários" + +#: mailu/admin/forms.py:48 +msgid "Maximum alias count" +msgstr "Quantidade máxima de alias" + +#: mailu/admin/forms.py:49 mailu/admin/forms.py:60 mailu/admin/forms.py:98 +#: mailu/admin/templates/alias/list.html:22 +#: mailu/admin/templates/domain/list.html:22 +#: mailu/admin/templates/user/list.html:24 +msgid "Comment" +msgstr "Comentário" + +#: mailu/admin/forms.py:50 mailu/admin/forms.py:99 +msgid "Create" +msgstr "Criar" + +#: mailu/admin/forms.py:56 +msgid "Confirm password" +msgstr "Confirmar senha" + +#: mailu/admin/forms.py:57 mailu/admin/templates/user/list.html:23 +msgid "Quota" +msgstr "Quota" + +#: mailu/admin/forms.py:58 +msgid "Allow IMAP access" +msgstr "Permitir acesso IMAP" + +#: mailu/admin/forms.py:59 +msgid "Allow POP3 access" +msgstr "Permitir acesso POP3" + +#: mailu/admin/forms.py:61 +msgid "Save" +msgstr "Salvar" + +#: mailu/admin/forms.py:65 +msgid "Displayed name" +msgstr "Nome de exibição" + +#: mailu/admin/forms.py:66 +msgid "Enable spam filter" +msgstr "Habilitar filtro de spam" + +#: mailu/admin/forms.py:67 +msgid "Spam filter threshold" +msgstr "Limite de filtro de spam" + +#: mailu/admin/forms.py:68 +msgid "Save settings" +msgstr "Salvar configurações" + +#: mailu/admin/forms.py:73 +msgid "Password check" +msgstr "Confirmação de senha" + +#: mailu/admin/forms.py:74 mailu/admin/templates/sidebar.html:13 +msgid "Update password" +msgstr "Alterar senha" + +#: mailu/admin/forms.py:78 +msgid "Enable forwarding" +msgstr "Habilitar encaminhamento" + +#: mailu/admin/forms.py:80 mailu/admin/forms.py:97 +#: mailu/admin/templates/alias/list.html:21 +msgid "Destination" +msgstr "Destinatário" + +#: mailu/admin/forms.py:82 mailu/admin/forms.py:90 +msgid "Update" +msgstr "Atualizar" + +#: mailu/admin/forms.py:86 +msgid "Enable automatic reply" +msgstr "Habilitar resposta automática" + +#: mailu/admin/forms.py:87 +msgid "Reply subject" +msgstr "Assunto da resposta" + +#: mailu/admin/forms.py:88 +msgid "Reply body" +msgstr "Corpo da resposta" + +#: mailu/admin/forms.py:94 +msgid "Alias" +msgstr "Alias" + +#: mailu/admin/forms.py:96 +msgid "Use SQL LIKE Syntax (e.g. for catch-all aliases)" +msgstr "Usar sintaxe estilo SQL(ex: for catch-all aliases)" + +#: mailu/admin/forms.py:103 +msgid "Admin email" +msgstr "E-mail do administrador" + +#: mailu/admin/forms.py:104 mailu/admin/forms.py:109 mailu/admin/forms.py:121 +msgid "Submit" +msgstr "Enviar" + +#: mailu/admin/forms.py:108 +msgid "Manager email" +msgstr "E-mail do gerente" + +#: mailu/admin/forms.py:113 +msgid "Protocol" +msgstr "Protocolo" + +#: mailu/admin/forms.py:116 +msgid "Hostname or IP" +msgstr "Hostname ou IP" + +#: mailu/admin/forms.py:117 +msgid "TCP port" +msgstr "Porta TCP" + +#: mailu/admin/forms.py:118 +msgid "Enable TLS" +msgstr "Habilitar TLS" + +#: mailu/admin/forms.py:119 mailu/admin/templates/fetch/list.html:21 +msgid "Username" +msgstr "Usuário" + +#: mailu/admin/forms.py:121 +msgid "Keep emails on the server" +msgstr "Manter os e-mails no servidor" + +#: mailu/admin/forms.py:125 +msgid "Announcement subject" +msgstr "Título do comunicado" + +#: mailu/admin/forms.py:127 +msgid "Announcement body" +msgstr "Corpo do comunicado" + +#: mailu/admin/forms.py:129 +msgid "Send" +msgstr "Enviar" + +#: mailu/admin/templates/announcement.html:4 +msgid "Public announcement" +msgstr "Comunicado geral" + +#: mailu/admin/templates/announcement.html:8 +msgid "from" +msgstr "de" + +#: mailu/admin/templates/confirm.html:4 +msgid "Confirm action" +msgstr "Confirmar ação" + +#: mailu/admin/templates/confirm.html:12 +#, python-format +msgid "You are about to %(action)s. Please confirm your action." +msgstr "Por favor, confirme a(s) %(action)s" + +#: mailu/admin/templates/docker-error.html:4 +msgid "Docker error" +msgstr "Erro no docker" + +#: mailu/admin/templates/docker-error.html:12 +msgid "An error occurred while talking to the Docker server." +msgstr "Um erro foi encontrado na conexão com o servidor Docker" + +#: mailu/admin/templates/login.html:6 +msgid "Your account" +msgstr "Sua conta" + +#: mailu/admin/templates/login.html:21 +msgid "to access the administration tools" +msgstr "para acessar as ferramentas administrativas" + +#: mailu/admin/templates/services.html:4 mailu/admin/templates/sidebar.html:40 +msgid "Services status" +msgstr "Status do serviço" + +#: mailu/admin/templates/services.html:11 +msgid "Service" +msgstr "Serviço" + +#: mailu/admin/templates/fetch/list.html:23 +#: mailu/admin/templates/services.html:12 +msgid "Status" +msgstr "Status" + +#: mailu/admin/templates/services.html:13 +msgid "PID" +msgstr "PID" + +#: mailu/admin/templates/services.html:14 +msgid "Image" +msgstr "Imagem" + +#: mailu/admin/templates/services.html:15 +msgid "Started" +msgstr "Iniciado" + +#: mailu/admin/templates/services.html:16 +msgid "Last update" +msgstr "Última atualização" + +#: mailu/admin/templates/sidebar.html:5 +msgid "My account" +msgstr "Minha conta" + +#: mailu/admin/templates/sidebar.html:8 mailu/admin/templates/user/list.html:35 +msgid "Settings" +msgstr "Configurações" + +#: mailu/admin/templates/sidebar.html:18 +#: mailu/admin/templates/user/list.html:36 +msgid "Auto-forward" +msgstr "Encaminhamento automático" + +#: mailu/admin/templates/sidebar.html:23 +#: mailu/admin/templates/user/list.html:37 +msgid "Auto-reply" +msgstr "Resposta automática" + +#: mailu/admin/templates/fetch/list.html:4 +#: mailu/admin/templates/sidebar.html:28 +#: mailu/admin/templates/user/list.html:38 +msgid "Fetched accounts" +msgstr "Contas importadas" + +#: mailu/admin/templates/sidebar.html:33 +msgid "Sign out" +msgstr "Sair" + +#: mailu/admin/templates/sidebar.html:36 +msgid "Administration" +msgstr "Administração" + +#: mailu/admin/templates/sidebar.html:45 +msgid "Announcement" +msgstr "Comunicado" + +#: mailu/admin/templates/sidebar.html:50 +msgid "Administrators" +msgstr "Administradores" + +#: mailu/admin/templates/sidebar.html:57 +msgid "Mail domains" +msgstr "Domínios de e-mail" + +#: mailu/admin/templates/sidebar.html:64 +msgid "Help" +msgstr "Ajuda" + +#: mailu/admin/templates/working.html:4 +msgid "We are still working on this feature!" +msgstr "Nós ainda estamos trabalhando nesta função!" + +#: mailu/admin/templates/admin/create.html:4 +msgid "Add a global administrator" +msgstr "Adicionar administrador global" + +#: mailu/admin/templates/admin/list.html:4 +msgid "Global administrators" +msgstr "Administradores globais" + +#: mailu/admin/templates/admin/list.html:9 +msgid "Add administrator" +msgstr "Adicionar administrador" + +#: mailu/admin/templates/admin/list.html:17 +#: mailu/admin/templates/alias/list.html:19 +#: mailu/admin/templates/domain/list.html:17 +#: mailu/admin/templates/fetch/list.html:19 +#: mailu/admin/templates/manager/list.html:19 +#: mailu/admin/templates/user/list.html:19 +msgid "Actions" +msgstr "Ações" + +#: mailu/admin/templates/admin/list.html:18 +#: mailu/admin/templates/alias/list.html:20 +#: mailu/admin/templates/manager/list.html:20 +#: mailu/admin/templates/user/list.html:21 +msgid "Email" +msgstr "Email" + +#: mailu/admin/templates/admin/list.html:23 +#: mailu/admin/templates/alias/list.html:30 +#: mailu/admin/templates/domain/list.html:32 +#: mailu/admin/templates/fetch/list.html:31 +#: mailu/admin/templates/manager/list.html:25 +#: mailu/admin/templates/user/list.html:32 +msgid "Delete" +msgstr "Deletar" + +#: mailu/admin/templates/alias/create.html:4 +msgid "Create alias" +msgstr "Criar alias" + +#: mailu/admin/templates/alias/edit.html:4 +msgid "Edit alias" +msgstr "Editar alias" + +#: mailu/admin/templates/alias/list.html:4 +msgid "Alias list" +msgstr "Lista de alias" + +#: mailu/admin/templates/alias/list.html:12 +msgid "Add alias" +msgstr "Adicionar alias" + +#: mailu/admin/templates/alias/list.html:23 +#: mailu/admin/templates/domain/list.html:23 +#: mailu/admin/templates/fetch/list.html:24 +#: mailu/admin/templates/user/list.html:25 +msgid "Created" +msgstr "Criado" + +#: mailu/admin/templates/alias/list.html:24 +#: mailu/admin/templates/domain/list.html:24 +#: mailu/admin/templates/fetch/list.html:25 +#: mailu/admin/templates/user/list.html:26 +msgid "Last edit" +msgstr "Última edição" + +#: mailu/admin/templates/alias/list.html:29 +#: mailu/admin/templates/domain/list.html:31 +#: mailu/admin/templates/fetch/list.html:30 +#: mailu/admin/templates/user/list.html:31 +msgid "Edit" +msgstr "Editar" + +#: mailu/admin/templates/domain/create.html:4 +#: mailu/admin/templates/domain/list.html:9 +msgid "New domain" +msgstr "Novo domínio" + +#: mailu/admin/templates/domain/details.html:4 +msgid "Domain details" +msgstr "Detalhes do domínio" + +#: mailu/admin/templates/domain/details.html:13 +msgid "Regenerate keys" +msgstr "Gerar novas chaves" + +#: mailu/admin/templates/domain/details.html:25 +msgid "DNS MX entry" +msgstr "Entrada DNS MX" + +#: mailu/admin/templates/domain/details.html:29 +msgid "DNS SPF entries" +msgstr "Entrada DNS SPF" + +#: mailu/admin/templates/domain/details.html:36 +msgid "DKIM public key" +msgstr "Chave pública do DKIM" + +#: mailu/admin/templates/domain/details.html:40 +msgid "DNS DKIM entry" +msgstr "Entrada DNS DKIM" + +#: mailu/admin/templates/domain/details.html:44 +msgid "DNS DMARC entry" +msgstr "Entrada DNS DMARC" + +#: mailu/admin/templates/domain/edit.html:4 +msgid "Edit domain" +msgstr "Editar domínio" + +#: mailu/admin/templates/domain/list.html:4 +msgid "Domain list" +msgstr "Lista de domínios" + +#: mailu/admin/templates/domain/list.html:18 +msgid "Manage" +msgstr "Gerenciar" + +#: mailu/admin/templates/domain/list.html:20 +msgid "Mailbox count" +msgstr "Quantidade de caixas de e-mail" + +#: mailu/admin/templates/domain/list.html:21 +msgid "Alias count" +msgstr "Quantidade de aliases" + +#: mailu/admin/templates/domain/list.html:29 +msgid "Details" +msgstr "Detalhes" + +#: mailu/admin/templates/domain/list.html:36 +msgid "Users" +msgstr "Usuários" + +#: mailu/admin/templates/domain/list.html:37 +msgid "Aliases" +msgstr "Aliases" + +#: mailu/admin/templates/domain/list.html:38 +msgid "Managers" +msgstr "Gerentes" + +#: mailu/admin/templates/fetch/create.html:4 +msgid "Add a fetched account" +msgstr "Adicionar conta a importar" + +#: mailu/admin/templates/fetch/edit.html:4 +msgid "Update a fetched account" +msgstr "Atualizar conta importada" + +#: mailu/admin/templates/fetch/list.html:12 +msgid "Add an account" +msgstr "Adicionar uma conta" + +#: mailu/admin/templates/fetch/list.html:20 +msgid "Endpoint" +msgstr "Endpoint" + +#: mailu/admin/templates/fetch/list.html:22 +msgid "Last check" +msgstr "Última verificação" + +#: mailu/admin/templates/manager/create.html:4 +msgid "Add a manager" +msgstr "Adicionar gerente" + +#: mailu/admin/templates/manager/list.html:4 +msgid "Manager list" +msgstr "Lista de gerentes" + +#: mailu/admin/templates/manager/list.html:12 +msgid "Add manager" +msgstr "Adicionar gerente" + +#: mailu/admin/templates/user/create.html:4 +msgid "New user" +msgstr "Novo usuário" + +#: mailu/admin/templates/user/edit.html:4 +msgid "Edit user" +msgstr "Editar usuário" + +#: mailu/admin/templates/user/forward.html:4 +msgid "Forward emails" +msgstr "Encaminhar e-mails" + +#: mailu/admin/templates/user/list.html:4 +msgid "User list" +msgstr "Lista de usuários" + +#: mailu/admin/templates/user/list.html:12 +msgid "Add user" +msgstr "Adicionar usuário" + +#: mailu/admin/templates/user/list.html:20 +#: mailu/admin/templates/user/settings.html:4 +msgid "User settings" +msgstr "Configurações de usuário" + +#: mailu/admin/templates/user/list.html:22 +msgid "Features" +msgstr "Funcionalidades" + +#: mailu/admin/templates/user/password.html:4 +msgid "Password update" +msgstr "Atualizar senha" + +#: mailu/admin/templates/user/reply.html:4 +msgid "Automatic reply" +msgstr "Resposta automática" From 3789c20f9df8c5649ebf8d3b1393b8eeda92ada3 Mon Sep 17 00:00:00 2001 From: Pierre Jaury Date: Sun, 9 Apr 2017 17:01:23 +0200 Subject: [PATCH 5/5] Make rspamd listen on 0.0.0.0, fix #179 (cherry picked from commit 9bac79692d0054b29ff7acdca5450f812db96948) --- rspamd/conf/worker-normal.conf | 6 ++++++ 1 file changed, 6 insertions(+) create mode 100644 rspamd/conf/worker-normal.conf diff --git a/rspamd/conf/worker-normal.conf b/rspamd/conf/worker-normal.conf new file mode 100644 index 00000000..3d7344d5 --- /dev/null +++ b/rspamd/conf/worker-normal.conf @@ -0,0 +1,6 @@ +worker { + bind_socket = "0.0.0.0:11333"; + .include "$CONFDIR/worker-normal.inc" + .include(try=true; priority=1,duplicate=merge) "$LOCAL_CONFDIR/local.d/worker-normal.inc" + .include(try=true; priority=10) "$LOCAL_CONFDIR/override.d/worker-normal.inc" +}