跳转到主要内容

轻量级CalDAV/CardDAV服务器

项目描述

Xandikos是一个轻量级但完整的CardDAV/CalDAV服务器,它背后是Git存储库。

Xandikos(Ξανδικός或Ξανθικός)的名字来源于古代马其顿日历中三月的名字,该日历在公元前一千年左右的马其顿使用。

扩展文档可以在主页上找到

实现的标准

以下标准已实现

以下标准未实现

有关规范合规性的更多详细信息,请参阅DAV 合规性

限制

  • 无多用户支持

  • 无 CalDAV 调度扩展支持

支持的客户端

Xandikos 已经过测试,可与以下 CalDAV/CardDAV 客户端一起使用

依赖关系

目前,Xandikos 支持 Python 3(请参阅 pyproject.toml 以获取特定版本)以及 Pypy 3。它还使用了 DulwichJinja2icalendardefusedxml

例如,在 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.ymlman 页面

运行

Xandikos 可以直接监听一个纯 HTTP 套接字,也可以位于一个反向 HTTP 代理后面。

测试

要运行一个独立(无身份验证)的 Xandikos 实例,该实例具有预先创建的日历和通讯录(数据存储在 $HOME/dav 中)

./bin/xandikos --defaults -d $HOME/dav

现在应有一个服务器正在 localhost:8080 上监听。

请注意,除非指定了 –defaults,否则 Xandikos 不会创建任何集合。您也可以从您的 CalDAV/CardDAV 客户端创建集合,或者通过在它创建的 contactscalendars 目录下创建 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

帮助

OFTC IRC网络上有一个#xandikos IRC频道,还有一个Xandikos邮件列表。

项目详情


下载文件

下载您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码分发

xandikos-0.2.11.tar.gz (127.8 kB 查看哈希值)

上传时间 源代码

由以下支持

AWSAWS云计算和安全赞助商DatadogDatadog监控FastlyFastlyCDNGoogleGoogle下载分析MicrosoftMicrosoftPSF赞助商PingdomPingdom监控SentrySentry错误记录StatusPageStatusPage状态页面