カレンダーサーバのBaikalを試してみたので記す。

ここでのカレンダーサーバとは、Googleカレンダーのようなものですな。
「だったらそんなのGoogleカレンダーでいいじゃないか」というのは仰るとおりだが、そもそも環境の都合上、Googleカレンダーへの接続ができないとか、PRISM以降、オンラインサービスを信用ならない向きには有用なサービスであります。

カレンダーサーバの選択

とはいえ、カレンダーサーバ(以降、CalDAVサーバ)を選ぶにも、かなりの数が作られている。
Wikipedia(英語版)で調べてみると、各種CalDAVサーバが一覧にされた比較表が出てくる。
これを参考に選んでみよう。

http://en.wikipedia.org/wiki/Comparison_of_CalDAV_and_CardDAV_implementations

いろいろ眺めてみて、かつ、少しかじってみて、Baikalを選んだ。
いずれのCalDavサーバも機能は一長一短なので、構築がとっても楽だったBaikalに決めた。

Baikalとは。

SabreDAVをベースにしたCalDAV, CardDAVサーバである。
オフィシャルサイトはこちら
しかしこのサイトにはドキュメントがまったくないので、GitHubのこちらを勧める。
RequirementはPHP5.3以降にSQLite3、php-pdo。データベースにはMySQLも利用できる。
WebDAVサーバも必要だが、apache, nginx, lighttpd等、どれでもいいでしょう。
さっそくインストールしてみる。

Baikalのインストール

これはなんでもない。
FreeBSDならpkgngにあるのでそれで。portsならwww/baikal 。
依存も少なめで非常にいい。

インストールが終わると以下のメッセージが表示される。

To finish installing Baikal:
        1) Set up an httpd directive
           See /usr/local/share/examples/baikal
        2) touch /usr/local/www/baikal/Specific/ENABLE_INSTALL
        3) Browse http://your.host.here/admin
        4) rm /usr/local/www/baikal/Specific/ENABLE_INSTALL

上記メッセージに沿って進める。

httpサーバの設定

FreeBSDだと/usr/local/www/baikalにインストールされる。
それぞれのhttpサーバでbaikalのインストールされたディレクトリを公開する。
ただし公開するのはbaikalのhtmlディレクトリ。
/usr/local/www/baikal/html/である。

私の場合、/usr/local/www/dataがhttpサーバのドキュメントRootだった。
webサーバでaliasの設定をすべきだが、面倒なので横着してsymlink張った。

# ln -s /usr/local/www/baikal/html /usr/local/www/data/baikal
# ls /usr/local/www/data
baikal          index.html

Baikalのセットアップ

インストール時メッセージに沿う。
SpecificフォルダにENABLE_INSTALLというファイルを作る。

# touch /usr/local/www/baikal/Specific/ENABLE_INSTALL
# ls /usr/local/www/baikal/Specific
.htaccess       ENABLE_INSTALL  db

その後、ブラウザで接続。
http://<baikalサーバ>/baikal/admin へ。
うまくすれば以下の画面になるはず。

img

データベースセットアップ。
SQLiteならそのまま進む。
img img

一通りの設定が終わったのでダッシュボードへ。
img

終わったらSpecific/ENABLE_INSTALLを削除すること。

ユーザ、カレンダの追加

上記からの流れでdashboardに移動しているはず。
メニューバーのユーザ管理をクリックしていけばユーザ、カレンダー追加ができる。

img

img ここでのパスワードは、あとあとカレンダーへアクセスするときに必要になるもの。

ユーザを作ったら、カレンダーをクリック。

img

カレンダーが出来ていますね。
img

カレンダーへのアクセス

CalDAVに対応しているならなんでもいい。
ここのClient Implementationsにズラリと並んでいるどれでもOK.
iOS, Androidだって、よりどりみどり。

ここでは、ThunderbirdのLightningからアクセスする例を示す。

img

CalDAVを選び、アドレスに以下を入れる。

http://<IPアドレス>/baikal/cal.php/calendars/<ユーザ>/default

たとえば、http://192.168.154.241/baikal/cal.php/calendars/doe/default

以上。