Commit Graph

327 Commits

Author SHA1 Message Date
Tim Möhlmann 6ca8ed437d Merge pull request #732 from Nebukadneza/add_front_certificate_reload
Add certificate watcher for external certs to reload nginx
2018-12-08 20:11:09 +02:00
Dario Ernst 1aa97c9914 Add certificate watcher for external certs to reload nginx
In case of TLS_FLAVOR=[mail,cert], the user supplies their own certificates.
However, since nginx is not aware of changes to these files, it cannot
reload itself e.g. when the certs get renewed.

To solve this, let’s add a small daemon in the place of
`letsencrypt.py`, which uses a flexible file-watching framework and
reloads nginx in the case the certificates change ….
2018-12-07 16:20:42 +00:00
Tim Möhlmann f0906073e3 Merge remote-tracking branch 'upstream/master' into feat-subnet2 2018-12-07 11:08:28 +02:00
mergify[bot] a634c7b72d Merge pull request #725 from usrpro/fix-outlook2019-smtp
Add login method to smtp_auth under ssl
2018-12-06 16:02:35 +00:00
Tim Möhlmann 8172f3eab8 Move the Mailu Docker network to a fixed subnet.
This will make network configuration and host based authentication
more robust, across different deployment platforms.
The options `RELAYNETS` and`POD_ADDRESS_RANGE` are kept for compatibility.
However, their usage have become optional.
2018-12-06 12:08:22 +02:00
kaiyou b6aaf57be1 Merge branch 'refactor-config' of github.com:kaiyou/mailu into refactor-config 2018-12-06 10:33:21 +01:00
kaiyou d0f07984b0 Merge remote-tracking branch 'upstream/master' into refactor-config 2018-12-06 10:23:43 +01:00
Tim Möhlmann 9dd447e23b Add login method to smtp_auth under ssl
Fixes #704
2018-12-06 01:00:16 +02:00
mergify[bot] 2d4bac03ad Merge pull request #723 from usrpro/clean-healthcheck-logs
Admin: Prevent redirects during health checking
2018-12-05 18:09:14 +00:00
mergify[bot] a382f74680 Merge pull request #705 from usrpro/fix-recaptcha
Fix recaptcha
2018-12-05 18:05:22 +00:00
mergify[bot] 37027cfce7 Merge pull request #633 from kaiyou/fix-sender-checks
Improve sender checks
2018-12-05 16:03:24 +00:00
Tim Möhlmann d18cf7cb25 Prevent redirects during health checking 2018-12-05 17:43:42 +02:00
Tim Möhlmann c9df311a0d Set forward_destination to an empty list
The value of `None` resulted in an error, since a list was expected.
2018-12-04 16:22:18 +02:00
Tim Möhlmann eff6c34632 Catch asterisk before resolve_domain
Asterisk results in IDNA error and a 500 return code.
2018-12-04 15:40:07 +02:00
David Rothera 88c174fb7a Query alternative table for domain matches
At present postfix checks this view for matches in the domain table and is used to accept/deny messages sent into it however it never checks for matches in the alternative table.

