Якщо ви користуєтеся браузером Mozilla Firefox (Iceweasel) , то напевно знаєте про найгарнішою можливості - синхронізації даних: паролів, закладок, налаштувань, доповнень і т.д. А володіючи власним сервером на ос лінукс, ви можете з легкістю організувати своє власне сховище.
У версії 1.0 сервіс повністю був замінним. Тобто, в настройках браузера ви могли вказати адресу вашого сервера і реєстрація аккаунта, і зберігання даних проводилися на вашому сервері. Але починаючи з версії 1.5 - сервіс синхронізації є лише частиною сервісів Mozilla. Можна як і раніше налаштувати свій сервіс синхронізації, але реєстрація аккаунта буде проведена через сайт Мозилли. А зберігатися дані будуть у вас на сервері. :)
Правда, можна запустити відразу Mozilla Accounts у себе на сервері. Але це, можливо, буде розглянуто в наступній статті.
Також рекомендую вам в обов'язковому порядку створити користувача, від імені якого буде запускатися сервіс синхронізації Firefox.
Зміст статті:
- Установка компонентов 1 Установка компонентів
- Настройка Sync Server 2 Налаштування Sync Server
- Связка с nginx 3 Зв'язка з nginx
- Запуск sync server при помощи screen 4 Запуск sync server за допомогою screen
- Настройка синхронизации в Firefox 5 Налаштування синхронізації в Firefox
- Обновление Firefox sync server 6 Оновлення Firefox sync server
установка компонентів
Встановіть необхідні компоненти:
# 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 такої помилки не спостерігав.