Debian で自前 Firefox Sync サーバーを立てる

この記事は約5分で読めます。

今日は完全に Linux ネタです。 私のメインのブラウザは、Firefox です。もうかれこれ、5年くらいは使用しているのではないかと思います。 最近は Google Chrome も非常に高速なので、Wordpress などの JavaScript を多用するウェブアプリでは使用していますが、それでも拡張機能の豊富さでやはりまだ Firefox を使用しています。

そして、我が家にはPCが全部で4台と、iPod Touch があります。 問題は、これらすべての機械で、ブックマークなどの同期をどうやって行うか、という話です。 もし同期がされていないと、あるPCでブックマークしたページが、別のPCには存在しないということになり、年月がたつともう訳が分からなくなります。 つまり、複数のPCで作業をする場合は、同期は必須の機能なのです。

そういうわけで、最近のブラウザは軒並みこの同期機能を備えています。 最も進んでいるのは Google Chrome ですが、Firefox も負けてはいません。 Firefox Sync という仕組みが最近公開され、同期が簡単に行えるようになりました。

けれども、この同期機能において、問題が一つあります。 それは、「データが Firefox の用意したサーバー(つまりクラウド上)に蓄積される」 ということです。 AES 256ビットという、比較的強力な暗号がかけられた上で保存されるのでプライバシーは守られる、とうたっていますが、やはり一抹の不安は残ります。 これは、Google Chromeでも同じです。 要は、クラウド上にブックマークやパスワードが保存される事への懸念なのです。

そこで考えられる解決策の一つとして、「自前で同期用のサーバーを立てる」という営みです。 幸いなことに、Firefox Sync は、自前サーバーへの同期もサポートしています。 そして、我が家ではノートPCにインストールされた Debian GNU/Linux が24時間動いています。 というわけで、これを使って Firefox Sync 用の自前サーバーを立てれば、「安全」と「便利」を両立できることになります。 そういうわけで、以下、Debian でインストールする場合のポイントに重点を絞って書きます。

  1. 前提:Apache 2 サーバが動作し、SSLをサポートしていること。これが分からない場合、ググって調べること。
  2. php5、php5-common、php5-cil、php5-sqlite、sqlite の各パッケージをインストールする。

    # sudo aptitude install php5 php5-common php5-cil php5-sqlite sqlite

  3. ここ から weave-minimal の tar ボールをダウンロード(下の方の「For now, the tarball is here」の所のリンクをたどる)して、適当なディレクトリに展開し、ディレクトリ自体のオーナーを www-data に変更。

    # tar zxvf weve_minimal.tgz
    # chwon -R www-data weave_minimal

  4. /etc/apache2/site-available/default-ssl の適当な所に以下のエントリを追加して、Apacheを再起動。

    Alias   /weave  “(インストールしたディレクトリのフルパス)/index.php”

    # /etc/init.d/apach2 restart

  5. ブラウザで以下の URL にアクセスする。

    https://(自前サーバーのIPアドレス又はFQDN)/weave/1.0/blah/info/collection

  6. BASIC認証ダイアログが出るので、ESCキーを押して回避する(これで、sqliteのdbファイルが自動的に作成される)。
  7. weave をインストールしたディレクトリに、weave_db というファイルが出来ていることを確認する。
  8. コマンドラインから以下のように入力して、weave_db に新しいユーザを追加する。このユーザー名と、その後に入力するパスワードが、同期の際に利用するパスワードとなる。ここまででサーバー側の設定は終了。

    # php5 create_user

  9. Firefox に Firefox Sync アドオン をインストールする。(4.0より前のバージョンを使っている場合。4.0からは標準機能になるとのこと)。
  10. Firefox 再起動後に出てきた画面で、新しい同期設定を作成し、サーバー名を入力する所で、「Custom Server」を選択し、以下のように入力する。

    サーバー名:https://(自前サーバーのIPアドレス又はFQDN)/weave/
    ユーザー名:8.で作成したユーザー名
    パスワード:8.で入力したパスワード

  11. 最後に 「Sync Key を入力せよ」と言われるので、適当に入力して終わり。
  12. あとは、使用するすべてのPCにおいて、9~11を繰り返せばOK。


とまぁ、こんなところです。

ちなみに、Debian etch でやったのですが、個人的にはまったのは2.のところです。パッケージが不足していると、5.でURLにアクセスしても「404 Not Found」と無情な画面になります。 php5、sqlite、JSONライブラリ、この3つのどれか一つでも欠けているとだめです。逆に言えば、2.さえクリアできれば、後はスムーズに行きます。

実際には、自前サーバーを立てること自体がハードルが非常に高いわけですが、もしそこがクリアできているのであれば、この方法はセキュリティの面、また利便性の面から非常に有効です。

どうぞお試し下さい。

コメント

  1. a weblog by k1 より:

    Firefox Syncを自宅サーバで

    Firefoxのブックマークなどを別のPCに持って行こうと思って調べてたら、 オンライン上のサーバを使って同期させるアドオンFirefox Syncがあった。 しかも、この機能、Firefox 4からは標準になるとのこと。 そのデータはMozillaが用意しているサーバに保存されるので、 インターネットにつながってれば、いつでも利用可能。 そもそもWebブラウザを使う状況ってのは、 インターネットにつながっているわけだから、問題ない。 さらに調べてると、Mozillaのサーバではなく、 自前で用意し…