ホーム > サーバ > Darwin Calendar Serverの構築

Darwin Calendar Serverの構築

連休前に会社のリポジトリサーバをDebian lennyで組むというミッションがあったのですが、Debianの出来の良さが気に入ったので自宅のサーバも換装してみました。
怪しげなリポジトリの追加やコンパイル作業無しで必要なサービスが揃ったのは初めてで、Debianのパッケージの充実に感動している所です。

せっかくなので、今まで先送りしていて欲しかったCalDAVサーバを構築してみる事にしました。
lennyのリポジトリを確認した所、Darwin Calendar Serverが見つかりました。
DAViCalの方は、squeeze以降にしか無いようです。

先に使用感について書いておきますが、概ね良好です。
MacのiCalとiPhoneから、問題なく読み書きできています。
自宅サーバを持っている人で、MobileMeやGoogle Calendarにスケジュールを預けたくないけど、OTA同期したい人にはお勧めできます。
一点だけ問題があり、iCalからカレンダーを他のユーザに委任する事ができません。
Calendar Serverのメーリングリストを追ったところ、アカウントをLDAPで管理するように構成しなければ、この機能が動作しないという事でした。
自宅サーバに家族のアカウントを収容していて、相互にカレンダーの公開を考えている場合は面倒かもしれません。
僕は、LDAPは構成しませんでした。面倒すぎ(^_^;;

インストール

aptitude install calendarserver

ディスクの拡張属性を有効化

Calendar Serverは、情報の一部のファイルの拡張属性に収容します。
/var/spool/caldavを含むディスクを、user_xattr付でマウントするようにしてください(ext3の場合)。
下記は僕の所の例ですが、ファイルシステムでオプションが違うと思うので、調べてください。

vi /etc/fstab
-/dev/md0        /               ext3    errors=remount-ro 0       1
+/dev/md0        /               ext3    errors=remount-ro,user_xattr 0       1

ルートディスクの場合はアンマウントできないので、再起動かもしれません。

設定ファイルを用意

インストール直後は設定ファイル不足で起動しないようになっています。
サンプルをコピーしてから始めると楽です。

cp /usr/share/doc/calendarserver/examples/accounts.xml /etc/caldavd
cp /usr/share/doc/calendarserver/examples/sudoers.plist /etc/caldavd

ネットワーク設定

デフォルトだとlocalhostにバインドされているので、すべてのIPアドレスに応答するように設定します。
またSSLを有効にする場合は、証明書も指定します。

vi /etc/caldavd/caldavd.plist
-  <!--
   <key>SSLPort</key>
   <integer>8443</integer>
-  -->

   <key>BindAddresses</key>
-  <array><string>localhost</string></array>
+  <array><string></string></array>

   <key>SSLCertificate</key>
-  <string>/etc/ssl/certs/ssl-cert-snakeoil.pem</string>
+  <string>/etc/ssl/certs/<証明書></string>

   <key>SSLPrivateKey</key>
-  <string>/etc/ssl/private/ssl-cert-snakeoil.key</string>
+  <string>/etc/ssl/private/<秘密鍵></string>

ユーザを追加

ユーザ情報はXMLファイルに書き込みます。
パスワードも生ですし、PAMを使ってLinuxのアカウントで認証する事もできません。
LDAPを使って構成すると幸せになれるみたいですが……

vi /etc/caldavd/accounts.xml
+  <user>
+    <uid>user1</uid>
+    <password>pass1</password>
+    <name>User 1</name>
+    <cuaddr>user1@foo.com</cuaddr>
+  </user>
+  <user>
+    <uid>user2</uid>
+    <password>pass2</password>
+    <name>User 2</name>
+    <cuaddr>user2@bar.com</cuaddr>
+  </user>

試していませんが、会議室予約のような共有カレンダーはLDAP無しでも設定可能であるようです。
accounts.xmlの下の方にそれっぽいサンプルがあるので、お試しください。

自動起動を設定

デフォルトで起動が禁止されています。

vi /etc/default/calendarserver
-#start_calendarserver=yes
+start_calendarserver=yes

後は起動するだけです。

/etc/init.d/apache2 calendarserver

クライアントからの接続

iCalやiPhoneからの接続は簡単です。
ホスト名とユーザ名とパスワードを入れれば、SSLの有無やカレンダーのパスを自動的に検出してくれます。
Windowsからの接続は試していませんが、Mozilla Sunbirdなら繋がると思います。たぶん(^_^;;

広告
カテゴリー:サーバ
  1. まだコメントはありません。
  1. No trackbacks yet.

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中

%d人のブロガーが「いいね」をつけました。