Firefox Sync Server

提供: ArchWiki
2018年1月3日 (水) 00:00時点におけるKusakata (トーク | 投稿記録)による版 (Kusakata がページ「Mozilla Firefox Sync Server」を「Firefox Sync Server」に移動しました)
ナビゲーションに移動 検索に移動

Wikipedia より:

Firefox Sync (旧名 Mozilla Weave) はブックマークや回覧履歴、設定、パスワード、入力フォーム、最後に開いた25個のタブなどを他のコンピュータと同期することができるブラウザ同期機能である。
ユーザーのデータは Mozilla のサーバーに保存されるが、データは暗号化されるため第三者はもちろん Mozilla にも情報の閲覧はできない。ユーザーが自分・自社用に Firefox Sync サーバーを立ち上げることもできる。

このページでは (Mozilla) Firefox Sync Server (略して FFSync) のバージョン 1.1 あるいはバージョン 1.5 を立ち上げて Firefox Account サーバーを使用できるようにする方法を解説します。

ノート: Mozilla Firefox Sync Server のバージョン 1.1 は開発が停止しており Firefox 29 から非推奨となり Firefox 32 からは使えなくなっています。Firefox 29 以上では Mozilla Firefox Sync Server のバージョン 1.5 が利用できます。ただし Firefox アカウントの作成が必要です。詳しくは以下のリンクを見てください:
ノート: バージョン 1.1 とバージョン 1.5 はデータベースを共有しないようすることで多少設定を変更して同時に使用することができます。
ヒント: Firefox の URL バーに about:sync-log と入力すると Firefox Sync に関連するログが表示されます。

バージョン 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.confsqluri フィールドを編集してください。

公式の 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" ボタンで何を同期するのか設定したり、クライアントのホスト名を定義できます。

参照