rssOtra de las cosas maravillosas que puedes hacer con un Raspberry Pi que te sobre es instalarte un lector de noticias centralizado y autónomo que puedas consultar desde cualquier ordenador de la red local o desde el exterior. Si quieres ver más cosa que puedes hacer fácilmente, visita la serie de entradas que empieza aquí. La razón de esta instalación es, como no podía ser de otra manera, la autonomía tecnológica en la medida de lo posible.

La cadena de hechos es más o menos como sigue: cuando nos acostumbramos a Google Reader, desapareció. Nos pasamos a Feedly, a NewsBlur… todas fantásticas opciones pero de estilo Freemium, es decir, es gratis hasta que necesitas alguna opción interesante. Entonces te ofrecen la posibilidad de pagar por ella. No digo nada, es perfectamente lícito, y además deseable (ya sabes, si el producto es gratis, entonces el producto eres tú), pero no siempre es posible pagar.

Siguiente opción: el trabajo en local con un lector de noticias RSS como Newsbeuter, Liferea, irssi, etc. Lo mejor: más rápido y más potente, puedes buscar en las noticias, guardarlas (o no), ver las fotos y el texto como en la web (o no), usar aplicaciones gráficas o en modo texto… tú eliges. Lo peor: si no actualizas el lector puede que te pierdas noticias de sitios que tienen mucho volumen de entradas, como Menéame, por ejemplo. Otro gran defecto de este sistema es que si, por lo que sea, no tienes en las manos tu ordenador habitual, sino el de tu primo, el netbook o una tablet, leer las publicaciones que estás siguiendo es poco menos que imposible.

Para solucionar estos desaguisados tenemos una gran baza en las capacidades de servidor de bajo consumo de Raspberry Pi. Montaremos una instalación de TinyTiny RSS, un servidor de noticias que se alimentará de la lista de sitios que ya estamos usando en el lector habitual y nos las servirá (valga la redundancia) vía web o vía sincronización con un cliente (otra vez Liferea, Newsbeuter…). De este modo, la recogida de noticias es cada 30 minutos (valor por defecto aunque modificable), se guarda en una base de datos local y se recupera cuando se desea a través de un navegador o una aplicación cliente. ¿Que estamos con gripe y no miramos las noticias en tres días? Ahí estarán para cuando baje la fiebre. ¿Que llevamos una semana en Tahití debajo de un cocotero y necesitamos saber lo que se cuece en los bajos fondos de internet? Pues mejor ir al psicólogo o pedir otra piña-colada.

Tras esta justificación (ya me dirás para qué), vamos al lío.

INGREDIENTES:

Raspberry Pi
Fuente de alimentación para Raspberry Pi (vale el cargador del móvil)
Tarjeta SD de 4GB o más (para que la base de datos no nos deje sin espacio rápidamente)
Conexión a internet cableada.
Es una larga serie de pasos, así que también hace falta un poco de paciencia.

Proceso de elaboración:

1- Descarga una imagen de instalación de Raspbian (versión de Debian para Raspberry Pi) aquí. En otras entradas he detallado ya cómo poner a funcionar una instalación desde cero. En este caso, la imagen no es la de la RasperryPi Foundation, sino la original sin modificar, Debian 100%. Escoge el sistema que más te guste. Si Raspi ya funciona y puedes conectarte vía SSH, salta al paso 12.

2- Introduce la tarjeta SD (o microSD, depende) en el lector de tarjetas y comprueba cómo es reconocido el dispositivo en el sistema escribiendo en una consola, como «root»:

fdisk -l

La tarjeta, que identificarás por el tamaño, aparecerá como /dev/sdb (o /dev/sdc, etc). Las particiones de la misma se numeran consecutivamente (/dev/sdb1, etc). Desmonta todas las particiones que se hayan montado automáticamente con:

umount /dev/sdb1

sustituyendo sdb y el número de la partición por los que correspondan.
Ahora transferiremos los archivos de la imagen descargada a la tarjeta:

xzcat /ruta.al.archivo/raspbian-ua-netinst-v1.0.8.1.img.xz > /dev/sdb

Espera a que termine y extrae la tarjeta.

3- Inserta la tarjeta SD en el puerto del Pi, conéctale el cable ethernet y, por último, la alimentación. Espera una media hora (en realidad menos con una conexión rápida, pero por si acaso). Si tienes monitor y teclado a mano y los enchufas, podrás ver las evoluciones de la instalación o configurar algún parámetro. Nosotros lo dejaremos en «modo desatendido».

4- El sistema ya está instalado y funcionando, y puedes conectarte a él a través de SSH. Así que en una consola:

ssh root@192.168.0.xx

