Cómo instalar Tiny Tiny RSS en Linux Ubuntu

En Tutoriales y Guías por

La cantidad de páginas web aumenta día a día y cada vez son más las fuentes que debemos consultar para mantenernos actualizados. Para aligerar esta tarea de recibir las últimas noticias de forma ordenada nació el sistema RSS (Really Simple Syndication), con el que compartir información a través de las páginas web. Con esta necesidad en mente, hemos decidido escribir una guía de cómo instalar Tiny Tiny RSS en un servidor Linux Ubuntu 16.04.

Cómo instalar Tiny Tiny RSS en un servidor Linux Ubuntu

Para instalar Tiny Tiny RSS lo ideal es disponer de un servidor VPS o dedicado y aunque puede funcionar en alojamientos compartidos, no es lo ideal. Nosotros vamos a emplear un servidor VPS barato en el que ya tenemos una instalación básica de un entorno LAMP (Linux + Apache + MySQL + PHP) listo para usar. Damos por hecho que el lector tiene acceso a la shell del sistema a través de SSH o de otro modo.

¿Qué es Tiny Tiny RSS y para qué sirve?

Tiny Tiny RSS es un script programado en PHP que funciona como un lector de RSS al que podemos añadir todas nuestras fuentes de información. Es un script de código abierto y gratuito que está disponible en GitLab. Además, también nos permite crear nuestro propio feed RSS con toda la información que decidamos publicar en él.

El verdadero potencial de Tiny Tiny RSS está en su API, que nos permite acceder desde un cliente externo, ya sea un plugin para un navegador, una aplicación Android, etc. De esta forma mantenemos nuestras fuentes de información centralizadas en un único servidor.

Otra de sus características es el soporte para plugins y temas, lo que le añade grandes posibilidades de personalización.

Cómo instalar Tiny Tiny RSS en un servidor Linux Ubuntu.

Empezamos por la configuración previa del servidor, ya que este script tiene una serie de requisitos que debemos cumplir. Nosotros vamos a usar Apache como servidor HTTP en un sistema operativo Ubuntu 16.04 y damos por hecho que existe una instalación funcional de MySQL o MariaDB.

Configuración previa del servidor.

En primer lugar necesitaremos una versión de PHP 5.4 o superior, nuestras pruebas las hemos realizado con PHP 7. Nuestra instalación de PHP necesita disponer de los siguientes módulos instalados:

  • JSON (extensión instalada y habilitada por defecto en PHP).
  • XML.
  • mbstring.
  • fileinfo (extensión instalada y habilitada por defecto en PHP).
  • cURL (no es obligatoria su instalación pero si muy recomendable, mejor instalarlo).
  • GD.
  • intl (extensión PHP necesaria para el soporte de internacionalización).

Llegados a este punto, para instalar las extensiones PHP necesarias en Ubuntu usaríamos el siguiente comando:
sudo apt install php-xml php-mbstring php-curl php-gd php-intl

Reiniciamos apache con el comando sudo systemctl restart apache2 o service apache2 restart.

Para descomprimir el paquete del script vamos a necesitar unzip instalado y para instalarlo ejecutamos el comando:
sudo apt install unzip

Tenemos nuestro servidor Apache con los módulos instalados y ya podemos proceder a instalar el script Tiny Tiny RSS (TTRSS).

Instalación del script Tiny Tiny RSS (TTRSS).

Para descargar el script de Tiny Tiny RSS podemos emplear git, pero para no instalar más programas adicionales en el servidor, vamos a descargar la última versión disponible con el comando:
sudo wget https://tt-rss.org/gitlab/fox/tt-rss/repository/archive.zip

Descomprimimos el archivo descargado:
sudo unzip archive.zip

Damos por hecho que /var/www/html es una carpeta pública accesible desde el navegador, así que movemos ahí la carpeta con los archivos del script:
sudo mv tt-rss.git /var/www/html/tt-rss

Ya podemos acceder al instalador de Tiny Tiny RSS desde el navegador:
http://vozidea.com/tt-rss/install/

Este instalador nos solicita usuario, contraseña y base de datos, que tras introducirlos podremos comprobar su correcto funcionamiento con el botón «Test Configuration». Si estamos usando una base de datos vacía, nos solicitará inicializar la base de datos. Además debemos seleccionar el tipo de base de datos, que en nuestro caso es MySQL.

En nuestro caso hemos introducido los datos de nuestro servidor y queda como en la siguiente imagen:

Instalador Tiny Tiny RSS

El instalador también trata de generar el archivo de configuración config.php y lo escribe automáticamente si tiene permisos de escritura. De no tener dichos permisos, nos da el contenido del archivo config.php para que podamos crear el archivo manualmente con nano.

