Cómo montar un servidor web doméstico en casa con Raspberry PI

Para empezar debes saber que hay muchas formas y variantes para montar un servidor web doméstico en tu propia casa u oficina. Además el trabajo que supone puede ser relativamente serio y requiere de ciertos conocimientos avanzados. El método que presento aquí es el resultado de investigar y aplicar las mejores opciones para mi caso concreto, que coincide con las necesidades que muchos particulares y negocios pueden tener, pero siempre hay variables que deben tenerse en cuenta y adaptar el trabajo según los requerimientos de cada caso. Por supuesto este método se puede mejorar y parte del trabajo es el mantenimiento y cuidados del servidor tras su puesta en funcionamiento. En este artículo te muestro de forma sencilla, cada parte a tener en cuenta, separándolas de forma lógica y cronológica. No esperes un manual complejo y detallado, aquí tienes nociones bien presentadas y comprensibles, una buena referencia para tener claras las partes más importantes y estar prevenido si te animas a hacerlo.

Introducción y expectativas

Antes de nada, aclaremos de forma muy básica cómo funcionan las páginas web, por si fuera necesario. Una página web es un conjunto de archivos que se alojan en un almacenamiento conectado a internet para que dichos archivos sean accesibles a distancia por otras personas, que mediante el navegador web de su ordenador o teléfono móvil podrán acceder a esos archivos que componen la página web. Un navegador web se encarga de recibir los archivos de la página e interpretarlos para mostrar la web en pantalla. El alojamiento donde se almacenan los archivos de la página web se llama servidor web y básicamente se compone un disco duro para guardar los archivos y otros componentes informáticos que se encargan de manejarlo mediante un sistema operativo.

Bien, la idea es tener un servidor web en casa o en tu oficina así que la base está clara, necesitas un dispositivo que pueda alojar y servir páginas webs de forma eficiente. Hay muchos dispositivos que capaces de hacer esto, de hecho puedes comprar un servidor web profesional ya preparado con el gasto que supone o convertir tu propio ordenador en un servidor web instalado algunos programas sencillo, pero tendrás que dejarlo conectado y encendido de forma permanente. Tu propio router puede funcionar como servidor web pero manipularlo para conseguirlo puede meterte en problemas con tu proveedor de internet y en el mejor de los casos, si lo consigues, el rendimiento será muy limitado y estarás forzando tu router con tareas que no debería hacer. También hay servidores NAS o web pequeños que puedes comprar y configurar, pero también estarás haciendo una inversión económica importante. La idea que te presento aquí requiere ciertos conocimientos pero sin duda es de las soluciones más económicas, limpias y controladas que te ahorrarán cientos de euros al años en proveedores de hosting y dominios, porque conseguirás alojamiento web y dominio gratis.

La solución más sencilla y económica para montar un servidor web en casa y publicar algunas páginas con buenos resultados es contar con un dispositivo dedicado como una Raspberry Pi, un pequeño y famoso ordenador que se vende como una placa informática sencilla, capaz de soportar todos los elementos necesarios para funcionar como un PC de escritorio básico, como un servidor web u otras muchas aplicaciones. Una Raspberry PI acepta diferentes sistemas operativos, generalmente basados en Linux. Existen muchas variantes y distribuciones de Linux diseñadas y preparadas para diferentes usos. Una Raspberry Pi con el sistema operativo adecuado es lo principal para comenzar a montar un servidor web, pero una vez conseguida esa parte debes preparar el sistema instalando pequeños programas y aplicaciones adicionales y necesarios para conseguir tu propio servidor web. En este artículo te hablo de todos los detalles de forma sencilla pero es importante tener en cuenta que para conseguirlo es necesario tener ciertos conocimientos avanzados sobre Linux y servidores web, o bueno, tener cerca a alguien con esos conocimientos. Incluso con todo resuelto piensa que hablamos de un servidor web sencillo, que podrá hacer grandes cosas si lo preparas bien, pero no es un servidor web de altas prestaciones, así que seamos realistas. Si quieres montar tu propio servidor web para publicar 100 tiendas online que generen tráfico alto cada día, olvídate. Pero lo que si puedes hacer es tener varias páginas web publicadas en internet con resultados profesionales para promocionar tu empresa, negocio, productos o servicios, para tus blogs personales, galerías de imágenes o vídeos privadas. Teniendo en cuenta la gran variedad de cosas que puede ofrecer una página web, podrás hacerte una idea clara de todo lo que puedes conseguir, sin gastar más dinero, cuando montas tu propio servidor web en casa.

Ventajas de tener tu propio servidor web Raspberry Pi en casa

