CalDAV网页客户端AgenDAV
什么是 AgenDAV ?
AgenDAV是一个类似于CalDAV网络客户端,具有AJAX界面,允许用户管理自己的日历和共享的日历。
注意事项
- AgenDAV依赖于- CalDAV服务器(- Baïkal、- DAViCal等),所以需要先安装- Baïkal;
- 使用 Baïkal作为后端的CalDAV服务器,WebDAV authentication type必须Basic类型;
低版本内核( Linux kernel < 3.16)上会出现下面的错误
| 1 | [Tue Nov 01 05:44:11.089128 2022] [:crit] [pid 268] (38)Function not implemented: AH00141: Could not initialize random number generator | 
这个 AH00141 错误除了换机器折腾外,老苏也没有更好的办法
你可以在
SSH客户端,输入uname -a查看内核版本

安装
ghcr.io 镜像下载
·AgenDAV官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。
在 SSH 客户端中依次执行下面的命令
| 1 | # 下载镜像 | 
如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤
| 1 | # 如果拉不动的话加个代理 | 
docker cli 安装
| 1 | # 运行容器 | 
| 环境变量 | 官方的示例 | 
|---|---|
| AGENDAV_SERVER_NAME | 127.0.0.1 | 
| AGENDAV_TITLE | "Welcome to Example Agendav Server" | 
| AGENDAV_FOOTER | "Hosted by Example Company" | 
| AGENDAV_ENC_KEY | my_encrypt10n_k3y | 
| AGENDAV_CALDAV_SERVER | https://baikal.example.com/cal.php | 
| AGENDAV_CALDAV_PUBLIC_URL | https://baikal.example.com | 
| AGENDAV_TIMEZONE | UTC,UTC+1,Europe/Berlin | 
| AGENDAV_LANG | en | 
| AGENDAV_LOG_DIR | /tmp/ | 
- AGENDAV_ENC_KEY估摸着应该是类似我们之前用的- JWT_SECRET;
- AGENDAV_CALDAV_SERVER用的是- cal.php而不是我们前面用的- dav.php,老苏去看了下源码,这两个文件都存在

但代码有点小差异

老苏试了下,不论写哪个都能正常用,但还是建议按官方的示例用cal.php
如果 Baikal反代了,这里 AGENDAV_CALDAV_SERVER 和 AGENDAV_CALDAV_PUBLIC_URL填域名
docker-compose 安装
将下面的内容保存为 docker-compose.yml 文件
如果你和老苏一样使用了中文,记得文件保存要用
utf-8格式;
| 1 | version: "2" | 
然后执行下面的命令
| 1 | # 新建文件夹 kavita 和 子目录 | 
运行
在浏览器中输入 http://群晖IP:13280 就能看到登录界面
用之前在
Baikal后台创建的用户登录

登录成功之后

新建一个日程

保存之后可以在日历上看到

打开小米手机,手动同步后就能看到了
自动同步多久能看到,取决于你设置的同步时间;

参考文档
agendav/agendav: A CalDAV web client similar to Google Calendar
地址:https://github.com/agendav/agendavnagimov/agendav-docker: Docker image for agendav
地址:https://github.com/nagimov/agendav-docker
