¿Qué tengo en mi Raspberry Pi?

Las principales utilidades que tengo desplegadas en mi Raspberry a través de Docker.

¿Qué tengo en mi Raspberry Pi?

Llevo más de tres años con mi Raspberry Pi, concretamente la cuarta iteración modelo B con 4 GB de memoria RAM. Durante este tiempo he tenido el comportamiento típico: empecé con ganas instalando de todo, la abandoné al ver que de todo lo que tenía pocas cosas eran útiles y acabé con un formateo e instalando cosas con más cabeza y orden.

En esa cabeza y orden, decidí que Raspbian, el sistema operativo basado en Debian y optimizado para las RPi, debía tocarse lo mínimo e imprescindible porque a la larga eso marca la diferencia entre tener un sistema operativo estable y de largo recorrido o estar más tiempo lidiando con problemas que disfrutando instalando y de lo que se instala.

Docker al rescate

La manera de tener Raspbian lo más limpio y ordenado posible es instalarlo todo en contenedores y aislarlos del host lo máximo posible. Así que aquí es donde viene la primera recomendación y más importante: Docker.

Alguno huye de Docker y es bastante respetable. Pero es un aliado tanto para los profanos en la materia como para los que podemos tener un poco más de nivel. Facilita mucho las cosas una vez se comprende lo que es.

¿Quieres tener un sistema lleno hasta arriba de software? ¿Qué ese software en una actualización pueda generarte problemas con otros? ¿Tirar un montón de comandos para echar a andar lo que quieres? ¿O mejor tener cada cosa compartimentalizada y sin interferencias? ¿Y que con tan solo un comando arranque un contenedor con todo funcionando en su interior?

Investiga y decide tu mismo. "Pero es que yo ya tengo cosas corriendo fuera de Docker y moverlo todo sería horrible". Es cierto, a mi me pasó, así que fuí poco a poco. Selecciona la aplicación más simple de ejecutar en un contenedor (importante, cosas simples, como te vayas a la aplicación más compleja, saldrás corriendo frustrado), instala Docker y ejecuta ese contenedor, verás que sencillo.

¿Qué tengo instalado?

Después de haber hecho mención a la piedra angular de mi setup, ahora sí, voy con lo que tengo ejecutándose en la Raspberry Pi a través de Docker.

  • FreshRSS: Si echas de menos Google Reader o Feedly nunca te ha llegado a gustar, como es mi caso, aquí tienes un agragador RSS que funciona perfectamente con la app Reeder. Un buen candidato a ser ese primer contenedor que decía más arriba.
  • Pi-hole: Si estás leyendo esto creo que poca presentación necesita este proyecto. Es la manera más efectiva de decir adios a la publicidad y seguimiento por internet.
  • Unbound: Un servidor DNS, se conecta a los servidores DNS root y es el que utiliza Pi-hole para resolver. Con esto se cierra todavía más el círculo de la privacidad y es más difícil hacer seguimiento de la navegación. Hice un repositorio en GitHub con la implementación que yo tengo.
  • Home Assistant: Es un sistema para conectar y gestionar todos tus aparatos domóticos. Lo utilizo como un bridge para poder tener en la app Casa de iOS los termostatos que no son compatibles con HomeKit. También tengo algún automatismo algo más complejo de lo que me permite hacer la app de Atajos.
  • Portainer: Una manera fácil y sencilla de administrar todo lo referente a Docker. Además, rellenando este formulario te dan gratuítamente un serial para la edición business que es válido para tres nodos, es decir, te sobran 2. Antes regalaban para 5 nodos, así que no tardaría mucho.
  • Glances: Sirve para conocer el estado de la Raspberry a través de una interfaz web. Te da información útil sobre CPU, RAM, red, temperaturas, procesos y alguna cosa más que le tengo configurado.
  • Watchtower: Cuando tienes varios contenedores ejecutándose puede ser un poco tedioso estar pendiente de las actualizaciones. Este software se encarga de automatizar la actualización y posterior despliegue de todos los contenedores.
  • Servidor OpenVPN: Lo empleo para conectarme a la red de casa desde fuera. Hay servicios que no tengo expuestos a internet y es una manera fácil y segura de utilizarlos. Utilizo este proyecto de Github pero el problema es que la imagen está desactualizada, así que mejor hacer un build de Docker.
  • Nginx-proxy y acme-companion: Cuando levanto algún servicio que tengo que tener expuesto a internet, estos por defecto no son https al no tener un certificado para poder hacer el SSL. Con este par de contenedores puedo crear de manera automática y transparente certificados en Let's Encrypt y colocar el contenedor detrás del proxy para que Nginx sirva el servicio con SSL.
  • Tor-simple: Es una opción muy sencilla de levantar un proxy SOCKS5 para conectarse a la red Tor y navegar por lo oscuro.