Настройте сервер синхронизации Firefox на Debian 9 или Ubuntu 16.04

Firefox Sync - это функция синхронизации браузера, которая позволяет вам обмениваться данными и настройками (такими как закладки, история, пароли, открытые вкладки и установленные надстройки) на всех ваших устройствах. Mozilla также предлагает приложение «сервер синхронизации» для использования с Firefox Sync для пользователей и предприятий, которые предпочитают размещать свои собственные данные синхронизации. В этой статье рассказывается, как настроить Mozilla Sync Server.

Предпосылки

  • Недавно развернутый экземпляр сервера Vultr Debian 8, Debian 9 или Ubuntu 16.04.
  • Пользователь Sudo .

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

Обновите систему:

sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade

Для сборки и запуска Sync Server вам необходимо установить следующие пакеты:

  • python-dev
  • git
  • build-essential (Компилятор C ++, компилятор GCC, make и другие необходимые инструменты).
  • sqlite3(если вы хотите использовать базу данных MySQL вместо SQLite, вы можете заменить sqlite3пакет на mariadb-serverили mysql-server).
  • nginx(веб-сервер. Вам решать, какой веб-сервер вы хотите использовать apache2или nginx).

Установите пакеты:

sudo apt-get install -y git git-core python-dev python-virtualenv build-essential sqlite3 nginx

Сборка сервера

Мы клонируем Git-репозиторий сервера синхронизации, введя следующую команду и затем войдем в папку:

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

Запустите команду сборки, которая загрузит зависимости и скомпилирует код.

make build

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

Конфигурация сервера синхронизации очень проста, в файле конфигурации нужно изменить только несколько параметров ( ./syncserver.ini).

Откройте файл конфигурации в вашем любимом текстовом редакторе (например nano ./syncserver.ini).

[server:main]
use = egg:gunicorn
host = 0.0.0.0
port = 5000
workers = 1
timeout = 30