La principal ventaja de tener tu propio servidor web doméstico es que cada año estás ahorrando cientos de euros. Sí, tal cual. Un proveedor de alojamiento web o hosting profesional incluyendo espacio de alojamiento y dominio para dirección de internet puede costarte de media al año unos 120 euros, y me quedo corto. En los últimos años además el precio por por estos servicios está subiendo de forma terrorífica, donde pequeños y medianos negocios están pagando entre 500 y 800 euros anuales por servicios inflados que además incluyen prestaciones que no necesitan o no pueden aprovechar. Ahora compara.

Una Raspberry Pi modelo 3B, como la que te está mostrando esta web, ahora mismo cuesta menos de 50 euros en Amazon, pago único (aquí tienes su enlace). Necesitarás una tarjeta de memoria SD que funcionará como el almacenamiento de la Raspberry, unos 12 euros o menos (Enlace a la tarjeta de memoria SD). Puedes sumarle el precio de una carcasa para protegerla, menos de 11 euros! (aquí tienes enlace a la carcasa). Sumamos? por unos 70 euros tienes tu servidor web. El resto de programas y aplicaciones para que funcione el servidor es gratis. Otra ventaja es el control total sobre tu servidor. Aunque los proveedores de alojamiento ofrecen soluciones bien configuradas vas a encontrar límites de almacenamiento que en ocasiones son un problema si quieres publicar archivos grandes en tus páginas web como vídeos o descargas. En otras ocasiones, muchas, los proveedores incluyen servicios adicionales que no necesitas pero debes pagarlos.

Muy importante: No estarás sacrificando el aspecto y características de tus páginas web, que se mostrarán perfectas y funcionarán sin problemas, tal y como pasaría en un servidor web profesional pagando a proveedores. Si tu servidor web Raspberry doméstico está bien montado y configurado, sus características principales serán PROFESIONALES Y las personas que visiten tus páginas web no notarán nada raro ni tendrán una mala experiencia.

Inconvenientes y riesgos de tener un servidor web doméstico

Por supuesto, no todo son ventajas pero lo riesgos o inconvenientes que puedes tener son siempre asumibles y controlables. El primer inconveniente u obstáculo puede ser la puesta en marcha del servidor, que no es necesariamente compleja si sigues unos pasos, pero se deben cuidar los detalles. El proceso de instalar el sistema operativo y añadirle complementos para que funcione como un servidor web es limpio y claro, pero debe hacerse con cuidado y dedicación. Más abajo te cuento detalles sobre esto.

Por otro lado debes tener en cuenta que un servidor web doméstico depende de la energía eléctrica y conexión a internet de tu casa. La energía que consume una Rasbperry Pi al mes ni la notarás en la factura y tu conexión a internet seguirá costando lo mismo, pero si hay un apagón o tu conexión a internet se cae, tu servidor web se apagará o dejará de estar conectado a internet. Ya que estos problemas no suelen darse a menudo tampoco deberían preocuparte, pero si tenerlos en cuenta.

Por último, un dispositivo conectado a internet, por desgracia, puede sufrir ataques informáticos, especialmente los servidores son objetivos que muchos sistemas de pirateo automático buscan para atacar. Esos ataques pueden comprometer la seguridad tanto de tu propio servidor web como de los visitantes que navegan por sus páginas web, pero tranquilo, también te cuento aquí como proteger tu servidor y tener la seguridad necesaria. Por ejemplo, ahora mismo, mientras lees esto, seguramente hay 3 ó 4 sistemas piratas intentando atacar este servidor web que t muestra esta web, pero todo sigue funcionando bien. Nada es infalible, pero verás que puedes proteger tu servidor y dejar de preocuparte.

Ahora veamos las nociones técnicas, intentaré mantener la sencillez y claridad ya que para darte una buena base no será necesario profundizar tanto.

Preparativos físicos y hardware

Lo primero es armar físicamente los componentes. Pongamos que ya tienes tu Raspberry Pi dentro de tu carcasa para protegerla y cuentas con la tarjeta SD. No insertes aun la tarjeta de memoria en la Raspberry, necesitarás prepararla por separado antes. Coge tu Raspberry y conéctala con un cable de red directamente al router de casa u oficina. Deja el enchufe de corriente desconectado, aun no tenemos la tarjeta SD preparada con sistema operativo que funcionará cuando la insertemos en la Raspberry. Aquí no hay más, simplemente un cable de red que se conecta al puerto de la Raspberry y por el otro extremo a uno de los puertos de red de tu router. Deja la Raspberry en un lugar despejado, ventilado y seguro.

