时间管理表 篇一:日历 CalDAV or CardDAV Servers/Web-based Clients [baikal][agendav]
额 ,上周的文章太水了,阅读量低的惊人,收益也随之下滑,影响到了我的水金币计划,这样不行,所以我要搞个新系列赚金币。这次带来的是一连串的时间管理表,至于用处只要是看的懂中文的都能理解,就不做解释了。
第一弹是CalDAV or CardDAV Servers和CalDAV or CardDAV Web-based Clients。现在来机翻一下什么是CalDAV和CardDAV。
介绍
CalDAV(Calendaring Extensions to WebDAV)是一种 Internet 标准,允许客户端访问和管理日历数据,以及安排与相同或远程服务器上的用户的会议的能力。它允许不同位置的多个用户共享,搜索和同步日历数据。它扩展了 WebDAV(基于 HTTP 的数据操作协议)规范,并对日历数据使用 iCalendar 格式。访问协议由RFC 4791定义,用于调度的CalDAV扩展被标准化为RFC 6638.该协议被许多重要的开源应用程序使用。
CardDAV(vCard Extensions to WebDAV)是一种通讯簿客户端/服务器协议,旨在允许用户访问和共享服务器上的联系人数据。CalDAV协议由IETF开发,并于2011年8月发布为RFC 6352.卡德AV基于基于HTTP的WebDAV,它使用vCard作为联系人数据。
用不确切的普通话来讲就是CalDAV是用来交换日历数据的协议,CardDAV是用来交换明信片数据的协议。
CalDAV or CardDAV Servers
先来介绍下用做Server的baikal。baikal是一款轻量级的CalDAV+CardDAV服务器。它提供了一个广泛的Web界面,可以轻松管理用户,地址簿和日历。它安装快速而简单,只需要一个基本的php服务器。数据可以存储在MySQL数据库或 SQLite 数据库中。实际使用时,baikal有个重大问题,就是不能更改admin账号的用户名,嘛,其实不用暴露公网也行,如果一定要暴露然后不放心就上fail2ban,不过我的读者们好像都只是看看而已不会真的搭建,所以就这样吧 。
docker compose
version: "2"
services:
!!baikal:
!!!!image: ckulka/baikal:nginx
!!!!container_name: baikal
!!!!restart: always
!!!!ports:
!!!!!!- 380:80
!!!!volumes:
!!!!!!- config:/var/www/baikal/config
!!!!!!- data:/var/www/baikal/Specific
!!!!networks:
!!!!!!- traefik_proxy
!!!!labels:
!!!!!!- traefik.enable=true
!!!!!!- traefik.http.routers.baikal-http.entrypoints=web
!!!!!!- traefik.http.routers.baikal-http.rule=Host(`baikal.子域名.duckdns.org`)
!!!!!!- traefik.http.routers.baikal-http.middlewares=https-redirectscheme@file
!!!!!!- traefik.http.routers.baikal-https.entrypoints=websecure, public
!!!!!!- traefik.http.routers.baikal-https.rule=Host(`baikal.子域名.duckdns.org`)
!!!!!!- traefik.http.routers.baikal-https.tls=true
!!!!!!- traefik.http.routers.baikal-https.middlewares=header-crowdsec
volumes:
!!config:
!!data:
networks:
!!traefik_proxy:
!!!!external: true
没错和monica一样这里使用了docker volume,但是原因不同,baikal的文件夹直接mount会出现权限问题,所以才不得不使用docker volume。
现在访问baikal的网页,第一次访问会触发Baïkal initialization wizard。Server Time zone改成Asia/Shanghai,WebDAV authentication type改成Basic,然后输2遍密码就行。
然后是Baïkal Database setup,如果像我一样用SQLite就直接按Save changes,用MySQL的用户在docker compose阶段就要设置好,既然会用就自己折腾去吧。
设置好了就start吧。
然后用admin账号登陆到管理界面。
点上面的user创建新用户。
用户创建完后就能退出admin,然后就能用新建的用户登陆了,如果这么想那就表示你想多了,因为baikal只有admin才能登陆 。不过创建完用户后默认就有calendar和address book了,这样就够了。
这样baikal的使命就算完成了,现在轮到Web-based Client的agendav出场。
CalDAV or CardDAV Web-based Clients
AgenDAV是一个CalDAV网络客户端,它具有AJAX界面,允许用户管理自己的日历和共享日历。AgenDAV直接使用baikal的数据库,所以不需要使用文件夹。
docker compose
version: "2"
services:
!!agendav:
!!!!image: nagimov/agendav-docker:latest
!!!!container_name: agendav
!!!!restart: always
!!!!ports:
!!!!!!- "381:80"
!!!!environment:
!!!!!!- AGENDAV_SERVER_NAME=127.0.0.1
!!!!!!- AGENDAV_TITLE=Welcome to Agendav Server #可以改
!!!!!!- AGENDAV_FOOTER=Hosted by Myself #可以改
!!!!!!- AGENDAV_ENC_KEY=随便打一串乱码
!!!!!!- AGENDAV_CALDAV_SERVER=http://baikal:80/dav.php #只有同一个网络下才能用名字替代ip,直接使用ip也没问题,下同,反正我自己是直接用ip的
!!!!!!- AGENDAV_CALDAV_PUBLIC_URL=http://baikal:80/ #server和clent的public地址不同可能会造成cross domain,有可能client会连不上server,多试几次就能明白,推荐直接用ip
!!!!!!- AGENDAV_TIMEZONE=Asia/Shanghai
!!!!!!- AGENDAV_LANG=en #嗯,不用想了没中文
!!!!!!- AGENDAV_LOG_DIR=/tmp/
!!!!networks:
!!!!!!- traefik_proxy
!!!!labels:
!!!!!!- traefik.enable=true
!!!!!!- traefik.http.routers.agendav-http.entrypoints=web
!!!!!!- traefik.http.routers.agendav-http.rule=Host(`agendav.子域名.duckdns.org`)
!!!!!!- traefik.http.routers.agendav-http.middlewares=https-redirectscheme@file
!!!!!!- traefik.http.routers.agendav-https.entrypoints=websecure, public
!!!!!!- traefik.http.routers.agendav-https.rule=Host(`agendav.子域名.duckdns.org`)
!!!!!!- traefik.http.routers.agendav-https.tls=true
!!!!!!- traefik.http.routers.agendav-https.middlewares=header-crowdsec
networks:
!!traefik_proxy:
!!!!external: true
然后访问网页。用baikal上已存在用户的用户名和密码登陆,需要注意的是不能用admin。
登陆后要怎么搞就怎么搞。
当然,为了不太水,我还是会建一个日程的,点create event。
好了,就这么简单。 下期见。
作者声明本文无利益相关,欢迎值友理性交流,和谐讨论~
飞跃鱼
校验提示文案
人人喊我有丈二铁鞭
校验提示文案
飞跃鱼
校验提示文案
人人喊我有丈二铁鞭
校验提示文案