Tenemos que dar permisos de escritura a las siguientes carpetas con el comando chmod:
chmod -R 777 cache/images
chmod -R 777 cache/upload
chmod -R 777 cache/export
chmod -R 777 cache/js
chmod -R 777 feed-icons
chmod -R 777 lock

Después de crear este archivo, ya podemos acceder a Tiny Tiny RSS con el usuario admin y la contraseña password. Esta contraseña por defecto debemos cambiarla cuanto antes por seguridad.

Configurar la actualización automática de los feeds RSS.

Ya sólo nos queda un último paso, que es configurar la actualización automática de los feeds RSS. De esta forma cuando accedemos a Tiny Tiny RSS tendremos las publicaciones actualizadas y listas para leer.

Para configurar la actualización automática de los feeds RSS en Tiny Tiny RSS tenemos tres opciones:

  • Crear un servicio (opción recomendada en servidores VPS y dedicados. Se emplea el script update_daemon2.php).
  • Crear un cronjob (opción alternativa y disponible en servidores VPS y dedicados. Se emplea el script update.php).
  • Usar el método simple de actualización en segundo plano (usar esta opción sino podemos usar ninguna de las anteriores. No se emplea ningún script).

Los desarrolladores de Tiny Tiny RSS nos facilitan dos scripts en PHP para gestionar la tarea de actualización, update.php y update_daemon2.php. La única diferencia es que el segundo trabaja en modo multiprocesamiento, por lo que será el que empleamos para crear un servicio. También nos debe quedar claro que estos scripts php deben ser ejecutados desde la consola, ya que si los ejecutamos llamándolos desde el navegador no funcionarán correctamente.

Crear un servicio para actualizar los feeds.

Vamos a configurar el servicio bajo systemd ya que estamos empleando Ubuntu 16.04. Ejecutamos los siguientes comandos:
sudo touch /etc/systemd/system/ttrss.service
sudo chmod 664 /etc/systemd/system/ttrss.service
sudo nano /etc/systemd/system/ttrss.service

Pegamos como contenido del archivo:

[Unit]
Description=ttrss_backend
After=network.target mysql.service postgresql.service

[Service]
User=www-data
ExecStart=/var/www/html/tt-rss/update_daemon2.php

[Install]
WantedBy=multi-user.target

Debemos fijarnos que en nuestro caso la ruta del script es /var/www/html/tt-rss/update_daemon2.php, cada uno deberá adaptar la ruta a su situación.

Ya sólo nos queda cargar el script e iniciar el servicio:
sudo systemctl daemon-reload
sudo systemctl start ttrss.service

Crear un cronjob para actualizar los feeds.

En primer lugar editamos la lista tareas con el comando:
sudo crontab -e

Esto nos abrirá el editor por defecto y si no hay uno elegido, en mi caso elijo siempre nano. A continuación pego la línea:
*/30 * * * * /usr/bin/php /var/www/html/tt-rss/update.php --feeds --quiet

Este cronjob se ejecutará cada 30 minutos y actualizará automáticamente los feeds RSS de nuestras fuentes.

Vemos que usamos el binario CLI de PHP, que en nuestro caso está localizado en la ruta /usr/bin/php (podemos localizar esta ruta con el comando which php). También debemos fijarnos que en nuestro caso la ruta del script es /var/www/html/tt-rss/update.php, cada uno deberá adaptar la ruta a su situación.

Método simple de actualización en segundo plano (disponible en versiones 1.7.0 y superiores).

Este método actualizará las fuentes RSS cuando accedemos a Tiny Tiny RSS desde el navegador, por lo que no habrá ninguna actualización hasta que accedemos al programa.

Para activar esta opción debemos editar el archivo config.php y establecer la variable SIMPLE_UPDATE_MODE a true. Para esto ejecutamos el comando nano /var/www/html/tt-rss/config.php y editamos:

define('SIMPLE_UPDATE_MODE', true);
// Enables fallback update mode where tt-rss tries to update feeds in
// background while tt-rss is open in your browser.
// If you don't have a lot of feeds and don't want to or can't run
// background processes while not running tt-rss, this method is generally
// viable to keep your feeds up to date.
// Still, there are more robust (and recommended) updating methods
// available, you can read about them here: http://tt-rss.org/wiki/UpdatingFeeds

Hasta aquí esta guía de instalación y configuración de Tiny Tiny Rss, que ha resultado ser más extensa de lo esperado, pero en realidad es un proceso sencillo. A pesar de que he querido que esta guía fuese lo más detallada posible, si os surge alguna duda podéis usar los comentarios.