Mailu: No documentation for usage webdav

Created on 18 Aug 2020  ·  3Comments  ·  Source: Mailu/Mailu

There is no documentation on the usage of webdav. Searching the issues/pr section and doing some investigation I've determined the following:

No information can be found at all in regard to webdav on the documentation site (https://mailu.io) on how to use it.
In the web administration interface nothing can be found in regard to webdav. In client settings it doesn't show the webdav URL. I actually expected it would show in "client settings" what URL a user can use to connect to the webdav server.

To use webdav, a carddav/caldav client can use the url https://example.com/webdav/[email protected].

I'll create a PR to add the webdav URL to the documentation.

prioritp2 typenhancement

Most helpful comment

Hi There,

The Mailu-Project is currently in a bit of a bind! We are short on man-power, and we need to judge if it is possible for us to put in some work on this issue.

To help with that, we are currently trying to find out which issues are actively keeping users from using Mailu, which issues have someone who want to work on them — and which issues may be less important. These a less important ones could be discarded for the time being, until the project is in a more stable and regular state once again.

In order for us to better assess this, it would be helpful if you could put a reaction on this post (use the :smiley: icon to the top-right).

  • 👍️ if you need this to be able to use Mailu. Ideally, you’d also be able to test this on your installation, and provide feedback …
  • 🎉 if you find it a nice bonus, but no deal-breaker
  • 🚀 if you want to work on it yourself!
    We want to keep this voting open for 2 weeks from now, so please help out!

All 3 comments

Hi There,

The Mailu-Project is currently in a bit of a bind! We are short on man-power, and we need to judge if it is possible for us to put in some work on this issue.

To help with that, we are currently trying to find out which issues are actively keeping users from using Mailu, which issues have someone who want to work on them — and which issues may be less important. These a less important ones could be discarded for the time being, until the project is in a more stable and regular state once again.

In order for us to better assess this, it would be helpful if you could put a reaction on this post (use the :smiley: icon to the top-right).

  • 👍️ if you need this to be able to use Mailu. Ideally, you’d also be able to test this on your installation, and provide feedback …
  • 🎉 if you find it a nice bonus, but no deal-breaker
  • 🚀 if you want to work on it yourself!
    We want to keep this voting open for 2 weeks from now, so please help out!

radicale does not handle authentication. It only receives the user name from the reverse proxy (nginx).
Authentication is handled by the reverse proxy (nginx).
Nginx uses the admin container to handle the authentication
nginx.conf excerpt

      {% if WEBDAV != 'none' %}
      location /webdav {
        rewrite ^/webdav/(.*) /$1 break;
        auth_request /internal/auth/basic;
        auth_request_set $user $upstream_http_x_user;
        include /etc/nginx/proxy.conf;
        proxy_set_header X-Remote-User $user;
        proxy_set_header X-Script-Name /webdav;
        proxy_pass http://$webdav;
      }

In the flask file for auth we can see that the admin container will check if the user exists and the provided password matches.

@internal.route("/auth/basic")
def basic_authentication():
Tries to authenticate using the Authorization header.

authorization = flask.request.headers.get("Authorization")
if authorization and authorization.startswith("Basic "):
    encoded = authorization.replace("Basic ", "")
    user_email, password = base64.b64decode(encoded).split(b":")
    user = models.User.query.get(user_email.decode("utf8"))
    if user and user.enabled and user.check_password(password.decode("utf8")):
        response = flask.Response()
        response.headers["X-User"] = user.email
        return response
response = flask.Response(status=401)
response.headers["WWW-Authenticate"] = 'Basic realm="Login Required"'
return response

```

So for testing use the URL: https://example.com/webdav/[email protected]
And provide the username/password for [email protected].

The full instructions for webdav are:
| For first time set up, the user must access radicale via the url https://mail.example.com/webdav/.web and then
| 1. Log in using the user's full email address and password.
| 2. Click 'Create new addressbook or calendar'
| 3. Follow instructions for creating an addressbook (for contact management) and calendar.
|
| Subsequently to use webdav (radicale), you can configure your carddav/caldav client to use the following url:
| https://mail.example.com/webdav/[email protected]
| As username you must provide the complete email address ([email protected]).
| As password you must provide the password of the email address.
| The user must be an existing Mailu user.

Was this page helpful?
0 / 5 - 0 ratings

Related issues

styxlab picture styxlab  ·  4Comments

binaryfire picture binaryfire  ·  3Comments

hoellen picture hoellen  ·  4Comments

Yermo picture Yermo  ·  3Comments

githtz picture githtz  ·  4Comments