快轉到主要內容

Baïkal:自架CalDAV行事曆同步伺服器,在Thunderbird與Android手機間同步

· 民國114年乙巳年
·
切換繁體/簡體
分類   Linux系統 Self-hosting自架
標籤   Google Nextcloud
目錄

我想要搞一個類似Nextcloud Calendar的開源行事曆,但又不想安裝繁重的整套服務,故挑了一個輕量的替代方案。

在同步行事曆方面,行之有年的方案就是CalDAV協定了,這是各大作業系統都支援的東西。只要架設一個託管CalDAV的伺服器,就能用各個裝置的行事曆客戶端同步。

在這裡,負責同步的這套軟體叫做Baïkal(意思為),使用PHP寫成,它提供同步CalDAV與CardDAV的功能,可以同步行事曆、聯絡人。

1. 撰寫docker-compose
#

Baïkal的原始碼位於Github。作者沒有做Docker映像,要用第三方打包的。

  1. 安裝Docker

  2. 新增一個目錄存放資料

mkdir ~/baikal

cd ~/baikal
  1. 新增docker-compose.yml
services:
  baikal:
    image: ckulka/baikal:nginx
    restart: always
    ports:
      - "8080:80"
    volumes:
      - ./config:/var/www/baikal/config
      - ./data:/var/www/baikal/Specific
  1. 啟動容器
docker compose up -d
  1. 開啟http://Linux伺服器IP:8080進入網頁界面,設定admin的密碼。將authentication type設定為Basic,允許以帳號密碼登入。

  2. 資料庫選用SQLite

  3. 新增一個使用者,這個使用者的行事曆就是之後要用來同步的。使用者的公開月曆網址是為https://Linux伺服器IP:8080/dav.php/calendars/帳號名稱

2. 連接CalDAV
#

電腦端
#

Thunderbird為例,點選行事曆側邊欄 → 開新行事曆 → 存放於網際網路網路,輸入Baikal伺服器的網址(https://Linux伺服器IP:8080/dav.php),以及帳號密碼。隨後Baïkal的行事曆就會顯示在Thunderbird上。

Android手機
#

我使用DAVx⁵負責登入CalDAV內容。

再用Fossify Calendar讀取裝置上的CalDAV。

3. 網頁版CalDav客戶端
#

我希望能有一個網頁的行事曆介面能查看Baïkal的月曆,不依賴任何客戶端,所以額外部署了AgenDAV。

但不知道為什麼,這個無法登入。

docker-compose如下

services:
  agendav:
    image: ghcr.io/nagimov/agendav-docker:latest
    container_name: agendav
    environment:
      - AGENDAV_SERVER_NAME=127.0.0.1
      - AGENDAV_TITLE=Welcome to Agendav Server
      - AGENDAV_FOOTER=Hosted on Agendav Server
      - AGENDAV_CALDAV_SERVER=http://Baiakl伺服器的IP/cal.php
      - AGENDAV_CALDAV_PUBLIC_URL=http://Baiakl伺服器的IP:8075
      - AGENDAV_TIMEZONE=Asia/Taipei
      - AGENDAV_LANG=en
      - AGENDAV_LOG_DIR=/tmp/
      - AGENDAV_WEEKSTART=1
    ports:
      - "80:8080"

相關文章

以Docker架設Invidious站台,Youtube去廣告、網頁下載影片
分類   Linux系統 Self-hosting自架
標籤   Invidious Youtube RSS Feed
架設私人雲端如何選?Syncthing與Nextcloud功能比較
分類   Linux系統 Self-hosting自架
標籤   Syncthing Nextcloud
開源友好的主機供應商「PikaPods」,一鍵架設Docker雲端服務
分類   Linux系統 Self-hosting自架
標籤   Nextcloud Docker Podman

此處提供二種留言板。點選按鈕,選擇您覺得方便的留言板。

(留言板載入中)這是Giscus留言板,需要Github帳號才能留言。支援Markdown語法,若要上傳圖片請善用外部圖床。您的留言會在Github Discussions向所有人公開。

Click here to edit your comments.

(留言板載入中)這是Disqus留言板,您可能會看到Disqus強制投放的廣告。為防止垃圾內容,有時留言可能會被系統判定需審核,導致延遲顯示,請見諒。若要上傳圖片請善用外部圖床網站。