Xandikos 开源项目教程
xandikosA CalDAV/CardDAV server项目地址:https://gitcode.com/gh_mirrors/xa/xandikos
1. 项目介绍
Xandikos 是一个轻量级但功能齐全的 CardDAV/CalDAV 服务器,它基于 Git 仓库进行数据存储。Xandikos 的名字来源于古马其顿日历中的三月名称。该项目支持通过 CalDAV 共享日历(事件、待办事项、日志条目)和通过 CardDAV 共享联系人(vCard)。Xandikos 自动在 Git 中保存历史记录并备份更改,支持 CalDAV/CardDAV 的同步扩展,以实现快速高效的同步。
2. 项目快速启动
安装依赖
首先,确保你已经安装了必要的依赖包。你可以使用以下命令在 Debian 系统上安装这些依赖:
sudo apt install python3-dulwich python3-defusedxml python3-icalendar python3-jinja2
或者使用 pip 安装:
python setup.py develop
启动服务器
你可以通过以下命令启动一个独立的(无需认证)Xandikos 实例,并预创建一个日历和地址簿(数据存储在 $HOME/dav
目录中):
/bin/xandikos --defaults -d $HOME/dav
服务器将在 localhost:8080
上监听。注意,除非指定 --defaults
参数,否则 Xandikos 不会创建任何集合。你也可以从 CalDAV/CardDAV 客户端创建集合,或者在 contacts 或 calendars 目录下创建 git 仓库。
3. 应用案例和最佳实践
使用 Docker 部署
Xandikos 提供了 Dockerfile,你可以使用 Docker 来部署 Xandikos。以下是一个示例的 docker-compose.yml
文件:
version: '3'
services:
xandikos:
image: ghcr.io/jelmer/xandikos
ports:
- "8080:8080"
volumes:
- ./dav:/home/xandikos/dav
配置反向代理
在生产环境中,推荐使用反向 HTTP 代理(如 Apache 或 Nginx)来运行 Xandikos。以下是一个 Nginx 配置示例:
server {
listen 80;
server_name yourdomain.com;
location / {
proxy_pass http://localhost:8080;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
4. 典型生态项目
Xandikos 可以与以下 CalDAV/CardDAV 客户端配合使用:
Vdirsyncer: 用于同步日历和联系人。caldavzap/carddavmate: 基于 Web 的 CalDAV/CardDAV 客户端。evolution: GNOME 桌面环境下的日历和联系人管理器。DAVx5: 安卓设备上的 CalDAV/CardDAV 客户端。sogo connector for Icedove/Thunderbird: Thunderbird 的 CalDAV/CardDAV 插件。aCALdav syncer for Android: 安卓设备的 CalDAV 同步工具。pycardsyncer: 用于同步联系人的 Python 工具。akonadi CalDAV-Sync: KDE 桌面环境下的 CalDAV 同步工具。CardDAV-Sync: 安卓设备的 CardDAV 同步工具。Calendarsync: 日历同步工具。Tasks: 任务管理工具。AgendaV: 日历管理工具。CardBook: Thunderbird 的联系人管理插件。Apple’s iOS: iOS 设备的日历和联系人同步。homeassistant’s CalDAV integration: 家庭自动化系统 Home Assistant 的 CalDAV 集成。
通过这些客户端,你可以充分利用 Xandikos 提供的日历和联系人管理功能。
xandikosA CalDAV/CardDAV server项目地址:https://gitcode.com/gh_mirrors/xa/xandikos