donde «192.168.0.xx» es la dirección IP del RasperryPi (si no la sabes, puedes obtenerla del mismo router. Ahora aumentaremos un poco la seguridad del sistema.

5- Estamos trabajando como el usuario root, así que tenemos permisos para todo, ojito con lo que se hace. Lo primero es cambiar la contraseña:

passwd

y sigue las indicaciones.

6- Configurar las locales:

dpkg-reconfigure locales

Te saldrá una lista de la que debes escoger la que corresponda a tu zona e idioma preferido.

7- Ajustar la zona horaria:

dpkg-reconfigure tzdata

Lo mismo, selecciona y acepta.

8- Ajustar el nombre de máquina. [NOTA: en Raspbian no está instalado el editor nano, sino pico. Puedes instalar el primero o usar el segundo, que funciona exactamente igual] Si quieres que el ordenador tenga un nombre que te conviene más que el que trae por defecto, escoge uno. Es útil para no liarse a la hora de saber a qué ordenador estás conectado si tienes más de uno. Es el nombre que aparecerá en la línea de órdenes tras la @. Has de incluirlo en dos archivos: /etc/hostname (este es un archio vacío que solo contiene el nombre de la máquina. Edítalo, borra el que esté y escribe el que tú desees) y /etc/hosts. Este es el aspecto que debe tener las dos primeras líneas de /etc/hosts (el resto no son importantes de momento):

127.0.0.1       localhost
127.0.1.1       noticias

Yo he escogido el nombre noticias, pero puede ser otro.

9- Configurar una IP fija (importante):

pico /etc/network/interfaces

y haz, lo primerito, una copia de seguridad por si las moscas. Aprieta Ctrl+O y añade «.copia» al nombre del archivo. Acepta con Y y cierra el editor con Ctrl+X. Vuelve a abrir el archivo original de nuevo repitiendo la orden anterior. Desplázate hasta donde pone

iface eth0 inet dhcp

y cambia dhcp por static. Añade una línea y escribe:

address IP

netmask 255.255.255.0

gateway 192.168.0.1

donde IP es la dirección que más te convenga en tu red y gateway es la IP de tu router. Lo de netmask escríbelo así, tal cual. Reinicio de la conexión con el comando

/etc/init.d/networking restart

Ahora debería estar conectado de nuevo con la IP fija. Escribe ifconfig y comprueba que la IP es la correcta. Si se ha cortado la conexión ssh entre ambos ordenadores vuelve a establecerla, pero esta vez escribiedo la nueva IP.

10- Añade un usuario que no sea administrador. Escoge un nombre (por ejemplo yomismo) y créalo:

adduser yomismo

y sigue las instrucciones para completar los datos (puedes dejarlos en blanco).

11- Por último, pero no menos importante, cambia el puerto de escucha de ssh (por defecto, el 22). Edita el archivo /etc/ssh/sshd_conf y, en las primeras líneas, cambia Port 22 por Port 65222 (por ejemplo, lo único a tener en cuenta es que tiene que estar entre 49152 y 65535). Cuando vuelvas a conectarte tendrás que indicar el nuevo puerto en el comando:

ssh -p65222 root@192.168.0.xx

Hasta aquí la configuración básica desde cero. Ahora empieza la instalación.

12- Instalación del servidor web y la base de datos (siempre como usuario root):

apt-get install mysql-server mysql-client apache2 libapache2-mod-php5 phpmyadmin

Ahora el sistema descargará los programas y los instalará. Durante la fase de configuración pedirá una serie de datos.

13- Introducir una clave para el administrador (usuario root) de la base de datos MySQL. Otra clave para el usuario administrador de PHPMyadmin.

14- Instalar el programa clave de todo esto:

apt-get install tt-rss

15- Selecciona Yes para realizar la configuración de la base de datos. Pedirá la contraseña de root de MySQL anterior.

16- Te pedirá otra contraseña para el usuario tt-rss en la base de datos. Es una contraseña diferente de la anterior.

17- Selecciona el servidor web Apache de la lista de los que proponga.

18- En la ruta que te aparecerá, sustituye el ejemplo example.org por la ruta real de la instalación de Tiny Tiny RSS, en este caso:

http://192.168.0.50/tt-rss/

Hago notar que la IP es la misma que hemos configurado antes como fija y la misma que aparece en el comando ssh necesario para conectarse a RaspberryPi y llevar todo esto a cabo.

19- Edita el archivo /etc/default/tt-rss con pico /etc/default/tt-rss y cambia la línea que pone

DISABLED=1

por

DISABLED=0

20- Por último, edita /etc/tt-rss/config.php y busca la línea que dice:

define(‘SELF_URL_PATH’, ‘http://yourserver/tt-rss/’);

y cámbiala por

define(‘SELF_URL_PATH’, ‘http://192.168.0.50/tt-rss/’);

donde la IP es la misma de la que hemos estado hablando.

21- Final. Reinicia los servicios con service apache2 restart y service tt-rss restart. Si no aparece ningún error, todo ha ido bien y has terminado… casi.

Solo queda conectarse al servidor de Tiny Tiny RSS que corre en la RaspberryPi a través de un navegador. En la barra de direcciones escribe http://192.168.0.50/tt-rss y estarás en la pantalla de inicio del servicio de noticias.

Pantalla de login

El usuario por defecto es el administrador, así que escribe admin y password como usuario y contraseña, respectivamente. En cuanto entres, arriba a la derecha tienes el acceso al panel de control (Acciones), necesario para cambiar, lo primero, la contraseña del administrador.

Cambiar contraseña y usuario

Después creas un usuario nuevo y sales. Vuelves a entrar con el usuario que acabas de crear y ya puedes añadir feeds o importar archivos opml o lo que quieras.

En los clientes como Liferea o Newsbeuter has de indicar la IP del servidor, el usuario que has creado y la contraseña que le has otorgado. Ya tienes un servidor de noticias dedicado para ti solito.

En Liferea, selecciona Suscripciones > Nueva fuente > Tiny Tiny RSS:

2016-01-28-162817_476x223_scrot

Si en el router redireccionas el puerto 80 a la IP del servidor, podrás acceder desde fuera de la red local escribiendo tu IP privada en la barra del navegador en lugar de la IP del servidor.

Un comentario en “Convierte tu RaspberryPi en un servidor de noticias

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s