Programas, aplicaciones y software para el servidor web

Mientras tu Raspberry espera apagada junto al router, debes descargar el sistema operativo que instalado en las Raspberry hará que todo funcione. Puedes descargarlo de forma gratuita, hay muchas variantes pero yo te recomiendo DietPi, que está super optimizado para hacer que tu Raspberry funcione ligera y rápida. Una vez descargado el sistema operativo debe copiarse a la tarjeta SD con un programa especial, como balenaEtcher, también gratis, para que el sistema operativo se pueda ejecutar en la Raspberry. Es facil y rápido. Cuando tienes el sistema operativo listo en la SD ya puedes insertar la tarjeta de memoria en la Raspberry y encenderla para que se conecte a tu red a través del router.

DietPi funciona con comandos sencillos escritos en pantalla, no tiene un entorno gráfico como Windows pero sí tiene pantallas de configuración con menús que puede manejar fácilmente para la configuración inicial. Siempre puedes instalar un entorno visual con ventanas parecido a Windows, pero no te lo recomiendo porque realmente no supone una gran ventaja y cuando el servidor web se quede funcionando no necesitarás manejarlo continuamente a través de una pantalla y además ese escritorio estará consumiendo recursos.

Para comenzar a trabajar con tu Raspberry necesitas conectar con ella. Lo harás desde cualquier ordenador conectado a la misma red del router, puede ser por wifi o por cable, usando una aplicación de «Terminal» que suelen venir instaladas en Windows y Mac, pero también la puedes descargar de forma gratuita. Al abrir la terminal solo ves una pantalla esperando comandos escritos, primero para conectar a la Raspberry y luego para trabajar con ella enviándole comandos.

Recuerda que en este artículo solo te muestro las nociones para que tengas un mapa de todo lo que debes hacer, pero los comandos de la terminal o la forma de instalación y configuración de programas y aplicaciones puedes encontrarlo facilmente en muchos sitios de internet o incluso pidiendo ayuda a la inteligencia artificial en chats gratuitos como ChatGPT, Gemini, Claude o Grok.

Los complementos de DietPi para el servidor web

DietPi es el sistema operativo base para que la Raspberry Pi funcione y puedas trabajar con ella, pero para convertirla en servidor web debes instalar algunos programas o paquetes adicionales que convertirán tu raspberry en un servidor web.

Nginx, el corazón del servidor web

Existen diferentes programas que convierten un sistema en un servidor web. Uno de los más conocidos es Apache, pero para sistemas con menos potencia o recursos destaca Ngix. Una vez instalado en Dietpi te permite alojar archivos web en una carpeta del sistema y estos quedarán accesible para navegadores web.

WordPress, el sistema de creación de páginas web

WordPress es alucinante. Se trata de un entorno de desarrollo de páginas web sencillo, muy potente y que puedes escalar tanto como necesites. Funciona a través del navegador web y desde su panel de control web te permite crear y gestionar todo tipo de páginas web de forma visual. Dentro de WordPress también puedes añadir complementos para aumentar o enriquecer el aspecto, funciones y rendimiento de tus páginas web. Una maravilla gratuita de gran valor.

PHP y MySQL (MariaDB)

Con Nginx ya tendrías un servidor web perfecto para publicar páginas web sencillas en formato HTML básico, pero no sería suficiente para trabajar con páginas web avanzadas como las que nacen de WordPress, que necesita un par de complementos como requisitos. PHP es un lenguaje de programación que funcionará como un motor complementario a Ngix para que WordPress funcione. Además WordPress trabaja con bases de datos así que será necesario instalar en DietPi un sistema de gestión de bases de datos. El más conocido es MySQL pero su variante MariaDB suele ser más apropiada en la actualidad. No te preocupes, una vez instalados y bien configurados, PHP y MariaDB funcionan solos y WordPress trabajará con ellos de forma automática.

El rendimiento del servidor web

