Open iandundas opened 4 years ago
p.s. I'm using the macOS 11.0 Beta (20A5323l), so it's vaguely possible that that is the issue here, also. But if anyone can just give me a "yeah it should work fine" or "nope it's well known not to work", that would be handy. Thanks again
If I manually add a Reminders list to the Radicale account, it seems to only exist locally, because it doesn't show up on the Radicale web page, and doesn't survive disabling/enabling the account in macOS
I found some information here that indicated that auto-discovery requires Radicale to not be run from a subpath.
So I tweaked my nginx file to make it reachable from the root directory:
server {
... (removed)
location / { # The trailing / is important!
proxy_pass http://localhost:5232/; # The / is important!
proxy_set_header X-Script-Name /;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass_header Authorization;
}
}
hurrah it seems to work now
I'm using radicale as WSGI app behind Apache. As I found Reminder works OK if radicale is root of web-server. But in virtual dir (e.g. '/radicale/') - Contacts and Calendar OK, but Reminder oops. My investigation show (via HTTPS, because Apple not works with HTTP):
Good dialog (/
):
PROPFIND /.well-known/caldav
- 401 (not auth; right)PROPFIND /.well-known/caldav
- 401 (not found; right)PROPFIND /
- 401 (not auth; right)PROPFIND /
- 207 (multi-status)Last PROPFIND payload:
<?xml version="1.0"?>
<propfind xmlns="DAV:">
<prop>
<current-user-principal />
<principal-URL />
<resourcetype />
</prop>
</propfind>
Response payload:
<?xml version="1.0"?>
<multistatus xmlns="DAV:">
<response>
<href>/</href>
<propstat>
<prop>
<current-user-principal>
<href>/username/</href>
</current-user-principal>
<resourcetype>
<collection />
</resourcetype>
</prop>
<status>HTTP/1.1 200 OK</status>
</propstat>
<propstat>
<prop>
<principal-URL />
</prop>
<status>HTTP/1.1 404 Not Found</status>
</propstat>
</response>
</multistatus>
Bad dialog (/radicale/
):
PROPFIND /.well-known/caldav
- 405 (method not allowed; bad response, but...)PROPFIND /
- 405 (the same; very, very bad response)After this reminder tries /principals/
, /calendar/dav/username/user/
and many other strange things.
Seems best solution is to rewrite (or redirect?) PROPFIND /
(and only this) request into /radicale/
.
Not tested yet (have no enough skills in Apache).
In a different software (monica, and with in that case the Contacts app), they figured out that for reverse proxies you'd need the .well-know/caldav
directory to properly be routed as well. For the contacts it would be .well-know/carddav
.
This can be confirmed by running curl -v https://radicale.example.com/.well-known/carddav
and having a proper Location
header in the response, confirming the redirect.
Radicale should do that redirect for you, as of version 3.1.3
or later, around February, 2022.
In my Nginx-Config this looks like the following:
location = /.well-known/caldav { return 302 /radicale/; }
location = /.well-known/carddav { return 302 /radicale/; }
location /radicale/ { # The trailing / is important.
proxy_pass http://127.0.0.1:5232/;
proxy_set_header X-Script-Name /radicale;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Remote-User $remote_user;
proxy_set_header Host $http_host;
proxy_buffering on;
auth_basic "Restricted Content";
auth_basic_user_file /etc/nginx/conf.d/radicale.htpasswd;
}
@iandundas Have you tried your solution on iOS by any chance? With your solution, Calendar pulls all the calendars correctly, but Reminders still does not see any calendars (be they a combination of [calendar, journal and tasks] or just [tasks]).
Here's my nginx config. The location /
directive is the exact same as yours. Additionally:
/.well-known
directives as @alqu suggested, but to no avail. I tried returning both 301 and 302.server {
listen 443 ssl;
server_name 10.7.0.1;
ssl_certificate /etc/nginx/ssl/self-signed.crt;
ssl_certificate_key /etc/nginx/ssl/self-signed.key;
location = /.well-known/caldav { return 301 /; }
location = /.well-known/carddav { return 301 /; }
location / { # The trailing / is important!
proxy_pass http://localhost:5232/; # The / is important!
proxy_set_header X-Script-Name /;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header Host $http_host;
proxy_pass_header Authorization;
}
}
I'm adding the account in iOS settings with the URL https://10.7.0.1/
and the username and password of my Radicale user. When I save the changes, in Advanced settings I see the URL gets rewritten to https://10.7.0.1/myusername/
.
Hi,
I've got Radicale working with macOS Calendar, I can add events and if I disable/re-enable the account the added events disappear and appear again in Calendar (indicating that they're not just somehow available locally only)
However, even though I ticked the "use with Reminders" box, and I created a calendar in Radicale that supports "[calendar, journal and tasks]", actually no available task list shows up in the Reminders app (it just shows the hostname but without any lists inside). The Calendar app shows the hostname and the available calendars beneath.
Radicale:
macOS Calendars, showing the radicale calendar:
macOS reminders, showing the header but no reminder lists visible:
I will provide more info, but before that can I just check if anyone can confirm that they know Radicale does support MacOS Reminders?
As I said, the calendars work great, so I feel like I'm almost there getting it configured 😀/😩
Radicale version 3.0.4
Thanks!