Un pequeño servidor personal con Nyttig

Te explico cómo sacar todo su potencial a tu vieja Raspberry Pi con Nyttig, un software escrito en PHP que tiene como intención convertir a nuestro pequeñín en un micro servidor, sin tener que utilizar cosas como Nextcloud, que sin duda son más pesadas.  Ya que Nyttig es mucho más ligero, consume pocos recursos, muestra de ello es que es capaz de funcionar sobre una Pi Zero.  Además es software libre, ya que utiliza una licencia GNU GPL 3

Logo de nyttig

Una estación de radio y otras cosas con Nyttig

Podemos utilizar Nytting como estación de radio, para tomar notas, ver las últimas novedades en nuestros feed RSS favoritos y compartir ficheros con terceros.

Según comenta su creador, Dmitri Popov, en la página del proyecto en Gitlab : “Buscando en cajas de hardware, me topé con una versión original de RaspberryPi Model B. Decidí usarla como una máquina de radio dedicada. Para lograrlo, improvisé una intefaz de usuario web sencilla basada en PHP. Entonces decidí agregar un editor simple para escribir notas. Una cosa llevó a la otra, y aquí estamos

Esta herramienta funciona con una serie de scripts escritos en PHP que buscan la simplicidad y hacernos la vida más fácil. Además, se pueden modificar y adaptar a nuestro gusto, con unos pocos conocimientos en PHP.

Entre sus principales características encontramos:

  • Radio (estaciones de radio en directo)
  • Agregador RSS
  • Editor (bloc de nota)
  • Subir y compartir ficheros
  • Escritorio web con información básica del sistema

Preparando nuestra Raspberry Pi

Nyttig no requiere instalación, puede ejecutarse en prácticamente cualquier máquina GNU/Linux, solo hemos de utilizar los scripts que se nos ofrecen, para así agilizar todo el proceso. Eso sí, si nos decidimos a utilizar una Raspberry Pi, debemos tener instalado un sistema operativo. Yo me he decantado por Raspberry Pi OS Lite.

La versión que voy a utilizar de hardware, es una vieja Raspberry Pi del año 2011, que tenía por casa sin usar.

Lo primero que he hecho es bajar la imagen desde la página oficial:

Seleccion la imagen del sistema operativo a descargar

Y he utilizado el software Etcher, para grabar la imagen en una tarjeta SD.

Grabar la imagen sobre una tarjeta SD

El proceso es bastante rápido, aunque dependrá de la capacidad de nuestro equipo.

Una vez hemos creado la imagen en el SD. Ya podemos insertarla en el dispositivo. Es importante que definamos una IP estática, para que siempre tenga la misma. Recuerda, antes de nada, que el usuario por defecto es «pi» y la contraseña es «raspberry». No hace falta que os diga que la contraseña se debe cambiar por otra, por motivos obvios de seguridad.

Para poner una IP estática, modificamos el fichero /etc/dhcpcd.conf, descomentando las siguientes líneas y adaptando la configuración a nuestras necesidades:

interface “red”
static ip_address=”ip estática”/24
static routers=”ip del router”
static domain_name_servers=”IP del servidor DNS”

Es importante, habilitar el servicio ssh y activarlo:

sudo systemctl enable ssh.service
sudo systemctl start ssh.service

Una vez hecho los cambios reiniciamos. A partir de aquí ya podemos acceder al dispositivo por ssh utilizando la IP estática.

Instalando Nyttig

Ahora viene la parte donde utilizamos el script de instalación que he mencionado antes. Para ello, una vez estamos en la consola de comandos, escribimos:

curl -sSL https://gitlab.com/dmpop/nyttig/-/raw/master/install-nyttig.sh | bash

Si lo deseamos, podemos hacer este mismo paso, pero de forma manual:

sudo apt update
sudo apt install git php-cli php-xml php-json jq mplayer sox
git clone https://gitlab.com/dmpop/nyttig.git
cd nyttig
nano config.php # Para cambiar la configuración por defecto.
sudo php -S 0.0.0.0:80

Si vuestra Raspberry Pi es antigua, como es mi caso, la instalación se puede demorar un rato.

Una vez finalizado, podemos añadir la siguiente línea en el crontab, para arrancar la aplicación al iniciarse el dispositivo:

#Editamos mediante crontab -e
@reboot cd /home/pi/nyttig && sudo php -S 0.0.0.0:80

Empezar a trabajar

Una vez ya tenemos todo instalado podemos acceder a nuestra navegador favorito y escribir la IP o nombre FQDN que le hayamos asignado al dispositivo. Veremos una página similar la siguiente:

Interfaz web de Nyttig

Una de las cosas que más me  ha llamado más la atención de este proyecto es poder escuchar mis emisoras favoritas de radio. Si marcamos sobre «Radio«, nos aparecerá un desplegable con unas cuentas emisoaras que ya están añadidas.

Menú con el desplegable de radios online

Desde el desplegable podemos seleccionar la radio que más nos guste, el volumen, además de poder añadir nuevas emisoras. Podemos consultar la web Radio-Broswer, donde podemos encontrar miles de ellas. Además, si tenemos la URL de una emisora, la podemos indicar justo al final, en la sección «Play in browser«

En la sección «RSS«, podemos indicar nuestros feeds favoritos, aunque ya nos vienen algunos añadidos por el creador del proyecto. Aunque en este aspecto yo consulto las noticias en mi RSS particular rss.bitsandlinux.com, que ya os expliqué como montar en esta entrada. También mencionar la sección «Editor» que no es nada pretenciosa, que nos dejará guardar nuestros apuntes.

Aspecto del Dashboard

La sección «Files» es otra de las partes interesantes de este proyecto, ya que nos permite subir ficheros al servidor para más tarde poder compartirlos de forma fácil con terceros. Y por último un sencillo «Dashboard» a modo de control de mandos de nuestro hardware. Con las opciones de apagado y reinicio incluidas.

Si dominas un poco PHP puedes añadir nuevas funcionalidades, de hecho dentro de la carpeta del proyecto, hay una llamada DID, que está deshabilitada por defecto, que permite tener un editor compatible con Markdown. Solo hemos de añadir la información de esta en el fichero «index.php» para tenerla disponible.

Os invito a echar un vistazo a su página en Gitlab, donde además se nos indica cómo hacer funcionar la aplicación en un contenedor sobre Docker.

Fuentes consultadas

He conocido esta herramienta a raíz de consultar el número 242 de la fabulosa revista Linux Magazine, de la que soy subsciptor desde hace muchos años.