Baïkalでカレンダーと連絡先を管理する CalDAV/CardDAV

3年ほど前にGoogleとのお付き合いという記事で触れたCalDAV(カレンダーサーバ), CardDAV(連絡帳サーバ)について。
あいかわらずCalDAVとCardDAVは日本では全然不人気で普及してる感がない。そもそも知らないという人がほとんど。
AppleのiCal/カレンダーだと標準機能としてCalDAVが使えるけどWindowsやAndroidは標準では使えない。これが大きな要因かな。Windows10はCalDAV/CardDAVに対応していました。スミマセン。
でも、「がとらぼ」ではお構いなしに推す。
と、いうか、皆は個人情報をどう使われるかわからないようなところに予定や連絡先の情報を預けるの平気なんだろうか。

まずはCalDAV, CardDAVサーバが無いと話にならないので簡単に導入できるBaïkalを用意する。
BaïkalはPHPで動き、データの保存にはSQLiteかMySQLを使う。利用人数が1人~数人程度であればSQLiteを選択すると圧倒的に準備が簡単になる。大きなグループ・組織で使用するならMySQLを選択する方が無難かな。
ウェブサーバ側についてはApacheやNginxのWebDAVモジュールを追加する必要はない。

Baïkalの公式サイトは以前はhttp://baikal-server.com/というURLだったけど現在はhttp://sabre.io/baikal/ということになったみたい。一応いまのところは旧URLも使える。
ダウンロードはhttps://github.com/fruux/Baikal/releasesから。
2016年に入ってから長らく停滞していた開発が急に活発になったようで新しいバージョンがバンバン出てるけど、取り敢えずは最新版で問題ないかと思われる。

ダウンロードしたらウェブサーバのドキュメントルートに解凍する。
ウェブサーバが読み書き可能なパーミッションを設定する。
ウェブサーバの設定は公式サイトにApache用とNginx用があるのでほぼまるっとコピーで使える。
と、いうかセキュリティ上、CoreとSpecific以下の階層にはアクセスさせてはいけないので公式サイトの設定例を真似ること。PHP周りの設定だけして動けばいいやはダメ。Specific/db下にあるSQLiteのデータベースファイルが無防備なまま抜き取られたらきっと伝説になるね。

データ保存にSQLiteを使うならこれで準備完了。

Baïkal 1
ブラウザでBaikalをインストールしたURLを指定して表示。https://dav.example.com/やhttps://example.com/など。
上のような画面が表示される筈。
Server Time zoneはこの記事を見てる人なら多くはAsia/Tokyo。
Enable CalDAVにチェックするとカレンダーサーバが有効になる。
Enable CardDAVにチェックすると連絡先(連絡帳)サーバが有効になる。
WebDAV authentication typeは認証方式なので特に変更する理由がなければDigest(初期値)を選択。
その下2つはBaikalの管理者用パスワードなので強度の高いものを入力。
[Save changes]を押して次へ。

Baïkal 2
データ保存にSQLiteを使う場合は特に何か変更の必要がないかぎりそのまま[Save changes]を押して次へ。
MySQLを使いたいならUse MySQLにチェックするがMySQLについては割愛。

Baïkal 3
はい、終わり。
[Start using Baïkal]を押すと管理者用画面の認証画面に進む。
以後、管理者画面にログインしたいときはhttps://example.com/admin/などadminサブディレクトリのURL。

Baïkal 4
管理者画面の認証画面。管理者のアカウントはadmin、パスワードはインストール時に指定したもの。
[Authentication]でログイン。

Baïkal 5
管理者画面のダッシュボード。ユーザー数と登録されているイベント数、連絡先数などあまり役に立たない情報が表示されるだけ。Baikalでは基本的にインストール後に設定変更は行わない筈なので画面上部の黒帯部分のSettingsやSystem settingsは触らない。用事があるのは基本的にはユーザーの追加変更削除用のUsers and resourcesだけ。

Baïkal 6
Users and resourcesを選択したところ。
まだユーザーが登録されていないので[Add user]ボタンが押せるだけの状態。
[Add user]ボタンを押す。

Baïkal 7
ユーザー情報を入力して[Save changes]で保存。

Baïkal 8
登録されたユーザーがリスト表示されるようになる。(上の画面では1人だけだけど)
[Calendars]や[Address Books]を押すとカレンダや連絡帳の表示名が変更できるがその程度。イベントや連絡先を追加/変更/削除する機能はBaikalには付いていない。その点重要なので勘違いなく。

以上のようにとても簡単。使わない手はないと思うんだけどなぁ。

関連記事: