Настройте сервер синхронизации 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


Настройка NFS Share на Debian

Настройка NFS Share на Debian

NFS - это сетевая файловая система, которая позволяет компьютерам получать доступ к файлам через компьютерную сеть. Это руководство объясняет, как вы можете выставлять папки через NF

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

Как обновить CentOS 7, Ubuntu 16.04 и Debian 8

При настройке нового сервера Linux рекомендуется обновить ядро ​​системы и другие пакеты до последней стабильной версии. В этой статье

Использование MySQL Views в Debian 7

Использование MySQL Views в Debian 7

Введение В MySQL есть замечательная функция, известная как views. Представления хранятся запросы. Думайте о них как о псевдониме для длинного запроса. В этом руководстве

Настройка Chroot в Debian

Настройка Chroot в Debian

Эта статья научит вас, как настроить chroot-джейл в Debian. Я предполагаю, что вы используете Debian 7.x. Если вы используете Debian 6 или 8, это может сработать, но

Как установить PiVPN на Debian

Как установить PiVPN на Debian

Введение Простой способ настроить VPN-сервер в Debian - это PiVPN. PiVPN - это установщик и оболочка для OpenVPN. Это создает простые команды для вас т

Как собрать Brotli из исходного кода на Debian 9

Как собрать Brotli из исходного кода на Debian 9

Используете другую систему? Brotli - это новый метод сжатия с лучшей степенью сжатия, чем в Gzip. Его исходный код публично размещен на Github. Thi

Как установить Apache Cassandra 3.11.x на Debian 9

Как установить Apache Cassandra 3.11.x на Debian 9

Используете другую систему? Apache Cassandra - бесплатная система управления базами данных NoSQL с открытым исходным кодом, разработанная для обеспечения масштабируемости, высокой

Установите Lynis на Debian 8

Установите Lynis на Debian 8

Введение Lynis - это бесплатный инструмент для аудита системы с открытым исходным кодом, который используется многими системными администраторами для проверки целостности и защиты своих систем. я

Как установить InvoicePlane в Debian 9

Как установить InvoicePlane в Debian 9

Используете другую систему? InvoicePlane - это бесплатное приложение для выставления счетов с открытым исходным кодом. Его исходный код можно найти в этом хранилище Github. Этот гид

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Как установить Backdrop CMS 1.8.0 на Debian 9 LAMP VPS

Использ��ете другую систему? Backdrop CMS 1.8.0 - это простая и гибкая, удобная для мобильных устройств, бесплатная система с открытым исходным кодом (CMS), которая позволяет нам

Установите Plesk на Debian 7 (Wheezy)

Установите Plesk на Debian 7 (Wheezy)

Используете другую систему? Plesk - это проприетарная панель управления веб-хостинга, которая позволяет пользователям управлять своими личными и / или клиентскими веб-сайтами, базами данных.

Как установить BookStack в Debian 9

Как установить BookStack в Debian 9

Используете другую систему? BookStack - это простая, удобная и простая в использовании платформа для организации и хранения информации. BookStack полностью бесплатен и открыт

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Как установить Pagekit 1.0 CMS на Debian 9 LAMP VPS

Используете другую систему? Pagekit 1.0 CMS - это красивая, модульная, расширяемая и легкая, бесплатная и с открытым исходным кодом система управления контентом (CMS) с

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Как установить Subrion 4.1 CMS на Debian 9 LAMP VPS

Используете другую систему? Subrion 4.1 CMS - это мощная и гибкая система управления контентом с открытым исходным кодом (CMS), которая обеспечивает интуитивно понятный и понятный контент.

Лучшие инструменты мониторинга для Ubuntu и CentOS

Лучшие инструменты мониторинга для Ubuntu и CentOS

Введение Системы Linux поставляются с инструментами мониторинга по умолчанию, такими как top, df и du, которые помогают отслеживать процессы и дисковое пространство. Хотя часто они

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Как установить CMS за октябрь 1.0 на Debian 9 LAMP VPS

Используете другую систему? Октябрь 1.0 CMS - это простая и надежная, бесплатная система управления контентом (CMS) с открытым исходным кодом, построенная на платформе Laravel.

Как установить X-Cart 5 на Debian 10

Как установить X-Cart 5 на Debian 10

Используете другую систему? X-Cart - чрезвычайно гибкая платформа электронной коммерции с открытым исходным кодом, обладающая множеством функций и интеграций. Исходный код X-Cart доступен

Отслеживайте состояние сервера Debian с помощью Munin

Отслеживайте состояние сервера Debian с помощью Munin

Munin - это инструмент для мониторинга процессов и ресурсов на вашем компьютере, который представляет информацию в виде графиков через веб-интерфейс. Используйте следующее

Как включить TLS 1.3 в Apache на Debian 10

Как включить TLS 1.3 в Apache на Debian 10

Используете другую систему? TLS 1.3 - это версия протокола безопасности транспортного уровня (TLS), который был опубликован в 2018 году в качестве предлагаемого стандарта в RFC 8446.

Изучение 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. Прочтите эту статью, чтобы узнать больше