Adios Google Reader, Hola Tiny Tiny RSS

Como todos sabréis a estas alturas, Google ha decidido dispararse en el pie otra vez. El próximo 1 de Julio cerrará el servicio Google Reader sin dar muchas mas explicaciones. No es este el sitio para entrar en las razones que pueda tener Google para cerrar este estupendo servicio. Las cosas que gratis vienen sin mas explicaciones se van, de manera que va siendo el momento de buscar una alternativa.

La solución mas directa sería volver al lector RSS de escritorio, y ahí Liferea es una opción mas que interesante. Si quieres seguir utilizando un lector en la nube y salvar así las restricciones de un proxy fascista, tienes estupendas alternativas como Feedly o TheOldReader, aunque ninguna, en mi opinión, consiguen devolver la experiencia de Google Reader, uno por exceso y el otro por defecto.

Tras mucho trasegar (mentira, que fui a tiro hecho mas o menos), he encontrado una opción de Lector RSS en la nube que además es autogestionado . Es decir, lo montas es un servidor web y lo administras a tu gusto. Se trata de Tiny Tiny RSS.

La ventaja de utilizar un lector RSS en la nube y autogestionado es que la probabilidad de que sea cortado por el proxy de tu trabajo es mucho mas baja, con lo que vas a poder procastinar mucho mas eficientemente.

En los siguientes pasos voy a intentar explicar como dejar ttRSS configurado con un comportamiento similar a Google Reader.

Instalación

La instalación no tiene demasiadas complicaciones, si estás acostumbrado a las típicas aplicaciones LAMP, claro está.

Esta aplicación requiere un servidor web para alojarse, PHP para ejecutarse y una base de datos MySQL o Postgres para almacenar la información. Por simplicidad voy a suponer que todo esto está en la misma máquina.

En una distribución Debian los requisitos se instalan de esta forma

# apt-get install mysql-server libapache2-mod-php php5-mysql php5-xmlrpc

Para RedHat, CentOS y similares con yum

# yum install mysql php-mysql php-mbstring php-xmlrpc httpd

