Firefox Sync Server
Wikipedia より:
- Firefox Sync (旧名 Mozilla Weave) はブックマークや回覧履歴、設定、パスワード、入力フォーム、最後に開いた25個のタブなどを他のコンピュータと同期することができるブラウザ同期機能である。
- ユーザーのデータは Mozilla のサーバーに保存されるが、データは暗号化されるため第三者はもちろん Mozilla にも情報の閲覧はできない。ユーザーが自分・自社用に Firefox Sync サーバーを立ち上げることもできる。
このページでは (Mozilla) Firefox Sync Server (略して FFSync) のバージョン 1.1 あるいはバージョン 1.5 を立ち上げて Firefox Account サーバーを使用できるようにする方法を解説します。
目次
バージョン 1.5
Firefox のバージョン 29 以上で使うことができます。
インストール
AUR から mozilla-firefox-sync-server-gitAUR パッケージをインストールしてください。
隔離された Python 環境が作成されて必要なライブラリは全てそこにダウンロード・インストールされます。サーバーは分離環境の Python にだけ依存し、システムの Python は使わずに動作します。
サーバーの設定
FFsync サーバーは /opt/mozilla-firefox-sync-server/syncserver.ini
ファイルで設定できます。大体のオプションは 公式ドキュメント に説明があります。設定例:
# Use a Unix socket and the Gunicorn server [server:main] use = egg:gunicorn#main bind = unix:/run/ffsync/syncserver.sock workers = 2 timeout = 60 syslog = true syslog_prefix = ffsync syslog_facility = daemon [app:main] use = egg:syncserver [syncserver] # This must be edited to point to the public URL of your server, # i.e. the URL as seen by Firefox. public_url = http://example.com/ffsync/ # This defines the database in which to store all server data. sqluri = sqlite:////var/lib/ffsync/sync_storage.db # This is a secret key used for signing authentication tokens. # It should be long and randomly-generated. # The following command will give a suitable value on *nix systems: # # head -c 20 /dev/urandom
nginx の設定
nginx の設定例:
# Firefox sync config location /ffsync/ { rewrite ^/ffsync(.+)$ $1 break; proxy_pass http://unix:/run/ffsync/syncserver.sock; proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header X-Forwarded-Proto $scheme; proxy_redirect off; proxy_read_timeout 120; proxy_connect_timeout 10; gzip off; }
クライアントの設定
デスクトップ版の Firefox で新しく立ち上げた Sync サーバーを使うには、about:config
を開いて services.sync.tokenServerURI
を検索してください。値をあなたのサーバーの URL に変更してください:
services.sync.tokenServerURI: http://example.com/ffsync/token/1.0/sync/1.5
Firefox アカウントサーバー
Mozilla によって提供されている公式の Firefox アカウントサービスを使用するか、あるいは 公式ドキュメント に従って自分用のアカウントサーバーを立ち上げてください。
バージョン 1.1
Firefox のバージョン 32 未満で使うことができます。
インストール
AUR から mozilla-firefox-sync-server-hgAUR をインストールしてください。
隔離された Python 環境が作成されて必要なライブラリは全てそこにダウンロード・インストールされます。サーバーは分離環境の Python にだけ依存し、システムの Python は使わずに動作します。
サーバーの設定
FFsync サーバーは /opt/mozilla-firefox-sync-server/development.ini
と /opt/mozilla-firefox-sync-server/etc/sync.conf
ファイルで設定できます。
基本設定
フォールバックノード URL をサーバーの URL にあわせて変更してください (例: https://example.com/ffsync/
)。/opt/mozilla-firefox-sync-server/etc/sync.conf
を編集して以下の部分を:
[nodes] fallback_node = http://localhost:5000/
以下のように変更します:
[nodes] fallback_node = https://example.com/ffsync/
デバッグモードの無効化
/opt/mozilla-firefox-sync-server/development.ini
で以下を設定:
[DEFAULT] debug = False
メールアドレスの設定
/opt/mozilla-firefox-sync-server/etc/sync.conf
で以下を設定:
[smtp] sender = ffsync@example.com
ストレージバックエンド
デフォルトのストレージバックエンドは SQLite です。ユーザーが大勢いるのでないかぎり十分な性能を発揮します。データベースを複数のファイルに分割するには、/opt/mozilla-firefox-sync-server/etc/sync.conf
の sqluri
フィールドを編集してください。
公式の FFsync サーバーハウツー には MySQL や LDAP をバックエンドとして使用する方法が解説されています。
ディスククォータ
デフォルトのディスククォータは制限が強すぎてブックマークを大量に保存した場合すぐに使い切ってしまいます。/opt/mozilla-firefox-sync-server/etc/sync.conf
でディスククォータを 5 MB から 25 MB に変更:
[storage] ... quota_size = 25600 ...
ウェブサーバーの設定
デフォルト設定では Sync に組み込まれているサーバーが起動しますが本番環境では使わないほうが無難です。
Apache と mod_wsgi
公式の FFsync サーバーハウツー を見てください。
nginx と Gunicorn
AUR のパッケージはデフォルトで Python の virtualenv
に Gunicorn サーバーをインストールします。/opt/mozilla-firefox-sync-server/development.ini
の以下の行を変更することで有効にできます:
[server:main] use = egg:gunicorn#main host = unix:/run/ffsync/syncserver.sock use_threadpool = True threadpool_workers = 60
/etc/tmpfiles.d/ffsync.conf
ファイルを作成することで起動時に /run/ffsync/
フォルダが作成されます:
D /run/ffsync 0750 ffsync http
以下のコマンドを実行してフォルダを作成:
# systemd-tmpfiles --create ffsync.conf
mozilla-firefox-sync-server-hgAUR に含まれている systemd サービスユニットを使って Gunicorn サーバーを起動・有効化:
# systemctl enable ffsync # systemctl start ffsync
nginx の設定例:
# Firefox sync config location /ffsync/ { rewrite ^/ffsync(.+)$ $1 break; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; proxy_set_header Host $http_host; proxy_redirect off; proxy_pass http://unix:/run/ffsync/syncserver.sock; }
クライアントの設定
Firefox の設定で Sync 設定ウィザードを使ってサーバーに新しいアカウントを作成してください。リストで "Custom server..." を選択してサーバーのアドレスを入力してください: https://example.com/ffsync/
。
"Advanced Settings" ボタンで何を同期するのか設定したり、クライアントのホスト名を定義できます。