Un servidor web funcionando en una Raspberry PI tiene su rendimiento y velocidad  de respuesta muy limitados, pero existen recursos para optimizar su carga de trabajo y velocidad. Para no liarnos mucho con esto y hacerlo sencillo, te diré que hay dos cosas que puedes hacer: 1.- Añadir un sistema de compresión de archivos web a tu servidor, que se instala directamente en DietPI (Linux) como Gzip. 2.- Optimizar WordPress con un sistema de caché y reducción de archivos, mediante un Plugin que puedes instalar desde el panel de administración de WordPress. Hay muchos Plugins buenos y gratuitos en WordPress para hacer esto, pero por sencillez y buenos resultados yo te recomiendo WP-Optimize. La combinación bien configurada de Gzip en el servidor y caché en WordPress harán que el rendimiento general de tu servidor web aumente de verdad y su velocidad de respuesta será mucho mayor. Eso sí, no olvides que el aspecto visual elegido para tus webs en WordPress debe ser cuidado también. Los Themes o temas de WordPress pueden dar un aspecto precioso a tus webs pero aumentar demasiado el tiempo de carga y reducir mucho el rendimiento. Te recomiendo el tema GeneratePress en su versión gratuita, que hará tus webs ligeras y rápidas. Por último, evita usar tipos de letra complejos, pesados o externos, como Google Fonts, mejor usa fuentes universales como Arial y si publicas imágenes en sus web, siempre usa formato JPG bien comprimido o el nuevo formato mejorado: WebP, que es fulminante para reducir el tamaño de las imágenes y darte incluso mejores resultados que el JPG.

Detalles más avanzados para mejorar el rendimiento

Existe una zona más delicada que deberías al menos tener en cuenta, no porque se totalmente obligatorio atenderla, pero si lo haces, todo funcionará mejor. Te dejo pinceladas para que decidas. En la configuración de DietPi deberías gestionar el almacenamiento para que una parte se use como Caché del sistema. Por defecto, Ngix debería funcionarte para un servicio web básico pero deberías retocar su configuración para refinar el bloque asociado al dominio de DuckDNS que vayas a usar. Limita además el uso de memoria y recursos de PHP y MaríaDB para mantener sus recursos acorde con el uso que demande tu servidor. Está claro que si buscar el mejor rendimiento y respuesta de tu servidor posiblemente lo notarás en una sobrecarga del sistema tenga demanda, pero si prefieres proteger tu servidor para mejorar sus estado y vida util podría resultar lento o perezoso para servir las páginas web. La clave, como imaginarás, es encontrar un equilibrio entre rendimiento, velocidad y congestión de tu servidor.

La configuración de tu red y router para que sacar tus páginas web a internet

Para que tu Raspberry esté conectada a internet ya la «enchufamos» con un cable a tu router y por tanto a la red local (La Raspberry debe estar configurada en DietPi con una IP estática). Así puedes conectar con ella a través de la terminal para trabajar y prepararla como servidor, descargar Nginx, php, etc. Pero tu router aun no sabe qué hacer cuando alguien desde el exterior quiera visitar las páginas web que estarán en tu Raspberry, así que debemos añadir una configuración a tu router para que envíe todas las peticiones web externas hacia la Raspberry (a su IP estática), que estará esperando esas peticiones para servir las páginas web y enviarlas como respuesta, de nuevo a través de tu router, hacía el navegador web de destino. Para hacerlo debemos ir a la configuración del router para «redirección de puertos».

En la comunicación por internet existen diferentes protocolos y cada uno suele usar un puerto diferente. En nuestro caso, para un servidor web, necesitamos «abrir» los puertos 80 y 443, así que en la configuración del router debemos añadir 2 reglas de redirección hacia la IP estática del router. Así, cuando tu router reciba una solicitud de visita web desde el exterior para los puertos 80 y 443 sabrá que debe enviar esas peticiones a la Raspberry. Debes tener en cuenta que en ocasiones el puerto 80 suele estar reservado en la configuración del router, en ese caso tu router o tu proveedor de internet debería darte los medios necesarios para liberar ese puerto y poder apuntarlo hacia la IP de tu Rasbperry.

La dirección web de tu servidor (dominio) y la seguridad SSL

Ya tenemos nuestra Raspberry funcionando con el sistema DietPi, Nginx y algunos complementos para que funcione como un servidor web, tu router también está configurado para derivar la peticiones web del exterior hasta la Raspberry. Pero la única dirección que lleva a tu Raspberry es la IP pública de su conexión a internet. Ahora debemos conseguir una dirección más amigable para la visitas, lo que conocernos por dominio.

En duckdns.org te ofrecen un dominio gratuito que puedes asociar con tu IP de internet como dirección de destino a tu Raspberry, del tipo tunombre.duckdns.org. La configuración de DietPi permite dejarlo todo listo en varios pasos.

Además, con un par de comandos en la terminal podrás solicitar de forma gratuita un certificado SSL en Let’s Encrypt y dejarlo asociado a tu dominio de Duckdns para que la navegación por las páginas web de tu servidor sea segura y proteja a los visitantes. Este tipo de certificados deben actualizarse cada cierto tiempo pero DietPi se encargará de forma automática si configuras el «Cron» de Linux con otro par de comandos, que es como un agente o secretario que trabaja en segundo plano para realizar tareas en tu servidor.

