Ads 468x60px

Perfil

miércoles, 6 de febrero de 2013

Monta tu propio servidor con Firefox Sync



Firefox Sync apertura
Son muchos los servicios que permiten almacenar nuestros marcadores, historial y demás datos de navegación en la Nube, pero pocos son los que nos brindan un control total sobre ellos.

Nivel: Avanzado

Firefox Sync es un servicio de Mozilla que te permite sincronizar en distintos dispositivos tus marcadores, historial, contraseñas, complementos e incluso las pestañas que tengas abiertas. Para disfrutar de este servicio, existen dos opciones: por una parte, usar el servidor de Mozilla, que está en Estados Unidos, lo que implica que tus datos de navegación personales (cifrados) estarían bajo la jurisdicción estadounidense; y por otra, montar tu propio servidor para usarFirefox Sync. Facilitaros esta segunda posibilidad es el objetivo de este artículo, para lo que partiremos de un PC gobernado por una distribución de Linux.
Afortunadamente, es software libre, de modo que cualquiera que tenga un ordenador conectado a la Red y que cumpla con ciertos requisitos puede hacerlo. Los requisitos generales para instalarlo son los siguientes: un servidor web que admita el protocolo WSGI (Web Server Gateway Interface), el lenguaje de programación Python y el gestor de bases de datos SQLite (o MySQL).

1. Instala y compila

Lo primero es instalar las dependencias mercurial, make, python-virtualenv, apache2-mod_wsgi y sqlite. Por ejemplo, en openSUSE sería: zypper in mercurial make python-virtualenv apache2-mod_wsgi sqlite3. Como los nombres de los paquetes pueden variar de una distribución a otra, asegúrate de que instalas los correspondientes con tu distribución.
Seguidamente, debes elegir el directorio de instalación de Firefox Sync. Por ejemplo, /srv/. Como siempre, se cambia de directorio con cd /srv. Para descargarlo, usa la utilidad hg, ya que el código fuente está en un almacén que usa el sistema de gestión de código fuente Mercurial (hg clone https://hg.mozilla.org/services/server-full firefox-sync).
Firefox Sync
Una vez descargado y con las dependencias instaladas, ya podemos compilarlo (cd firefox-sync/ && make build). No debería tardar más de cinco minutos en compilar. Después, también podrásgenerar paquetes rpms para CentOS instalando las dependencias necesarias y ejecutandomake build_ldap && make build_rpms. Para más información, echa un vistazo al archivoCENTOS.txt (está en el directorio de instalación).

2. Configuración

Antes de nada, tendrás que configurar Apache. Para ello, crea el archivo de configuraciónfirefox-sync.conf en el directorio /etc/apache2/conf.d/, para que éste envíe las peticiones al proceso correspondiente.
WSGIDaemonProcess wwwrun user=wwwrun group=www processes=2 threads=25
WSGIScriptAlias /firefox-sync /srv/firefox-sync/sync.wsgi
<Location /firefox-sync>
Order deny,allow
Allow from all
WSGIProcessGroup wwwrun
WSGIPassAuthorization On
</Location>
Firefox Sync
Es importante poner el usuario y grupo que se van a emplear para lanzar el demonioWSGIDaemonProcess y también la ubicación de instalación que hayas elegido (Location), la cual ha de ser accesible al demonio mencionado.
A continuación, edita /srv/firefox-sync/etc/sync.conf. Este es el principal archivo deconfiguración de Firefox Sync. Cambia la ubicación y el nombre de la base de datos, tanto en storage como en auth (sqluri = sqlite:////srv/firefox-sync/sync.db). Sube (opcionalmente) la cuota a 25 Mbytes (quota_size = 25120) y pon la URL del servicio Firefox Sync (fallback_node = http://nuestrodominio.com/firefox-sync).
Después, habilita el módulo de Apache WSGI ejecutando a2enmod wsgi y reinicia Apache (service apache2 restart). Esta orden puede variar según la distribución). Por defecto, el registro estará en /tmp/sync-error.log. En caso de problemas, échale un vistazo.
Firefox Sync

3. Puesta en marcha

Ejecuta bin/paster serve development.ini desde el directorio donde hayas instalado Firefox Sync; por ejemplo, /srv/firefox-sync. Para poder usar el servicio de sincronización que acabas de poner en marcha, tienes que configurar Firefox desde Herramientas/Configurar Sync. Aparecerá la ventana de configuración y, como de lo que se trata es de crear una cuenta, pincha sobre el botón Crear una nueva cuenta.
En la siguiente pantalla, tienes que introducir tu dirección de correo electrónico, elegir contraseña y, para especificar el servidor, indica Usar un servidor personalizado y escribe la URL del tuyo (http://nuestrodominio.com:5000/).
Firefox Sync
Tras pinchar en Siguiente y cuando la cuenta se haya creado, Firefox lo indicará abriendo una nueva pestaña en la que pondrá Instalación completada. A partir de entonces ya podrás usar tu nuevo servicio de sincronización.

4. La sincronización

Para sincronizar los datos de Firefox (marcadores, historial, pestañas, etcétera) en otro ordenador, tendrás que abrir Firefox, ir a Editar/Preferencias/Sync y hacer clic en Emparejar un dispositivo.
Firefox Sync
El código que te pedirá lo obtendrás abriendo Firefox en el ordenador (o dispositivo móvil con Android) donde queremos sincronizarlo. Para llegar a esa pantalla, deberás seguir la misma ruta (Editar/Preferencias/Sync), optar por Configurar Firefox Sync y después pinchar en Tengo una cuenta.
Firefox Sync
Por defecto, la sincronización funciona en modo unión de datos, pero también se puede cambiar para que los reemplace. Este tipo de ajustes están en Preferencias/Sync/Administrar cuenta/Restablecer Sync.

5. Recomendaciones finales

Si quisieramos poner el servicio de sincronización en producción, sería recomendable usar SSL, deshabilitar la creación de usuarios (o habilitar captcha en su defecto). Todo esto se ajusta en/srv/firefox-sync/etc/sync.conf. Tampoco estaría de más actualizarlo cada cierto tiempo desde
cd /srv/firefox-sync/
hg pull
hg update
make build
Por regla general, es muy recomendable no ejecutar servicios como root, sino con otro usuario que sea el dueño del directorio y archivos correspondientes. En este caso, sería el directorio de instalación (/srv/firefox-sync), la base de datos sync.db y el registro de errores sync-error.log.

Más información

● IRC: irc.mozilla.org, canal #sync

0 comentarios: