Radicale
Radicale 是一个支持 CalDav 和 CardDav 协议的服务器。它可以作为独立的软件包使用其内置的 http 服务器运行,也可以集成到现有的 Web 服务器中。
安装
安装 radicale 软件包。
该软件包会按照 Radicale systemd 说明创建 radicale 用户和服务,以及 /var/lib/radicale/collections 数据文件夹,因此您只需 启用 radicale.service 即可。
配置
最简单的方法是按照 Radicale 网站上的说明进行操作。
主配置文件位于 /etc/radicale/config
如果是在远程/无头系统上进行设置,请考虑添加 hosts 选项以启用对内置 Web 界面的远程访问。
许多配置选项都可以通过命令行更改
$ radicale --help
身份认证
默认情况下,任何人都可以访问 Web 界面并创建地址簿或日历,因此应考虑进行身份验证。
身份验证由 /etc/radicale/users 控制,该文件可以使用 Apache httpasswd 格式的密码(以及明文和其他选项)。如果您不打算安装 Apache HTTP Server,则只需使用 htpasswdAUR,apache-toolsAUR,或在线 htpasswd 生成器来生成 user:password 哈希。
非默认存储位置
默认情况下,Radicale 软件包配置为将数据存储在 /var/lib/radicale/collections。如果要更改此设置,可以在配置文件中指定其他位置,但还必须调整 systemd 配置。包含的 radicale.service 文件设置了 ProtectSystem=strict,这意味着 systemd 不允许服务对 /var/lib/radicale/ 以外的任何区域进行读写访问。要解决此问题,请创建一个 drop-in 文件,内容如下:
/etc/systemd/system/radicale.service.d/override.conf
[Service] ReadWritePaths=/path/to/storage
现在,您可以通过编辑配置文件来让 Radicale 使用您选择的位置,如 Radicale 文档中所述。
/etc/radicale/config
[storage] filesystem_folder = /path/to/storage
将两个文件中的 /path/to/storage 更改为您选择的位置。
集成
Web 服务器
Radicale 提供自己的 Web 服务器(最初仅限于 localhost,可在 localhost:5232 访问,使用任何用户名和密码),但可以通过反向代理或 WSGI 接口与 Apache HTTP Server 等 HTTP Web 服务器集成。
客户端支持
由于它使用 CalDav 和 CardDav 协议,因此它应该支持大多数客户端,特别是 官方支持的客户端。
以下列表可能准确也可能不准确
- Thunderbird
- 要添加日历,在日历视图中单击“新建日历”-> 在网络中,在位置字段中添加 Radicale 正在监听的根地址,例如
https://:5232,而不是单个日历的地址,Thunderbird 将自动发现 Radicale 共享的所有日历。
- 要添加日历,在日历视图中单击“新建日历”-> 在网络中,在位置字段中添加 Radicale 正在监听的根地址,例如
- GNOME/Evolution,联系人和日历
- KOrganizer (korganizer)
- InfCloud (infcloudAUR),CalDavZAP,CardDavMATE
- syncEvolution (syncevolutionAUR)
- DAVx⁵,Infomaniak kSync,Simple Contacts Pro SE[链接已失效 2025-08-16—HTTP 404] for Android (ICSx⁵ 也可以用于单个日历,但强烈推荐 DAVx⁵ 以获得完整体验,因为它会自动检测 Radicale 公开的所有日历和地址簿)。
- Mac OSX 日历/联系人
- Apple iOS
- 请注意,iOS 需要 SSL 才能同步 CalDAV/CarDAV(截至 iOS14,自签名 SSL 足以让 Radicale 作为账户集成)[1],可以通过按照 OpenSSL#使用单个命令生成带私钥的自签名证书中的说明来创建。
- 另外请注意,密钥长度必须大于 2048 位 [2]
- 请注意,iOS 需要 SSL 才能同步 CalDAV/CarDAV(截至 iOS14,自签名 SSL 足以让 Radicale 作为账户集成)[1],可以通过按照 OpenSSL#使用单个命令生成带私钥的自签名证书中的说明来创建。