Seguridad y protección del servidor web

Para terminar no podemos olvidar proteger nuestro servidor contra ataques externos. Podrías pensar que ningún hacker se va a interesar por tu pequeño servidor doméstico pero eso sería un error. No se trata de hackers humanos, existen sistemas automáticos conectados a internet de forma permanente que buscan y atacan servidores sin importar sus tamaño o importancia. Yo esto ya lo sabía pero cuando lo he sufrido realmente ha sido con este servidor web en mi Raspberry. Una vez conectado a internet, tu servidor queda expuesto a este tipo de máquinas o bots atacantes, pero podemos montar una buena protección y mejorar la seguridad si hacemos algunas mejoras:

Cambia algunos puertos en servidor
Ya te hablé aquí arriba de los puertos 80 y 443, pero hay otros que tu servidor necesita para trabajar, como el puerto para conectar a tu servidor por terminal SSH, que posiblemente también querrás dejarlo accesible desde internet si quieres conectar con la terminal de tu servidor de forma remota cuando estás fuera de casa. La buena noticia es que los atacantes suelen buscar vulnerabilidades en puertos tradicionales, en puertos que se usan por defecto, pero si los cambias no tendrás que sacrificar sus funciones, simplemente estarás usando otros puertos para tus tareas de conexión a tu servidor (hay muchos disponibles para usar). Investiga bien los puertos abiertos en tu servidor y cambia aquellos que te puedas permitir.

IPtables y Fail2Ban, los guardias de seguridad de tu servidor.
Aunque cambies algunos puertos en tu servidor, los atacantes pueden buscar alternativas y localizar «puertas abiertas», así que es prácticamente obligatorio poner un vigilante permanente en tu servidor, sí, como el segurata de las discotecas. Para hacerlo bien, pero sencillo utiliza la combinación de IPTables y Fail2Ban. IPTables es un cortafuegos que solo dejará pasar el tráfico seguro y se encarga de dirigir las conexiones de entrada y salida. Fail2Ban es el ayudante de seguridad, que revisa todo lo que ocurre y cuando detecta intrusos o intentos de ataque, les cierra la puerta y los recuerda, para darles la patada cada vez que vuelvan.

Seguridad y protección en WordPress
Recuerda que dentro de tu servidor también hay otro sistema que puede recibir ataques, WordPress. Aunque WordPress ha mejorado mucho con los años en seguridad, es bueno tomar algunas precauciones básicas para evitar sustos. Igual que existen atacantes automáticos para servidores web, también lo hay para WordPress. Para empezar utiliza contraseñas complejas o robustas en tus cuentas de WordPress. Usa algún plugin de seguridad para cambiar las URLs por defecto más comprometidas (wp-admin, wp-login) y tener otro «vigilante» dentro de WordPress que funcione de forma similar a IPTables y Fail2Ban. Hay muchos plugins gratuitos que te darán solución sencilla, rápida y segura. Actualiza siempre WordPress, los complementos y temas visuales que tengas instalados. Por último, también existen plugins gratuitos para hacer copias de seguridad automáticas de WordPress, como upDraft. Jamás instales plugins o temas visuales de WordPress desde fuentes no garantizadas, WordPress tiene su propio ecosistema protegido para ofrecerte plugins revisados y seguros.

Conclusión

Estas serían las nociones que quiero dejarte para que tengas un buen mapa de todo lo que deberás atender si quieres tener tu propio servidor web en casa. Si no tienes ningún conocimiento con la materia este proyecto puede ser abrumador e incluso frustrante cuando empieces a pelear con algunos comandos de Linux en la terminal o quieras dejar bien configurado algunos detalles finos, pero creo que incluso si necesitas la ayuda de alguna IA o manuales para ayudarte, el resultado merece de verdad la pena y el valor de tener tu propio servidor web personal puede darte muchas satisfacciones. Aunque no es totalmente necesario, como último consejo te recomendaría instalar un gestor visual de servidor web como Webmin, que además de gratuito, te permitirá controlar muchos parámetros de tu servidor de forma sencilla y visual desde su interfaz web. Hay otros gestores visuales para servidor que son más ligeros y sencillos para un servidor así, pero en mi experiencia no reduce el rendimiento general y te ayudará a gestionar tus archivos del servidor como si fueran carpetas de Windows, te permitirá revisar el rendimiento de un vistazo, controlar todo lo que está instalado o gestionar la seguridad con IPtables y Fail2Ban de forma visual y facil.

Espero que este artículo te haya resultado interesante y sobre todo útil si vas a meterte en la tarea de montar tu servidor web. Un saludo!