firefox syncを自前サーバで運用してsqliteからmysqlまで持っていく

Firefoxの啓蒙の一環とはいっても、この世の中タダで使わせてくれるサービスなんてありませんよね。ここbloggerなんかもそうでしょうけれど(遠い目)。なにかしら勝手に吸い上げられてるこちらから差し出さなければならないものはあると思います。

さて、Firefox Syncを自前サーバで運用する設定、Mozillaのサイトに載ってたのですが、サーバを自前でという検索は"own server"とか"self hosted"とか使うと引っかかりやすいみたいです。

Run Your Own Sync Server

どのバージョンのFirefoxまで動くとかまで詳しく書いてありませんが、結果から言うと19でも23でも大丈夫でした。ただ動作が非常にシビアというか、ネットワークアナライザを覗いていると画面入力中もひっきりなしに(本物の)サーバに接続にいったりして、自前と本物のどちらに接続しにいくのか画面上でははっきり分かりません(エラーも)。

パスワードリセットなどは顕著で、もちろん自前用のアカウントが本物のページから修正できるわけがありません(されたら困る)が自分で試してみた限りではリセットページ(URL)が自前サーバに飛ぶところと飛ばないところがありました。一番の問題はetc/syn.confのfallback_nodeで、ポートをfirewallで塞いでたりsshトンネルで別ポートを使ってたりするとダンマリになって、その接続エラーがどうして起きたのかfirefoxは教えてくれないところでしょうか(怒)

入れる環境側の問題としては、(syncサーバが)pythonに厳しすぎて2.6以上、入れた環境は2.4ぺけだったのでpythonから入れ直し、また派生するpip, easy-installやmod_wsgiまわりも全部差し替えになる(並行インストールでバイパス指定した)ので、非常に骨の折れる作業でした。結果的に動作まで至ったのはpython2.7.3、mod_wsgiが3.4、64ビットのCentOSです。この作業する前から2.4と2.6と2.7.1が滅茶苦茶に入っていたので、まっさらな状態からだともっと楽かもしれません。

サイトにある通りpasterとsqliteで動作保証が無事済めば、apache+mod_wsgi&mysqlの組み合わせまですんなり持っていけます。mysqlに移行せずsqliteのままで行くとまたパーミッション周りで困難が待ち受けていますが、test.dbの上のディレクトリに書き込み権限がないからという一般的な罠によるものだそうです。

mysqlのほうはあまり考えずにCentOS吊るしのものを使いました。難しいことは特にやっていないようで、設定は接続文字列を変えるだけ。ユーザーとDBだけ先に作成しておけばテーブルの作成などはsyncの起動後(設定中)にsyncサーバのほうでやってくれます。
Configuring the application

あと、本物と自前を切り替えて使っているうちにfirefoxが妙な動きを始めるので、試行錯誤の間は毎回再起動をかけたほうが得策だと思います。これで1440分くらい無駄にしました。

Popular posts from this blog

Thunderbirdのフィルタで正規表現

Windows10にTeratermを新規で入れたら文字化けしてUTF-8の設定もできない→日本語設定にしてフォントの文字セットも変更すると直る

Chrome (SRWare Iron)で複数ユーザを切り替えたい、しかもコマンドラインオプションで。