CardDAV/CalDAV 同期の続き。Calendar and Contacts Server を引き続き試していたが、どうも挙動不審で、しかも PostgresQL とか使っているので何が起きているのかが極めてわかりにくい。ひとまずこちらは保留として、Radicale を試してみることにした。これは python 上で単体で動いているので、もう少し見通しがよさそう。
公式サイトから Radicale-0.8.tar.gz を取ってきて、/Applications
に展開。config
に少し手を入れる。本当に最小限。
[server] ... hosts = 0.0.0.0:8008 ... [auth] type = htpasswd ... # public_users = public # comment out ... private_users = nagata ... htpasswd_filename = /Applications/Radicale-0.8/htpasswd ... htpasswd_encryption = sha1 ... [storage] type = filesystem ... filesystem_folder = /Applications/Radicale-0.8/collections
ユーザーアカウントの作成。htpasswd
を使う。
$ cd /Applications/Radicale-0.8 $ htpasswd -s -c htpasswd nagata # -s = sha1 New password:(タイプする) Re-type new password: (タイプする) Adding password for user nagata
カレンダー、アドレスブックの作成。
$ mkdir -p collections/nagata/calendars $ cp somewhere/work.ics collections/nagata/calendars # work.ics については後述 $ cp somewhere/contacts.vcf collections/nagata # contacts.vcf についても後述
work.ics
は、iCal から書き出したファイルからエントリを1つだけ切り出して作っておく。contacts.vcf
は、アドレスブックから書き出したファイルをそのまま使う。但し、そのままだと下のような行で問題が起きる。
X-ABUID:1EA171F7-1786-4D67-A45A-50AF87D097FA\:ABPerson
X-ABUID
を UID
に変更し、最後の \:ABPerson
を削除する。これで Radicale でも読める形式になる。mi の正規表現一括変換を使って処理した。
UID:1EA171F7-1786-4D67-A45A-50AF87D097FA
ターミナルで $ cd /Applications/Radicale-0.8; python radicale.py --config ./config --debug
とする。これを走らせたまま、iCal でアクセスする。「環境設定」→「アカウント」→左下の+マーク→アカウントの種類=CalDAV, ユーザ名=nagata
, パスワード=xxxx, サーバアドレス=127.0.0.1:8008/nagata/calendars/
→証明書の確認が出るので受け入れる→同期開始。
Nexus からのアクセスは、前とだいたい同じ。CalDav Sync の URL は http://XX.XX.XX.XX:8008/nagata/calendars/
でよい。CardDav の方は XX.XX.XX.XX:8008/nagata/contacts.vcf
となる。拡張子がみっともないが、つけないとうまくいかなかった。CardDAV Sync Beta(有料版)にすると、よみがなもちゃんと同期してくれる。
アドレスブック (5.0.3) はやっぱりダメです。これはもうしょうがないな。