Configure o Firefox Sync Server no Debian 9 ou Ubuntu 16.04

Você está aqui:
Tempo estimado de leitura: 4 min

O Firefox Sync é um recurso de sincronização do navegador que permite compartilhar seus dados e preferências (como favoritos, histórico, senhas, guias abertas e complementos instalados) em todos os seus dispositivos. A Mozilla também oferece um aplicativo “servidor de sincronização” para uso com o Firefox Sync para usuários e empresas que preferem hospedar seus próprios dados de sincronização. Este artigo mostra como configurar o Mozilla Sync Server.

Pré-requisitos

  • Uma instância do servidor Site & Site Debian 8, Debian 9 ou Ubuntu 16.04 recém-implementada.
  • Um usuário sudo .

Instale os pacotes necessários

Atualize o sistema:

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

Para construir e executar o Sync Server, você precisará instalar estes pacotes:

  • python-dev
  • git
  • build-essential (Compilador C ++, compilador GCC, make e outras ferramentas necessárias).
  • sqlite3(Se você quiser usar um banco de dados MySQL em vez de SQLite, você pode substituir o sqlite3pacote com mariadb-serverou mysql-server).
  • nginx(servidor web. Cabe a você escolher de qual servidor web você quer usar apache2ou nginx).

Instale os pacotes:

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

Construindo o servidor

Vamos clonar o repositório Git do servidor de sincronização, digitando o seguinte comando e, em seguida, digite a pasta:

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

Execute o comando build que baixará as dependências e compilará o código.

make build

Configuração do servidor de sincronização

A configuração do servidor de sincronização é muito simples, existem apenas alguns parâmetros para alterar no arquivo de configuração ( ./syncserver.ini).

Abra o arquivo de configuração com seu editor de texto favorito (por exemplo 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

O endereço do seu servidor deve ser especificado através do parâmetro public_url:

public_url = http://fsync.example.com

Nota : o valor padrão de public_url“http: // localhost: 5000 /” funcionará para fins de teste em sua máquina local.

Na sqluriopção, descomentaremos e colocaremos a localização ou URIisso permitirá que o servidor conecte o banco de dados e armazene as informações:

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

Se você quiser usar outro tipo de DB:

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

Para o secretparâmetro ” “, teremos que gerar uma chave secreta para os tokens de autenticação:

head -c 20 /dev/urandom | sha1sum

Descomente a linha do parâmetro secreto e copie / cole a string retornada no parâmetro secreto:

secret = db8a203aed5fe3e4594d4b75990acb76242efd35

Nota : Se você não colocar nada neste parâmetro, o servidor irá gerar um, mas será diferente cada vez que o servidor for reiniciado.

Para o allow\_new\_usersparâmetro ” “, remova o comentário e configure-o truepara permitir que a nossa conta se conecte ao nosso servidor pela primeira vez:

allow_new_users = true

Nós modificaremos o audiencesparâmetro ” ” e colocaremos a mesma coisa que o public_uriparâmetro ” ” sem esquecer de descomentar a linha:

audiences = http://fsync.example.com

Por fim, basta adicionar a seguinte linha ao final do seu arquivo:

forwarded_allow_ips = *

Esta linha ajudará você a evitar mensagens de erro e problemas de autorização.

Iniciando o Sync Server

Para iniciar o servidor de sincronização, você pode iniciar o seguinte comando:

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

… ou este aqui:

make serve &

A primeira opção permite escolher o local do arquivo de configuração; e também para colocar o argumento --threads 4, que permite atribuir mais poder ao servidor de sincronização.

Para iniciar o servidor toda vez que sua instância for inicializada, você pode adicionar a seguinte linha ao seu crontab, digitando o crontab -ecomando:

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

Configuração do servidor web

Você pode usar diferentes servidores da Web compatíveis com o WSGIprotocolo. Por exemplo:

  • Nginx com o uWSGI.
  • Apache combinado com mod_wsgi.

Nginx

Para o Nginx, você tem que usar o proxy embutido do Nginx como mostrado abaixo:

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

É possível que os usuários do Nginx usem apenas o soquete WSGI.

Instalar uWSGIvia Pip:

pip install uwsgi

Instale uWSGIvia download de um tarball de origem:

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

Nota : Após a construção, você terá um uwsgibinário no diretório atual.

Uma vez instalado, inicie-o com as seguintes opções:

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

Em seguida, use a seguinte configuração do Nginx:

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

Apache

Instalar mod_wsgi:

apt-get install libapache2-mod-wsgi

Em seguida, use o seguinte 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>

Configurar o cliente (Firefox)

Depois que o servidor tiver sido instalado e configurado, você deverá configurar o cliente Firefox da área de trabalho para conversar com o novo Sync Server. Antes de começar, se você já estiver conectado ao Firefox Sync Servers, será necessário efetuar logout. Caso contrário, a conexão com o novo servidor pode não funcionar.

Primeiro, abra uma nova aba e digite o seguinte endereço:

about:config

Na barra de pesquisa, insira identity.sync.tokenserver.urie altere seu valor para o URL do seu servidor com um caminho de token/1.0/sync/1.5:

http://sync.example.com/token/1.0/sync/1.5
Esse artigo foi útil?
Não Gostei 0
Visualizações: 15

Ainda não Têm uma Conta?

Então Cadastre-se

Nome de Usuário*
E-mail*
Senha*
Confirmar Senha*

Já têm Uma Conta? Click Aqui.

Já tem uma Conta?

Ainda não tem Conta?