Настройка сервиса для синхронизации Firefox версии 1.5

Если вы пользуетесь браузером Mozilla Firefox (Iceweasel), то наверняка знаете о прекраснейшей возможности — синхронизации данных: паролей, закладок, настроек, дополнений и т.д. А обладая собственным сервером на ос линукс, вы можете с лёгкостью организовать своё собственное хранилище.

В версии 1.0 сервис полностью был заменяемым. То есть, в настройках браузера вы могли указать адрес вашего сервера и регистрация аккаунта, и хранение данных производились на вашем сервере. Но начиная с версии 1.5 — сервис синхронизации является лишь частью сервисов Mozilla. Можно по-прежнему настроить свой сервис синхронизации, но регистрация аккаунта будет произведена через сайт Мозилли. А храниться данные будут у вас на сервере. :)

Правда, можно запустить сразу Mozilla Accounts у себя на сервере. Но это, возможно, будет рассмотрено в следующей статье.

Также рекомендую вам в обязательном порядке создать пользователя, от имени которого будет запускаться сервис синхронизации Firefox.

Установка компонентов

Установите необходимые компоненты:

# aptitude install python-dev git-core python-virtualenv

Теперь вы можете приступить к сборке сервиса из исходных файлов. Но сначала их нужно скопировать посредством git.

# git clone https://github.com/mozilla-services/syncserver

Переходим в папку с исходниками.

# cd syncserver

И собираем…

# make build

Настройка Sync Server

Мой сайт, через который будут синхронизироваться данные, работает по протоколу https, а в качестве веб-сервера выступает nginx. Все запросы на синхронизацию проксируются от nginx к сервису синхронизации. Поэтому и конфигурационные параметры будут приведены с учётом этого.

Конфигурационный файл — syncserver.ini. Откройте его в вашем любимом текстовом редакторе и измените следующие параметры.

[syncserver]
public_url = https://mysite.com/dir/

Здесь следует указать, по какому адресу будет доступен сервис синхронизации. Смело вписывайте адрес вашего домена (с https, если поддерживается). Также можно указать путь, как у меня в примере.

sqluri = sqlite:////path/to/database/file.db

Это путь к файлу базы данных в формате SQLite. Файл с данными можно хранить в домашнем каталоге пользователя, от имени которого запускается сервис.

Далее потребуется указать секретный ключ. Выполните в консоли следующую команду:

# head -c 20 /dev/urandom | sha1sum

Команда сгенерирует случайным образом секретный ключ. Раскомментируйте параметр secret и укажите полученный ключ. Например, так:

secret = db8a203aed5fe3e4594d4b75990acb76242efd35

Связка с nginx

Теперь организуем работу сервиса синхронизации и nginx.

Директиву [server:main] в конфигурационном файле syncserver.ini преобразуйте так:

[server:main]
use = egg:gunicorn
host = 127.0.0.1
port = 5000
workers = 2
timeout = 60

После чего откройте конфигурационный файл nginx с вашим сайтом, добавьте туда следующий location:

server {
...
location /dir {
proxy_set_header Host $http_host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Real-IP $remote_addr;
proxy_redirect off;
proxy_read_timeout 120;
proxy_connect_timeout 10;
proxy_pass http://127.0.0.1:5000/;
}
...
}

И перезапустите nginx. Затем запустите сервис синхронизации:

# local/bin/pserve syncserver.ini

Запуск sync server при помощи screen

Для удобства запуска сервиса синхронизации создайте в папке с сервисом файл .sh с произвольным именем и запишите туда следующее:

#!/bin/bash
screen -A -d -m -S ffsync make serve

Это и будет вашим скриптом запуска. :) Останется только запустить его и сервис будет работать в свёрнутом режиме. Развернуть окно можно будет командой screen -x ffsync.

Настройка синхронизации в Firefox

В новой вкладке откройте страницу about:config, напечатав адрес в адресной строке. И найдите параметр services.sync.tokenServerURI. В значении этого параметра нужно будет указать адрес вашего сервера. Например, так:

services.sync.tokenServerURI: http://sync.example.com/token/1.0/sync/1.5

При этом, заменять здесь следует только http://sync.example.com/. Если сервис синхронизации у вас настроен на папку, типа http://sync.example.com/dir/, то этот путь и следует указывать совместно с token/1.0/sync/1.5.

Обновление Firefox sync server

Периодически сервис будет нуждаться в обновлении. А обновлять его можно, выполняя последовательно команды:

cd /path/to/syncserver
git stash       # сохранить любые локальные в конфигурационный файл
git pull        # получить последние обновления от github
git stash pop   # заново применить локальные изменения из конфигурационного файла
make build      # вытянуть любые обновлённые зависимости

UPD 30.05.2015: В качестве теста, попробовал установить firefox sync на разделе с файловой системой btrfs. Но всякий раз возникала проблема с базой в sqlite. На разделе с ext4 такой ошибки не наблюдал.

Как вы оцените статью?
Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (Пока оценок нет)
Загрузка...

Расскажите друзьям

Обсудим?

Email будет храниться в секрете.