Fixes #718
2018-12-02 11:21:42 +00:00
Ionut Filip fed7146873 Captcha check on signup form 2018-11-09 12:30:49 +02:00
Tim Möhlmann 4783e61693 Fix password context
Fixes the following error:
```
admin_1      | [2018-11-09 09:44:10,533] ERROR in app: Exception on /internal/auth/email [GET]
admin_1      | Traceback (most recent call last):
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 2292, in wsgi_app
admin_1      |     response = self.full_dispatch_request()
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1815, in full_dispatch_request
admin_1      |     rv = self.handle_user_exception(e)
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1718, in handle_user_exception
admin_1      |     reraise(exc_type, exc_value, tb)
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/_compat.py", line 35, in reraise
admin_1      |     raise value
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1813, in full_dispatch_request
admin_1      |     rv = self.dispatch_request()
admin_1      |   File "/usr/lib/python3.6/site-packages/flask/app.py", line 1799, in dispatch_request
admin_1      |     return self.view_functions[rule.endpoint](**req.view_args)
admin_1      |   File "/usr/lib/python3.6/site-packages/flask_limiter/extension.py", line 544, in __inner
admin_1      |     return obj(*a, **k)
admin_1      |   File "/app/mailu/internal/views/auth.py", line 18, in nginx_authentication
admin_1      |     headers = nginx.handle_authentication(flask.request.headers)
admin_1      |   File "/app/mailu/internal/nginx.py", line 48, in handle_authentication
admin_1      |     if user.check_password(password):
admin_1      |   File "/app/mailu/models.py", line 333, in check_password
admin_1      |     context = User.pw_context
admin_1      | AttributeError: type object 'User' has no attribute 'pw_context'
```
2018-11-09 11:45:08 +02:00
kaiyou 72e1b444ca Merge alembic migrations 2018-11-08 21:55:39 +01:00
kaiyou 5b769e23da Merge branch 'master' into refactor-config 2018-11-08 21:43:05 +01:00
kaiyou 02995f0a15 Add a mailu command line to flask 2018-11-08 21:29:30 +01:00
kaiyou f9e30bd87c Update the dockerfile and upgrade dependencies 2018-11-08 21:29:11 +01:00
kaiyou 4a7eb1eb6c Explicitely declare flask migrate 2018-11-08 20:32:23 +01:00
kaiyou 2a8808bdec Add the configuration table migration 2018-11-08 20:32:06 +01:00
kaiyou f57d4859f3 Provide an in-context wrapper for getting users 2018-11-08 20:30:41 +01:00
kaiyou f6013aa29f Fix an old migration that was reading configuration before migrating 2018-11-08 20:30:20 +01:00
kaiyou 206cce0b47 Finish the configuration bits 2018-11-08 20:29:52 +01:00
Ionut Filip 1bbf3f235d Using a new class when captcha is enabled 2018-11-07 09:58:49 +02:00
mergify[bot] 12689965bd Merge pull request #699 from usrpro/fix-admin-bug
Fixed admin_1 errors in the logs
2018-11-06 18:10:52 +00:00
hoellen 680ad4b67a Catching only ValueError
Co-Authored-By: ionutfilip <ionut.philip@gmail.com>
2018-11-05 19:36:28 +02:00
mergify[bot] e08f3e81d0 Merge pull request #680 from usrpro/feat-startup
Standarize images
2018-11-02 17:36:28 +00:00
Ionut Filip 6dcc33e390 Fixed admin_1 errors in the logs
Fixed errors when trying to log in with an account without domain.
This closes #585
2018-11-02 12:14:23 +02:00
Tim Möhlmann 42e2dbe35d Standarize image by using shared / similair layers 2018-10-31 19:17:23 +02:00
Tim Möhlmann 5fa2aac569 Fix imap login when no webmail selected 2018-10-31 17:47:05 +02:00
Tim Möhlmann 903bb70c5b Merge remote-tracking branch 'upstream/master' into standarize-images 2018-10-31 16:22:21 +02:00
Scott 56fb74c502 Fix typo (duplicate self). Fixes #683 2018-10-23 10:47:31 -05:00
Ionut Filip 8a44a44688 Merge branch 'master' into feat-startup 2018-10-23 12:51:32 +03:00
Ionut Filip 1187cac5e1 Finished up switching from .sh to .py 2018-10-23 11:58:36 +03:00
Tim Möhlmann ed81c076f2 Take out "models" path, as we are already in it 2018-10-23 11:53:52 +03:00
Tim Möhlmann aed80a74fa Rectify decleration of domain_name 2018-10-23 11:52:15 +03:00
Tim Möhlmann 2d382f2d67 Merge branch 'master' into fix-sender-checks 2018-10-23 10:58:29 +03:00
Ionut Filip 0e5606d493 Changed start.sh to start.py 2018-10-22 18:01:59 +03:00
Ionut Filip eb7dfb5771 Cleaning up start.py 2018-10-22 17:02:43 +03:00
Thomas Sänger 603b6e7390 Merge pull request #2 from usrpro/fix-nginx-healthcheck
Fix nginx healthcheck
2018-10-21 22:44:44 +02:00
Tim Möhlmann 81b24f61e8 Merge branch 'master' into feat-healthchecks 2018-10-21 20:58:59 +03:00
Tim Möhlmann a2fea36c79 Increase HEALTHCHECK start time for services that need to wait for host resolving during startup.
In Docker Swarm mode the services listed below can get stuck in their start script, while they
are waiting for other services become available. Now, with HEALTHCHECK enabled, docker does not resolve
names of services that not pass HEALTHCHECK yet. Meaning that if one of the depenend services is not yet
available, it will create a chain of failing services.

The services below retry to resolve 100 time, with an average of 3.5 seconds. Hence, the --start-time
flag is now set at 350 seconds.
- dovecot (imap)
- postfix (smtp)
- rspamd (antispam)
2018-10-21 20:49:01 +03:00
Tim Möhlmann c3e89967fb Fix front health checking
- Specified seperated /health path in order to allow for healthcheck even if webmail and admin are not seletectd. This also allows healthchecking fom external services like DNS load balancers;
- Make curl not to fail on TLS because localhost is not included in the certificates.
2018-10-21 20:45:41 +03:00
mergify[bot] 90b8c3cc1f Merge pull request #665 from kaiyou/feat-reply-startdate
Implement a start date filter for autoreply, fixes #362
2018-10-20 23:18:06 +00:00
mergify[bot] bce1487338 Merge pull request #576 from hacor/master
Kubernetes fixed for production
2018-10-20 22:30:38 +00:00
kaiyou 1fcaef7c7e Merge branch 'master' into fix-sender-checks 2018-10-20 10:18:36 +02:00
Paul Williams 78bd5aea1c enable http2, because it's that easy 2018-10-19 22:46:36 -06:00