Este artículo explica paso a paso cómo alojar un sitio web personal en una Raspberry Pi, un ordenador de bajo coste del tamaño de una tarjeta de crédito. El autor tenía un dominio disponible y una Raspberry Pi sin usar, así que decidió aprovechar ambos para crear su propia web personal.
La razón principal para usar una Raspberry Pi en lugar de servicios tradicionales como Vercel o Netlify fue la necesidad de ejecutar código dinámico. Aunque el sitio es mayoritariamente estático, una biblioteca de internacionalización (i18n) no era compatible con plataformas serverless, lo que hacía necesario un servidor con Node.js persistente.
El proceso técnico involucra varios componentes: primero, se configura el router para redirigir el tráfico externo hacia la IP de la Raspberry Pi mediante port forwarding. Luego, Caddy actúa como servidor web inverso, recibiendo las peticiones y dirigiéndolas al puerto donde corre la aplicación (4321 para Astro, 5173 para SvelteKit). PM2 es la herramienta que mantiene la aplicación Node.js funcionando continuamente como un servicio del sistema.
Para automatizar despliegues, se emplea GitHub Actions: cada vez que se hace push al repositorio, un script SSH ejecuta un pull del código, reconstruye los sitios con los puertos asignados y reinicia PM2. Esto elimina la necesidad de acceso manual al servidor.
Este enfoque de autoalojamiento es ideal para desarrolladores que quieren aprender sobre infraestructura, reducir costos en proyectos personales o mantener control total sobre su hosting. Las limitaciones incluyen la velocidad de conexión doméstica, la dependencia de una IP dinámica (que puede cambiar) y la necesidad de mantener el servidor actualizado y seguro. Alternativas más simples existen para sitios puramente estáticos, pero este método ofrece flexibilidad incomparable para proyectos que requieren lógica del lado del servidor.
