什么是 Baikal ?
Baikal
是一个免费的开源自托管CalDav
和CardDav
服务器,适用于想要管理其数据并确保其数据是私有的用户。
Baikal
和群晖套件中的 Synology Calendar
是类似的应用;
什么是 CalDav ?
CalDav
是一种互联网标准和协议,用于跨设备和服务同步日历。它通常用于在您的日历应用程序、网络邮件、设备和服务之间同步您的日历事件。
什么是 CardDav?
CardDav
或vCard
是地址簿客户端/服务器协议和标准,也是WebDav
的扩展,允许用户在兼容的服务器上存储、同步和共享他们的联系人数据。CardDAV
协议由IETF
开发,并于2011
年8
月发布为RFC 6352
安装
建数据库
老苏用了群晖自带的 MariaDB 10
数据库。
在 phpMyAdmin
中创建名为 baikal
的空数据库。
为便于说明,假设数据库密码为
123456
,但实际上可能是用的9YdLh!Y#qK6v
安装镜像
在群晖上以 Docker 方式安装。
在注册表中搜索 baikal
,选择第一个 ckulka/baikal
,版本选择 nginx
。
卷
在 docker
文件夹中,创建一个新文件夹 baikal
,并在其中建两个子文件夹,分别是 config
和 data
文件夹 | 装载路径 | 说明 |
---|---|---|
docker/baikal/config | /var/www/baikal/config | 存放设置 |
docker/baikal/data | /var/www/baikal/Specific | 存放数据 |
端口
本地端口不冲突就行,不确定的话可以用命令查一下
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 | 容器端口 |
---|---|
13281 | 80 |
命令行安装
如果你熟悉命令行,可能用 docker cli
更快捷
# 新建文件夹 baikal 和 子目录
mkdir -p /volume2/docker/baikal/{config,data}
# 进入 baikal 目录
cd /volume2/docker/baikal
# 运行容器
docker run -d \
--restart always \
--name baikal \
-p 13281:80 \
-v $(pwd)/config:/var/www/baikal/config \
-v $(pwd)/data:/var/www/baikal/Specific \
ckulka/baikal:nginx
也可以用 docker-compose
安装,将下面的内容保存为 docker-compose.yml
文件
version: "2"
services:
server:
image: ckulka/baikal:nginx
container_name: baikal
restart: always
ports:
- "13281:80"
volumes:
- ./config:/var/www/baikal/config
- ./data:/var/www/baikal/Specific
然后执行下面的命令
# 新建文件夹 baikal 和 子目录
mkdir -p /volume2/docker/baikal/{config,data}
# 进入 baikal 目录
cd /volume2/docker/baikal
# 将 docker-compose.yml 放入当前目录
# 一键启动
docker-compose up -d
运行
在浏览器中输入 http://群晖IP:13281
就能看到主界面
关于 WebDAV authentication type
有三个选项
Basic
:应该是指基本用户验证;Digest
:消息摘要式身份验证;Apache
:使用Apache
模块(例如LDAP
、Kerberos
或SASL
)提供高级身份验证方法;
老苏选择了最简单的 Basic
认证,一方面是对 Apache
等不熟悉,也没找到相关资料,另一方面考虑到 CalDAV
客户端对认证的要求,比如 AgenDAV
就支持 Basic
Admin password
要记牢,后面登录后台会用到;
默认数据库使用的是 SQLite
如果多人一起用,MariaDB
性能会更高一些,这个看你应用的情况
如果数据库端口用的是
3306
,可以不用带端口,但老苏用了MariaDB 10
;
如果设置没问题的话,就可以点 start using baikal
开始使用了
先要登录,这里用到了我们前面设置的 Admin password
点 Authenticate
登录成功后会看到 Dashboard
主界面
进入 User and resources
菜单
点 Add User
新建一个用户
点开 Setup info
,这里有 CalDAV
客户端登录时会用到 URI
和刚刚创建的用户账号、密码
到这里服务的设置就完成了
使用
Android
老苏是小米手机,自带的 日历
就支持自定义的 CalDAV
服务
打开 日历
应用,点右上角的三个点进入 设置
进入 日程导入
Caldav账号导入
添加 CalDAV
账号
添加完成后,除了 小米日历
外,还有我们刚添加的 Default calendar
Default calendar
这个名字在客户端改不了,需要到服务端修改
现在 创建日程
时,日历账户
可以选择默认账号了
iOS
在 iOS
设备上,进入设置 --> 日历 --> 帐户 --> 添加帐户,选择 其他
添加 CalDAV
账户
需要注意的是,iOS
不支持 http
协议,会显示 CalDAV
账号验证失败
所以要做反代处理,没有什么特殊设置
在日历中,暂时还没有,需要先 添加日历
随便建了一个
现在有 CalDAV
上有日历了
新建日程时已经可以选择 CalDAV
服务上的新日历了
参考文档
sabre-io/Baikal: Baïkal is a Calendar+Contacts server
地址:https://github.com/sabre-io/Baikal
ckulka/baikal-docker: Dockerfile for a ready-to-go Baikal server
地址:https://github.com/ckulka/baikal-docker
Installation using Docker - baikal
地址:https://sabre.io/baikal/docker-install/