奧推網

選單
科技

時間管理表 篇一:日曆 CalDAV or CardDAV ServersWeb-based ...

作者:空調救我命

額 ,上週的文章太水了,閱讀量低的驚人,收益也隨之下滑,影響到了我的水金幣計劃,這樣不行,所以我要搞個新系列賺金幣。這次帶來的是一連串的時間管理表,至於用處只要是看的懂中文的都能理解,就不做解釋了。

第一彈是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。

好了,就這麼簡單。 下期見。