Estaba escuchando un podcast y uno de los hosts comento que había usado una Raspberry Pi Zero 2 W para hostear un servidor de Trackmania para sus patreons, y que le podian dar bastante chicha para lo poco potente que es. y lo poco que pueden costar. Entonces recordé que yo tengo una raspberry pi Zero W(me costó 18€) que compre hace bastante para hacer un proyecto, que al final no hice porque no llegue a tiempo, y me surgio la pregunta de que porque estaba pagando un hosting y no utilizando hardware que ya tenía metido en una caja.

Así que con esta nueva inspiración y ganas de ahorrarme dinero le instale el último sistema compatible con el rpi imager.

Configuraciones del sistema

Lo primero que hice fue lo mismo que el post del podcast que me inspiro, habilitar el sudo para mi usuario:

sudo nano /etc/sudoers.d/010_pi-nopasswd

Dentro del fichero se cambia:

ALL=(ALL) NOPASSWD: ALL

Por:

ALL=(ALL) PASSWD: ALL

Seguidamente instalamos, iniciamos y habilitamos las actualizaciones automáticas, ya que, aunque lo pondré detrás de cloudflare(no me fio de mi seguridad) es mejor segurizar lo mejor que unos sepa y no fiarse al 100% de los demás:

sudo apt install unattended-upgrades -y; sudo systemctl start unattended-upgrades; sudo systemctl enable unattended-upgrades

Su post no entra más en profundidad, pero yo lo haré, la forma fácil de configurarlo es con un dpkg-reconfigure

sudo dpkg-reconfigure -plow unattended-upgrades

Una vez hecho esto vamos a /etc/apt/apt.conf.d/50unattended-upgrades y añadimos/modificamos la línea de Unattended-Upgrade::Automatic-Reboot para que quede como true de la siguiente forma:

Unattended-Upgrade::Automatic-Reboot "true";

Los dos siguientes pasos también son copiados,
Con el primero le hacemos un poco de overclock yendo al fichero /boot/firmware/config.txt i debajo de [ALL] añadimos la siguiente línea:

arm-freq=1100

Si miráis la primera web veréis mi configuración no es la misma, lo he hecho así porque he estado haciendo pruebas y es lo que mejor le sienta a mi rpi0w, con algunas de las opciones no quiso bootear correctamente. Después en /etc/dphys-swapfile le ponemos la swap que queráis/creáis que necesitáis modificando la línea CONF_SWAPSIZE= yo le he puesto 2 GB(el fichero de configuración está en MB),

CONF_SWAPSIZE=2000

Y le hacemos un reboot, si levanta significa que las dos configuraciones le han sentado bien, en caso de no levantar es posible que tengáis que hacerle una reinstalación.

Programas extras que voy a usar

Aquí ya es preferencia, pero estos son los paquetes que instalado y configurado:

  • zabbix: Para monitorización.
  • nmtui: Gestiona de la configuración de la red.
  • nginx: Servidor web.
  • firewalld: Para gestionar el firewall, aunque podéis usar ufw

Instalación cloudflared

Este punto lo hago como extra, ya que tuve algunos problemas con cloudflared debido a que la arquitectura de la rpi0w es ARMv6, que es bastante antigua, y al intentar instalar el paquete de cloudflared me decía que illegal Instruccion. Para solventar el problema nos tenemos que descargar el paquete arm más nuevo y ejecutar la siguiente línea en la terminal, que es un workaround que encontré en el siguiente issue de github.:

 dpkg --add-architecture arm

Ahora mismo yo lo tengo como paquete y no por repositorios, pero viendo las nuevas actualizaciones del issue(esto lo hice hace un par o tres de meses) veo que también se pueden usar los repositorios.

Backup

Al no ser una máquina virtual no puedo hacerle un backup entero y lo doy por hecho, así que para hacer un backup por si la micro SD se muere he usado la orden dd.
Para hacerlo es tan fácil como poner la micro SD con todo en vuestro PC habitual y ejecutar el siguiente comando:

sudo dd if=/dev/sdi of=~/Downloads/pimage.img bs=1M status=progress

Donde el if= es la micro SD y el of= es donde quieres guardar la imagen de rpi0w, también se podría hacer directamente en otra micro SD, pero he preferido tener la ISO directamente.
Pero puedo corroborar que podemos flashear otra micro SD con la imagen que generamos con el comando anterior y funciona perfectamente,

sudo dd if=~/Downloads/pimage.img of=/dev/sdi bs=1M status=progress

Como el primer dd el if= es la imagen(origen) y el of= es el destino.

”Conclusión”

Voy a hacer una mini conclusión no sobre este post en específico, sino sobre este tipo de post.
Solo espero que le guste a quien lo lea, ya que es muy diferente a lo que quería dedicar este blog, y lo he hecho muy esquemático añadiendo más información a las partes difíciles o que me han dado problemas y no tanto a las partes de copiar y pegar.

Seguramente el siguiente será igual, ya que decidí cambiar el servidor por uno más potente para poder hacer más cosas y me gustaría hacer un post explicación

Bibliografia