Servidor Firefox Sync propio con Debian/Ubuntu

Puedes configurar tu propio servidor Firefox Sync en pocos minutos. Al igual que Chrome, Firefox ofrece la posibilidad de sincronizar los marcadores, el historial, las contraseñas, etc. Sin embargo, a diferencia de Chrome, Firefox te permite instalar tu propio servidor de sincronización y así mantener el control sobre los datos mencionados.

Estas instrucciones funcionan tanto para la versión de escritorio de Firefox como para la versión de Android.

Importante: No configuramos nuestro propio Auth Server, sino que utilizamos el oficial de Firefox. También es importante que configures primero tu propio servidor de sincronización en Firefox y sólo entonces inicies sesión con tu cuenta de Firefox. Sólo si se mantiene este orden se utilizará su propio servidor de sincronización.

Requisitos

Nuestro servidor sólo necesita unas pocas dependencias. Primero los instalamos:

apt install python-dev git-core python-virtualenv g++

Instalación del servidor Firefox Sync

El servidor de sincronización se almacena en un repositorio Git. Para clonarlo, cambiamos al directorio /opt/:

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

Y construir todo el

hacer construir

Configuración básica

Ahora establecemos los ajustes más importantes. Para ello, editamos el archivo syncserver.ini. "public_url" es la URL bajo la cual el servidor de sincronización será accesible externamente:


 [syncserver]
 URL_pública = http://localhost:5000/
 

En la configuración por defecto, el servidor de sincronización mantiene todos los datos sólo en la memoria de trabajo. Tras un reinicio, estos datos desaparecerían. Para usar sqlite o MySQL aquí, puedo usar una de las siguientes líneas:

[syncserver]
sqluri = sqlite:////camino/a/base de datos/archivo.db
o 
sqluri = pymysql://nombredeusuario:contraseña@db.ejemplo.com/sync
Ahora tenemos que permitir que el servidor acepte nuevos usuarios:
 allow_new_users = true

Iniciar el servidor

Puede iniciar el servidor simplemente con el siguiente comando.

hacer servir

Sin embargo, el servidor sólo se ejecuta mientras la ventana del terminal esté abierta. Para mantener el servidor en funcionamiento utilizamos el programa "pantalla".

Pantalla de instalación de apt

E iniciar el servidor con

screen -dmS firefoxSyncServer make serve

Con "screen -r" ahora puedes conectarte a la terminal virtual y desconectarte con CTRL+D.

Optimizaciones

Aunque el servidor de sincronización ya funcionaría así, se recomienda ejecutarlo detrás de un servidor web Apache o nginx, ya que el servidor web integrado no es el mejor. Para realizar esto, decidí usar nginx y gunicorn.

Instalar nginx

apt install nginx

Instalar gunicornio

cd /opt/syncserver

local/bin/easy_install gunicorn

Configuración de nginx

server {
 listen 443 ssl;
 server_name sync.example.com;

ssl_certificate /path/to/your.crt;
 ssl_certificate_key /path/to/your.key;

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/;
 }
 }

 

Esto hace que el servidor Firefox Sync sea accesible.

Configurar Firefox

En Firefox, ahora tenemos que introducir "about:config" en la barra de direcciones y buscar el campo "identity.sync.tokenserver.uri". Cambiamos el valor a nuestro nuevo servidor:

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

Ahora Firefox utiliza nuestro propio servidor de sincronización. Sólo ahora se nos permite acceder al navegador con nuestra cuenta de Firefox. Si ya hemos iniciado la sesión, tenemos que cerrar la sesión y volver a iniciarla.

Ahora sería recomendable encriptar el servidor web nginx y por tanto la comunicación entre Firefox y el servidor de sincronización con un certificado SSL.

Puede encontrar más opciones de configuración y más información en la documentación pública.

6 comentarios

  1. He configurado el servidor como se describe en su descripción, excepto la parte de la optimización. El servidor funciona (¡funciona!), pero siempre llego a la página normal de inicio de sesión de Firefox.

    He introducido como url la IP de la Raspberry que va a servir de servidor de Firefox Sync. El servidor no debe ser accesible desde Internet, sino sólo desde casa.

  2. Ahora lo he descubierto yo mismo. Si el servidor Firefox está funcionando con todos los ajustes y los cambios se han realizado en el navegador Firefox, primero debe crear una cuenta con Mozilla en el navegador en Extras (Log in to Sync) y la sincronización se ejecuta entonces a través de su servidor. Esto se puede ver por el tamaño de la base de datos y la última vez que se utilizó el archivo.

    Para que el programa se ejecute en segundo plano, debe instalarse screen y, por ejemplo, ejecutar el programa en el instante (firefox) con ( screen -dmS firefox make serve ).
    Con screen -r se llama si sólo se está ejecutando este instante. Con CTRL-D puede salir de esto sin terminar el programa.

    • Hola León, muchas gracias por la información detallada. Tienes razón, todavía tienes que iniciar sesión en Firefox con una cuenta de Firefox. También podrías configurar tu propio servidor de autentificación, pero esto es todavía muy experimental, y no se almacenan datos del historial en el servidor de autentificación, por lo que sigue teniendo sentido tener tu propio servidor de sincronización.

      Tus añadidos a la "pantalla" también son muy útiles para algunos, gracias 🙂 .

  3. Hola Matthias,

    pero sigo teniendo un problema y es que no puedo hacer una sincronización con mi teléfono Android con Firefox 57. Me conecto con los mismos datos pero no funciona. Pero la dirección de mi servidor es la correcta.

    ¿Acaso lo ha resuelto?

  4. Aquí estoy de nuevo 🙂 .
    He encontrado mi error. Tuve que poner el valor allow_new_users y force_wsgi_environ a true en el archivo syncserver.ini y funcionó inmediatamente.

    Así que para todos los demás que se encuentren con el manual, la mayoría de las cosas deberían estar explicadas. Para mí es el mejor que he leído hasta el momento 🙂 .

    Gracias Matthias 🙂 .

  5. Hola Matthias.
    Página bien hecha incluyendo este tutorial (FFsync).
    Muchas gracias.
    vlt.still a remark:
    CTRL+D" no me ha funcionado, pero "Ctrl" seguido de "a" y luego "d" sí.
    Quizá otros también tengan el "problema" y les resulte más fácil así.
    VG

Deja un comentario

La dirección de correo electrónico no se publicará.


*