开源CalDAV和CardDav网页客户端InfCloud

本文应网友 畅天 的要求折腾。他遇到了跨域问题,所以老苏找了个二合一的镜像来规避。其中使用的 BaikalInfCloud 都是最新的版本;

什么是 Baikal ?

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

什么是 InfCloud ?

InfCloud 是一个开源的 CalDAV/CardDAV 网页客户端。

安装

在群晖上以 Docker 方式安装。

在注册表中搜索 baikal-infcloud ,选择第一个 squibbles/baikal-infcloud,版本选择 v1.1

docker 文件夹中,创建一个新文件夹 baikal-infcloud,并在其中建一个子文件夹 data

文件夹 装载路径 说明
docker/baikal-infcloud/data /var/www/baikal/Specific/ 存放数据库和上传文件等

端口

本地端口不冲突就行,不确定的话可以用命令查一下

1
2
# 查看端口占用
netstat -tunlp | grep 端口号
本地端口 容器端口
8801 8800

环境

可变
TIMEZONE 默认为:Europe/London,改设为 Asia/Shanghai

命令行安装

如果你熟悉命令行,可能用 docker cli 更快捷

1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 新建文件夹 baikal-infcloud 和 子目录
mkdir -p /volume1/docker/baikal-infcloud/data

# 进入 baikal-infcloud 目录
cd /volume1/docker/baikal-infcloud

# 运行容器
docker run -d \
--restart unless-stopped \
--name baikal-infcloud \
-p 8801:8800 \
-v $(pwd)/data:/var/www/baikal/Specific/ \
-e TIMEZONE=Asia/Shanghai \
squibbles/baikal-infcloud:v1.1

也可以用 docker-compose 安装,将下面的内容保存为 docker-compose.yml 文件

1
2
3
4
5
6
7
8
9
10
11
12
13
version: "3.8"

services:
baikal-infcloud:
image: squibbles/baikal-infcloud:v1.1
container_name: baikal-infcloud
restart: unless-stopped
ports:
- 8801:8800
volumes:
- ./data:/var/www/baikal/Specific/
environment:
- TIMEZONE=Asia/Shanghai

然后执行下面的命令

1
2
3
4
5
6
7
8
9
10
# 新建文件夹 baikal-infcloud 和 子目录
mkdir -p /volume1/docker/baikal-infcloud/data

# 进入 baikal-infcloud 目录
cd /volume1/docker/baikal-infcloud

# 将 docker-compose.yml 放入当前目录

# 一键启动
docker-compose up -d

运行

Baikal

在浏览器中输入 http://群晖IP:8801/baikal/html/admin/ ,第一次需要初始化

详细设置可以参考老苏之前写的 Baikal 的设置

文章传送门:CalDAV网络服务器Baikal

数据库这里直接用了 SQLite,你也可以参考上文使用 MySQL

登录后台

新建用户

InfCloud

之前老苏写过 AgenDAV,跟 InfCloud 是差不多的应用,区别在于 AgenDAV 只支持 CalDAV ,而 InfCloud 同时支持 CalDAV/CardDAV

文章传送门:CalDAV网页客户端AgenDAV

在浏览器中输入 http://群晖IP:8801/infcloud/ 就能看到登录界面

语言默认为 English,可以下拉选择 中文

登录成功后的主界面

日程

新建事件提醒

待办列表

新建待办事项

通讯录

新建联系方式

移动端的应用,可以参考 Baikal 一文,如果是使用 Outlook 或者 Thunderbird 之类,就自己百度了,原理上都是差不多的

反代用 npm + cloudflared 方案试了一下,未发现有需要特殊设置之处

参考文档

InfCloud - the open source CalDAV/CardDAV web client (integrated version of CalDavZAP & CardDavMATE)
地址:https://inf-it.com/open-source/clients/infcloud/

sabre-io/Baikal: Baïkal is a Calendar+Contacts server
地址:https://github.com/sabre-io/Baikal

bjuretko/docker-baikal-infcloud: CalDAV/CardDAV Server with dockerized lighthttpd + baikal + sqlite + infcloud bundle
地址:https://github.com/bjuretko/docker-baikal-infcloud

squibbles/baikal-infcloud - Docker Image | Docker Hub
地址:https://hub.docker.com/r/squibbles/baikal-infcloud

infcloud-docker/Dockerfile at master · ckulka/infcloud-docker
地址:https://github.com/ckulka/infcloud-docker