[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://localhost:5000/

# This defines the database in which to store all server data.
#sqluri = sqlite:////tmp/syncserver.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 | sha1sum
#
# If not specified then the server will generate a temporary one at startup.
#secret = INSERT_SECRET_KEY_HERE

# Set this to "false" to disable new-user signups on the server.
# Only request by existing accounts will be honoured.
# allow_new_users = false

# Set this to "true" to work around a mismatch between public_url and
# the application URL as seen by python, which can happen in certain reverse-
# proxy hosting setups.  It will overwrite the WSGI environ dict with the
# details from public_url.  This could have security implications if e.g.
# you tell the app that it's on HTTPS but it's really on HTTP, so it should
# only be used as a last resort and after careful checking of server config.
force_wsgi_environ = false

[browserid]
# Uncomment and edit the following to use a local BrowserID verifier
# rather than posting assertions to the mozilla-hosted verifier.
# Audiences should be set to your public_url without a trailing slash.
#backend = tokenserver.verifiers.LocalVerifier
#audiences = https://localhost:5000

# By default, syncserver will accept identity assertions issues by
# any server. You can restrict this by setting the below to a list
# of allowed issuer domains.
#allowed_issuers = www.mysite.com myfriendsdomain.org

Адрес вашего сервера должен быть указан через параметр public_url:

public_url = http://fsync.example.com

Примечание : значение по умолчанию public_url"http: // localhost: 5000 /" будет работать в целях тестирования на вашем локальном компьютере.

В sqluriопции мы раскомментируем и поместим местоположение или URIэто позволит серверу подключаться к базе данных и хранить информацию:

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

Если вы хотите использовать другой тип БД:

sqluri = pymysql://username:[email protected]/sync

Для параметра " secret" нам потребуется сгенерировать секретный ключ для токенов аутентификации:

head -c 20 /dev/urandom | sha1sum

Раскомментируйте строку секретного параметра, а затем скопируйте / вставьте возвращенную строку в секретный параметр:

secret = db8a203aed5fe3e4594d4b75990acb76242efd35

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

Для параметра " allow\_new\_users" раскомментируйте его и настройте так, trueчтобы наша учетная запись впервые подключалась к нашему серверу:

allow_new_users = true

Затем мы изменим параметр " audiences" и добавим то же самое, что и public_uriпараметр " ", не забывая раскомментировать строку:

audiences = http://fsync.example.com

Наконец, просто добавьте следующую строку в конец вашего файла:

forwarded_allow_ips = *

Эта строка поможет вам избежать сообщений об ошибках и проблем с авторизацией.

Запуск сервера синхронизации

Чтобы запустить сервер синхронизации, вы можете запустить следующую команду:

./path/to/syncserver/local/bin/gunicorn --threads 4 --paste /path/to/syncserver/syncserver.ini &

... или этот:

make serve &

Первый вариант позволяет выбрать местоположение файла конфигурации; а также поставить аргумент --threads 4, который позволяет назначить больше мощности серверу синхронизации.

Чтобы запускать сервер каждый раз при загрузке вашего экземпляра, вы можете добавить следующую строку в ваш crontab, набрав crontab -eкоманду:

@reboot ./path/to/syncserver/local/bin/gunicorn --paste /path/to/syncserver/syncserver.ini &

Конфигурация веб-сервера

Вы можете использовать разные веб-серверы, совместимые с WSGIпротоколом. Например:

  • Nginx с UWSGI.
  • Apache в сочетании с mod_wsgi.

Nginx

Для Nginx вы должны использовать встроенный прокси-сервер Nginx, как показано ниже:

server {
        listen  80;
        server_name fsync.example.com;

        location / {
                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 + UWSGI

Пользователи Nginx могут использовать только сокет WSGI.

Установить uWSGIчерез Pip:

pip install uwsgi

Установите uWSGIчерез скачивание исходного архива:

wget https://projects.unbit.it/downloads/uwsgi-latest.tar.gz
tar zxvf uwsgi-latest.tar.gz
cd <dir>
make

Примечание : после сборки у вас будет uwsgiбинарный файл в текущем каталоге.

После установки запустите его со следующими параметрами:

uwsgi --plugins python27 --manage-script-name \
--mount /<location>=/path/to/syncserver/syncserver.wsgi \
--socket /path/to/uwsgi.sock

Затем используйте следующую конфигурацию Nginx:

location /<location>/ {
  include uwsgi_params;
  uwsgi_pass unix:/path/to/uwsgi.sock;
}

апаш

Установить mod_wsgi:

apt-get install libapache2-mod-wsgi

Затем используйте следующий vhost:

<VirtualHost *:80>
  ServerName sync.example.com
  DocumentRoot /path/to/syncserver
  WSGIProcessGroup sync
  WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25 python-path=/path/to/syncserver/local/lib/python2.7/site-packages/
  WSGIPassAuthorization On
  WSGIScriptAlias / /path/to/syncserver/syncserver.wsgi
  CustomLog /var/log/apache2/sync.example.com-access.log combined
  ErrorLog  /var/log/apache2/sync.example.com-error.log
</VirtualHost>

Настройте клиент (Firefox)

После того, как сервер установлен и настроен, вы должны настроить клиент Firefox для настольного компьютера на связь с вашим новым сервером синхронизации. Прежде чем начать, если вы уже подключены к серверам синхронизации Firefox, вы должны выйти из системы. В противном случае соединение с новым сервером может не работать.

Сначала откройте новую вкладку и введите следующий адрес:

about:config

В строке поиска введите identity.sync.tokenserver.uriи измените ее значение на URL вашего сервера с путем token/1.0/sync/1.5:

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


Leave a Comment

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

Изучение 26 методов анализа больших данных: часть 1

6 невероятных фактов о Nintendo Switch

6 невероятных фактов о Nintendo Switch

Многие из вас знают Switch, который выйдет в марте 2017 года, и его новые функции. Для тех, кто не знает, мы подготовили список функций, которые делают «Switch» обязательным гаджетом.

Технические обещания, которые все еще не выполнены

Технические обещания, которые все еще не выполнены

Вы ждете, когда технологические гиганты выполнят свои обещания? проверить, что осталось недоставленным.

Функциональные возможности уровней эталонной архитектуры больших данных

Функциональные возможности уровней эталонной архитектуры больших данных

Прочтите блог, чтобы узнать о различных уровнях архитектуры больших данных и их функциях самым простым способом.

Как ИИ может вывести автоматизацию процессов на новый уровень?

Как ИИ может вывести автоматизацию процессов на новый уровень?

Прочтите это, чтобы узнать, как искусственный интеллект становится популярным среди небольших компаний и как он увеличивает вероятность их роста и дает преимущество перед конкурентами.

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA: как долго она может оставаться жизнеспособным методом различения между человеком и ИИ?

CAPTCHA стало довольно сложно решать пользователям за последние несколько лет. Сможет ли он оставаться эффективным в обнаружении спама и ботов в ближайшем будущем?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

Технологическая сингулярность: далекое будущее человеческой цивилизации?

По мере того, как наука развивается быстрыми темпами, принимая на себя большую часть наших усилий, также возрастает риск подвергнуться необъяснимой сингулярности. Прочтите, что может значить для нас необычность.

Телемедицина и удаленное здравоохранение: будущее уже здесь

Телемедицина и удаленное здравоохранение: будущее уже здесь

Что такое телемедицина, дистанционное здравоохранение и их влияние на будущее поколение? Это хорошее место или нет в ситуации пандемии? Прочтите блог, чтобы узнать мнение!

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Вы когда-нибудь задумывались, как хакеры зарабатывают деньги?

Возможно, вы слышали, что хакеры зарабатывают много денег, но задумывались ли вы когда-нибудь о том, как они зарабатывают такие деньги? Давайте обсудим.

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Обновление дополнения к macOS Catalina 10.15.4 вызывает больше проблем, чем решает

Недавно Apple выпустила macOS Catalina 10.15.4, дополнительное обновление для исправления проблем, но похоже, что это обновление вызывает больше проблем, приводящих к поломке компьютеров Mac. Прочтите эту статью, чтобы узнать больше