轻量级CalDAV/CardDAV服务器
项目描述
Xandikos是一个轻量级但完整的CardDAV/CalDAV服务器,它背后是Git存储库。
Xandikos(Ξανδικός或Ξανθικός)的名字来源于古代马其顿日历中三月的名字,该日历在公元前一千年左右的马其顿使用。
扩展文档可以在主页上找到。
实现的标准
以下标准已实现
以下标准未实现
RFC 6638 (CalDAV 调度扩展) - 未实现
RFC 7809 (CalDAV 时区扩展) - 未实现
RFC 7529 (WebDAV 配额) - 未实现
RFC 5546 (iCal iTIP) - 未实现
RFC 4324 (iCAL CAP) - 未实现
RFC 7953 (iCal 可用性) - 未实现
有关规范合规性的更多详细信息,请参阅DAV 合规性。
限制
无多用户支持
无 CalDAV 调度扩展支持
支持的客户端
Xandikos 已经过测试,可与以下 CalDAV/CardDAV 客户端一起使用
依赖关系
目前,Xandikos 支持 Python 3(请参阅 pyproject.toml 以获取特定版本)以及 Pypy 3。它还使用了 Dulwich、Jinja2、icalendar 和 defusedxml。
例如,在 Debian 上安装这些依赖项
sudo apt install python3-dulwich python3-defusedxml python3-icalendar python3-jinja2
或使用 pip 安装它们
python setup.py develop
Docker
还提供了一个 Dockerfile;请参阅文件顶部的注释以获取配置说明。Docker 镜像定期构建并发布在 ghcr.io/jelmer/xandikos 上。有关更多信息,请参阅 examples/docker-compose.yml 和 man 页面。
运行
Xandikos 可以直接监听一个纯 HTTP 套接字,也可以位于一个反向 HTTP 代理后面。
测试
要运行一个独立(无身份验证)的 Xandikos 实例,该实例具有预先创建的日历和通讯录(数据存储在 $HOME/dav 中)
./bin/xandikos --defaults -d $HOME/dav
现在应有一个服务器正在 localhost:8080 上监听。
请注意,除非指定了 –defaults,否则 Xandikos 不会创建任何集合。您也可以从您的 CalDAV/CardDAV 客户端创建集合,或者通过在它创建的 contacts 或 calendars 目录下创建 git 仓库来实现。
生产环境
在生产环境中运行 Xandikos 的最简单方法是将其放在 Apache 或 nginx 等反向 HTTP 代理前面运行。xandikos 脚本可以监听本地主机上的特定端口,也可以监听 Unix 域套接字。
例如,请参阅 examples/ 中的初始化系统配置。
客户端说明
某些客户端可以从 DAV 服务器自动发现日历和通讯录 URL(如果它们支持 RFC:5397)。对于此类客户端,您可以在设置期间仅提供 Xandikos 的基本 URL。
缺少此类自动发现功能的客户端(例如 Thunderbird Lightning)需要指向日历或通讯录的直接 URL。在这种情况下,您应提供日历或通讯录的完整 URL;如果您使用前面部分中提到的 --defaults 参数初始化了 Xandikos,则这些 URL 将类似于以下示例
http://dav.example.com/user/calendars/calendar http://dav.example.com/user/contacts/addressbook
贡献
对Xandikos的贡献非常受欢迎。如果您遇到错误或对功能有请求,请提交问题至GitHub。如果您有兴趣贡献代码或文档,请阅读CONTRIBUTING。GitHub上标记为适合新贡献者的问题被标记为new-contributor。
帮助
项目详情
xandikos-0.2.11.tar.gz的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7caeaabb4e05520733f6080b3c3344c319a9f4aea99eae0bdb60836337d849bd |
|
MD5 | 11fb6ab006f8da8d7bc9d2830d4bbbbd |
|
BLAKE2b-256 | 016dcfa180fcdb0f29fa73686c1485fdc45bc6f24a586743037d92d2895dadd4 |