在这里插入图片描述

什么是 Baikal ?

Baikal 是一个免费的开源自托管 CalDavCardDav 服务器,适用于想要管理其数据并确保其数据是私有的用户。

Baikal和群晖套件中的 Synology Calendar 是类似的应用;

什么是 CalDav ?

CalDav 是一种互联网标准和协议,用于跨设备和服务同步日历。它通常用于在您的日历应用程序、网络邮件、设备和服务之间同步您的日历事件。

什么是 CardDav?

CardDavvCard 是地址簿客户端/服务器协议和标准,也是 WebDav 的扩展,允许用户在兼容的服务器上存储、同步和共享他们的联系人数据。CardDAV 协议由 IETF 开发,并于 20118 月发布为 RFC 6352

安装

建数据库

老苏用了群晖自带的 MariaDB 10 数据库。

在这里插入图片描述

phpMyAdmin 中创建名为 baikal 的空数据库。

为便于说明,假设数据库密码为 123456,但实际上可能是用的 9YdLh!Y#qK6v

在这里插入图片描述

安装镜像

在群晖上以 Docker 方式安装。

在注册表中搜索 baikal ,选择第一个 ckulka/baikal,版本选择 nginx

在这里插入图片描述

docker 文件夹中,创建一个新文件夹 baikal,并在其中建两个子文件夹,分别是 configdata

文件夹 装载路径 说明
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 模块(例如 LDAPKerberosSASL)提供高级身份验证方法;

老苏选择了最简单的 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/

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