En primer lugar descargamos la última versión disponible del programa. En el momento de escribir esta receta es la 1.7.4 (https://github.com/gothfox/Tiny-Tiny-RSS/archive/1.7.4.tar.gz)

Nos situamos en el directorio WWW-ROOT de nuestra máquina. En las Debian y derivados, /var/www/, en las RedHat y derivados /var/www/html, y descomprimimos el fichero.

# tar zxvf Tiny-Tiny-RSS-1.7.4.tar.gz

Se creará el directorio “Tiny-Tiny-RSS-1.7.4” que renombraremos a “tt-rss” por comodidad.

# mv Tiny-Tiny-RSS-1.7.4 tt-rss

Ahora debemos asignar al usuario que ejecuta el servidor web (
www-data, o apache) la posesión de los ficheros del programa.

chown -R www-data:www-data tt-rss

o si eres de RedHat

chown -R apache:apache tt-rss

Ahora procedemos a instalar la aplicación. Esta herramienta aun no tiene un asistente de instalación por lo que el proceso es manual. Dentro del directorio del programa “tt-rss” está la plantilla de configuración que debemos copiar en el fichero definitivo.

# cp config.php-dist config.php

Editamos el fichero con nuestro editor favorito y veremos al principio esto.

        define('DB_TYPE', "pgsql"); // or mysql
        define('DB_HOST', "localhost");
        define('DB_USER', "fox");
        define('DB_NAME', "fox");
        define('DB_PASS', "XXXXXX");

Establecemos los valores que creamos convenientes. Por ejemplo

        define('DB_TYPE', "mysql");
        define('DB_HOST', "localhost");
        define('DB_USER', "ttrss");
        define('DB_NAME', "ttrss_db");
        define('DB_PASS', "passwordquequieras");

Obviamente esta configuración hay que hacerla previamente en la base de datos antes de lanzar la aplicación.Una forma sencilla es usar phpmyadmin. Tenemos que crear un usuario y una base de datos. En este caso el usuario se llama "ttrss" y la base de datos "ttrss_db"

Con estos datos ya establecidos precargamos los datos inciales que se encuentran en el directorio “schema/ttrss_schema_mysql.sql”. Puedes hacerlo desde la linea de comandos o desde el propio phpmyadmin.

# mysql -u ttrss -p -D ttrss_db < ttrss_schema_mysql.sql

Siguiendo estos pasos ya deberíamos tener funcionando ttRSS en nuestro servidor. Para comprobarlo abrimos un navegador y nos dirigimos a la dirección http://servidor/tt-rss .Por defecto se accede con las credenciales “admin/password”. Te recomiendo que cambies la contraseña del administrador y que añadas un usuario para utilizar el programa.

Actualizar las Fuentes

Ahora tenemos que establecer el mecanismo de actualización de las fuentes RSS. Si no ejecutamos este paso, tendremos que tener la aplicación abierta en el navegador para que se lance la actualización periódica.

El procedimiento recomendado para actualizar las fuentes es utilizar el demonio update_daemon2.php. Este script tiene la pega de que no se “desengancha” del terminal una vez lo lanzas por lo que es un poco engorroso lanzarlo manualmente.

Si tu distribución utiliza el sistema Upstart hay un procedimiento bastante sencillo.

Crea el fichero /etc/init/ttrssdaemon.conf con el siguiente contenido.

description "TT-RSS Feed Daemon"
 
author "Sean Payne <@zero_divide_1 on Twitter>"
 
 
 
start on (local-filesystems and net-device-up IFACE!=lo)
 
stop on runlevel [!2345]
 
respawn
 
 
 
script
 
        cd /var/www/tt-rss
 
        exec su www-data -c "php ./update_daemon2.php"
 
end script

Después crea el enlace simbólico siguiente

# ln -s /lib/init/upstart-job /etc/init.d/ttrssdaemon

Por último inicia el demonio con el comando

# start ttrssdaemon

Puedes ver la salida de log del demonio en /var/log/upstart/ttrssdaemon.log

Si no tienes upstart, puedes crear un servicio sysvinit en /etc/init.d/ttrssdaemon. Las utilidades start-stop-daemon son tus amigas. Pero recuerda que el usuario que ejecute el script no debe ser root, sino el mismo que ejecuta el servidor web (www-data o apache).

El otro procedimiento es mediante cron. Funciona en todas las distribuciones y es muy sencillo. Nos vamos al directorio /etc/cron.d/ y creamos el fichero ttrssupdate con el siguiente contenido.

*/30 *   * * *    www-data   cd /var/www/tt-rss && /usr/bin/php /var/www/tt-rss/update.php -feeds >/dev/null 2>&1

En la versión 1.7.5 cambia ligeramente la sintaxis que pasa a utilizar el doble guión.

*/30 *   * * *    www-data   cd /var/www/tt-rss && /usr/bin/php /var/www/tt-rss/update.php —feeds >/dev/null 2>&1

Aquí le estamos diciendo a cron que cada 30 minutos el usuario www-data (cambialo por apache si estás ejecutando RedHat o CentOS) ejecute el script de actualización de fuentes.

Configurar ttRSS

La configuración por defecto de ttRSS no está mal, pero si vienes de Google Reader te parecerá un poco incómoda. Para conseguir que ttRSS tenga la apariencia de Google Reader hay que marcar las siguientes opciones.

Debes ir al menú Preferences que se encuentra arriba a la derecha, dentro del menú Acciones.

En ese menú hay que marcar las opciones.

"Marcar como leídos los artículos automáticamente"
"Despliegue combinado de la fuente"
"Habilitar categorías de fuentes"

Si miras mas abajo verás la barra de Plugins. Desde ahí puedes activar las características sociales de ttRSS como enviar a Google+ o Twitter

Si además queréis aproximaros aun mas a la estética de Google Reader, podéis copiar esta hoja de estilos en las preferencias. Debéis ir a “Personalizar hoja de estilos” y pulsar el botón “Customize”, eso os abrirá una caja de texto en la que debéis copiar este código. (fuente)

/*Arial 13px is familiar and pleasant since Google Reader days.<strong>/
body#ttrssMain, body#ttrssPrefs, body#ttrssLogin, body {
   font-family: arial, helvetica, sans-serif;
   font-size: 13px;
}
 
/*On wide screens, the content is far to wide which makes it unreadable. This gives line breaks for easier reading…</strong>/
div.cdmContentInner, div.cdmContentInner * {
   max-width: 650px;
}
 
/*…but I want images to only be restricted by the screen width so I unset the property for these.<strong>/
div.cdmContentInner img {
   max-width: none;
}
 
/*Bold text is disabled by default for some reason. This enables it.</strong>/
div.cdmContentInner b, div.cdmContentInner strong {
   font-weight: bold;
}
 
/*More visible title, Google Reader style.<strong>/
div.cdmHeader .title, div.cdmHeader span.hlFeed a {
   font-size: 18px;
   font-weight: bold;
}
 
/*Fittingly enlarged date notation.</strong>/
div.cdmHeader span.updated {
   font-size: 16px;
}
 
/*The Google Reader blue nuance — pleasant on the eyes.<strong>/
div.cdmHeader .title, div#headlines-toolbar span.r a {
   color: #15c;
}
 
div.cdmHeader .title .titleAuthor {
   color: silver;
}
 
/*Some item spacing; makes borders look better (also similar to Google Reader).</strong>/
.even, .odd {
   margin: 5px 0;
}
 
/*Remove background color on selected items — hinders readability in my view. Also put borders on active…*/
.even.Unread.Selected, .odd.Unread.Selected, .even.Selected, .odd.Selected {
   border: 2px solid #15c;
   background-color: inherit ! important;
}
 
/*…and inactive items.<strong>/
.even, .odd, .even.Unread, .odd.Unread {
   border: 2px dashed silver;
}
 
/*Reset default table styling from tt-rss changes of table elements in RSS feeds — vanilla looks weird, imho.</strong>/
/*Fixed in upstream @ https://github.com/gothfox/Tiny-Tiny-RSS/commit/b7ade39dd116e1634c49eb46711a1d6828140c5e , I believe.*/
.odd.Selected td, .even.Selected td, .odd td, .even td {
   border: 1px inset gray;
   background: inherit ! important;
}

Este es el aspecto que tendrá. Como veis bastante parecido a Google Reader.

Por cierto, si queréis utilizar alguna aplicación externa para conectaros a ttRSS, como por ejemplo alguna de las que existen para Android , deberéis marcar la opción

Habilitar API externa

Actualizar ttRSS

Una característica interesante de ttRSS es que se puede actualizar en línea. Para activar esta característica hay que editar el fichero config.php y en la sección PLUGINS añadir el plugin updater. La línea quedaría así.

define('PLUGINS', 'auth_remote, auth_internal, note, updater');

Una vez hecho, en la sección preferencias, bajo la barra de Plugins debería aparecer la barra “Actualizar Tiny Tiny RSS”.

Para que el procedimiento funcione correctamente, el directorio superior a tt-rss también debe pertenecer al usuario que ejecuta apache. Siguiendo el ejemplo de esta instalación…

En el caso de Debian y derivados.

# chown www-data:www-data /var/www

En el caso de RedHat y derivados

# chown apache:apache /var/www/html

En el caso de que la actualización desde el navegador no funcione, se puede lanzar el proceso desde la consola con la siguiente orden.

su www-data -c “/usr/bin/php /var/www/tt-rss/update.php -update_self”

Sustituye www-data por apache si estás en RedHat o derivados. Ah, y acordaos que a partir de la versión 1.7.5 los argumentos se pasan con doble guión.

AdjuntoTamaño
Selección_001.png287.84 KB

Comentarios

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de magmax

Muy chulo

La verdad es que tiene muy buena pinta.

Lo único que me echa para atrás es que en la propia documentación dice que puede dar problemas en un shared host, que es justamente lo que me interesaría a mí.

¿Lo has instalado en un shared host?

Gracias!

Miguel Ángel García
http://magmax.org

Imagen de magmax

Shared hosting

Ale, pues ya me respondo yo: en un shared hosting funciona a las mil maravillas.

Y debo decir que de "tiny" no tiene nada...

Miguel Ángel García
http://magmax.org

Imagen de magmax

Igual que lo instalé lo desinstalé...

Bueno... A pesar de que me gusta mucho, tengo que decir que tuve que desinstalarlo a los 2 días.

La razón: Un mail de los responsables del hosting diciendo que tengo un límite de CPU del 20% (continuado) y de que, en esos 2 días, había hecho más de un millón de solicitudes MySQL, así que me tenían que subir la tarifa del hosting si no paraba... y paré.

Lo tenía puesto para actualizarse cada 2 horas.

Miguel Ángel García
http://magmax.org