BookinglyTech News
Infraestructura

Cómo convertir un smartphone Android en un servidor personal con Termux y proot-distro

Un ingeniero junior reutiliza un Moto G62 5G como nodo para Jellyfin, Node y Python, usando Tailscale, nginx y ngrok.

2 min de lecturar/selfhosted0 vistas

Un usuario de Reddit sustituyó su antiguo Moto G62 5G, que había quedado inservible por la pantalla, por un nuevo teléfono y lo convirtió en un servidor de archivos y medios. La idea era disponer de espacio adicional accesible desde cualquier lugar sin invertir en hardware dedicado.

El proceso empezó con Tailscale, que crea una red privada virtual y permite acceder al móvil desde el portátil mediante SSH, sin depender de la IP del Wi‑Fi. En el dispositivo Android instaló Termux, que brinda un entorno de línea de comandos, y dentro de él ejecutó proot‑distro para lanzar una instancia de Debian.

Dentro de Debian desplegó varios servicios:

  • Jellyfin para streaming de música y películas, accesible desde el portátil y otros dispositivos.
  • Servicios de prueba en Node.js, Python y un micro‑servicio Spring, con puertos personalizados.
  • PM2 como gestor de procesos, siguiendo la recomendación de Gemini, para mantener los servicios activos.
  • Grafana k6 para pruebas de carga, usado para validar el uso de múltiples núcleos de CPU.
  • nginx como proxy inverso, con reglas de enrutamiento basadas en la URI, permitiendo que cada servicio responda bajo su propio sub‑ruta.

Para exponer el conjunto al exterior, el autor optó por ngrok, que ofrece un dominio gratuito y tuneliza el tráfico sin necesidad de comprar un dominio propio. También consideró usar el dominio de prueba de Cloudflare, aunque el acceso se limitaría a unos 10‑15 usuarios.

El autor pide retroalimentación sobre la arquitectura y sugiere que podría reemplazar Jellyfin por una solución con función de subida de archivos, ya que el propio Jellyfin carece de esa característica.

Puntos críticos a revisar

  • Seguridad: exponer servicios mediante ngrok sin autenticación adicional puede abrir la puerta a accesos no autorizados. Es recomendable habilitar HTTPS y autenticación básica o JWT en nginx.
  • Persistencia: las instancias de proot‑distro pueden perder estado al reiniciar el teléfono. Configurar scripts de arranque en Termux (termux-wake-lock y termux-reload-settings) ayuda a mantener los contenedores activos.
  • Rendimiento: el Moto G62 tiene CPU de gama baja; ejecutar varios servicios simultáneos puede saturar el dispositivo. Limitar la concurrencia o usar contenedores ligeros (por ejemplo, docker dentro de proot) puede mejorar la gestión de recursos.
  • Dominio propio: aunque el proyecto sea experimental, adquirir un dominio barato y apuntarlo a ngrok o a Cloudflare Tunnel brinda mayor control y permite configurar registros DNS y certificados TLS personalizados.

En resumen, la configuración demuestra que un smartphone puede servir como nodo de pruebas para backend, pero la exposición a internet requiere endurecer la superficie de ataque y planificar la persistencia de los servicios.