CalDAV网页客户端AgenDAV

在这里插入图片描述

什么是 AgenDAV ?

AgenDAV 是一个类似于 Google 日历的 CalDAV 网络客户端,具有 AJAX 界面,允许用户管理自己的日历和共享的日历。

注意事项

  • AgenDAV依赖于 CalDAV 服务器(BaïkalDAViCal 等),所以需要先安装 Baïkal;
  • 使用 Baïkal 作为后端的 CalDAV 服务器,WebDAV authentication type 必须 Basic 类型;

低版本内核( Linux kernel < 3.16)上会出现下面的错误

[Tue Nov 01 05:44:11.089128 2022] [:crit] [pid 268] (38)Function not implemented: AH00141: Could not initialize random number generator
Action '-D FOREGROUND' failed.

这个 AH00141 错误除了换机器折腾外,老苏也没有更好的办法

你可以在 SSH 客户端,输入 uname -a 查看内核版本

安装

ghcr.io 镜像下载

·AgenDAV官方的镜像没有发布在 docker hub,而是在 ghcr.io,所以直接用命令行来安装。

SSH 客户端中依次执行下面的命令

# 下载镜像
docker pull ghcr.io/nagimov/agendav-docker:latest

如果没有科学上网,很可能会拉不动,可以试试 docker 代理网站:https://dockerproxy.com/,但是会多几个步骤

# 如果拉不动的话加个代理
docker pull ghcr.dockerproxy.com/nagimov/agendav-docker:latest

# 重命名镜像(如果是通过代理下载的)
docker tag ghcr.dockerproxy.com/nagimov/agendav-docker:latest ghcr.io/nagimov/agendav-docker:latest

# 删除代理镜像(如果是通过代理下载的)
docker rmi ghcr.dockerproxy.com/nagimov/agendav-docker:latest 

docker cli 安装

# 运行容器
docker run -d \
    --name=agendav \
    --restart always \
    -p 13280:80 \
    -e AGENDAV_SERVER_NAME=127.0.0.1 \
    -e AGENDAV_TITLE="老苏的 Agendav Server" \
    -e AGENDAV_FOOTER="老苏的日历" \
    -e AGENDAV_ENC_KEY=my_encrypt10n_k3y \
    -e AGENDAV_CALDAV_SERVER=http://192.168.0.197:13281/cal.php \
    -e AGENDAV_CALDAV_PUBLIC_URL=http://192.168.0.197:13281 \
    -e AGENDAV_TIMEZONE=Asia/Shanghai \
    -e AGENDAV_LANG=en \
    -e AGENDAV_LOG_DIR=/tmp/ \
    ghcr.io/nagimov/agendav-docker:latest
环境变量官方的示例
AGENDAV_SERVER_NAME127.0.0.1
AGENDAV_TITLE"Welcome to Example Agendav Server"
AGENDAV_FOOTER"Hosted by Example Company"
AGENDAV_ENC_KEYmy_encrypt10n_k3y
AGENDAV_CALDAV_SERVERhttps://baikal.example.com/cal.php
AGENDAV_CALDAV_PUBLIC_URLhttps://baikal.example.com
AGENDAV_TIMEZONEUTC, UTC+1,Europe/Berlin
AGENDAV_LANGen
AGENDAV_LOG_DIR/tmp/
  • AGENDAV_ENC_KEY 估摸着应该是类似我们之前用的 JWT_SECRET
  • AGENDAV_CALDAV_SERVER 用的是 cal.php 而不是我们前面用的 dav.php,老苏去看了下源码,这两个文件都存在

在这里插入图片描述

但代码有点小差异

在这里插入图片描述

老苏试了下,不论写哪个都能正常用,但还是建议按官方的示例用cal.php

如果 Baikal反代了,这里 AGENDAV_CALDAV_SERVERAGENDAV_CALDAV_PUBLIC_URL填域名

docker-compose 安装

将下面的内容保存为 docker-compose.yml 文件

如果你和老苏一样使用了中文,记得文件保存要用 utf-8 格式;

version: "2"

services:
  agendav:
    image: ghcr.io/nagimov/agendav-docker:latest
    container_name: agendav
    restart: always
    ports:
      - "13280:80"
    environment:
      - AGENDAV_SERVER_NAME=127.0.0.1
      - AGENDAV_TITLE=老苏的 Agendav Server
      - AGENDAV_FOOTER=老苏的日历
      - AGENDAV_ENC_KEY=my_encrypt10n_k3y
      - AGENDAV_CALDAV_SERVER=http://192.168.0.197:13281/cal.php
      - AGENDAV_CALDAV_PUBLIC_URL=http://192.168.0.197:13281
      - AGENDAV_TIMEZONE=Asia/Shanghai
      - AGENDAV_LANG=en
      - AGENDAV_LOG_DIR=/tmp/

然后执行下面的命令

# 新建文件夹 kavita 和 子目录
mkdir -p /volume2/docker/agendav

# 进入目录
cd /volume2/docker/agendav

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

# 一键启动
docker-compose up -d

运行

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

用之前在 Baikal 后台创建的用户登录

登录成功之后

新建一个日程

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

打开小米手机,手动同步后就能看到了

自动同步多久能看到,取决于你设置的同步时间;

参考文档

agendav/agendav: A CalDAV web client similar to Google Calendar
地址:https://github.com/agendav/agendav

nagimov/agendav-docker: Docker image for agendav
地址:https://github.com/nagimov/agendav-docker

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

杨浦老苏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值