Los servicios en la nube han revolucionado la forma en la que usamos Internet. Google Drive, Dropbox, Trello, Netflix… gracias a ellos podemos tener a mano herramientas muy útiles que nos permiten ser mucho más productivos, pasar el rato, y guardar nuestros datos de forma segura. El problema es que, con los años, hemos generado una gran dependencia de estos servicios, y sus creadores se aprovechan de ellos cobrando suscripciones cada vez más caras. Y, cansado de esto, al final dije «basta».
El mundo OpenSource es mucho más grande de lo que muchos imaginan. Y hoy en día existen proyectos que nos permiten sustituir prácticamente cualquier herramienta, o producto, diseñado como servicio para no tener que pagar su licencia, a cambio, eso sí, de tener que mantenerlo y configurarlo nosotros mismos. Imagina tener tu propia nube en casa, tu propio centro multimedia, una web auto-alojada, tus propios servicios (servidor de correo, suite ofimática, etc) y acceder a ello con una privacidad del 100%. Pues, en la práctica, es mucho más fácil de lo que imaginas.
Lo primero: el servidor
Un servidor para casa es mucho más barato, y limitado, que los típicos servidores de empresa. Nos vale prácticamente cualquier equipo con conexión de red, desde un Raspberry Pi hasta un ordenador viejo que tengamos en casa, un NAS doméstico o un mini-PC. Yo, personalmente, empecé con un servidor NAS de marca QNAP que, para un uso normal está más que suficiente, pero después busqué dar el salto a un mini-PC por una serie de ventajas. Entre otras, más potencia, mayor escalabilidad, y más control sobre el software.
Mi elección final fue el Geekom AS6 por su potencia, ya que cuenta con un procesador AMD Ryzen 9 6900HX, 32 GB de memoria RAM DDR5 y 1 TB de almacenamiento SSD NVMe. Pero no necesitas gastarte 600 o 700 euros como cuesta este equipo, sino que, para empezar, puedes optar por alternativas low-cost, como el Beelink U59 Pro (Intel N5105) o el TRIGKEY G4 (Intel N95). Ambos son perfectamente capaces de gestionar 5-7 contenedores Docker básicos como Nextcloud y Vaultwarden con un consumo inferior a 15W, siendo el TRIGKEY mi recomendación por su mejor relación rendimiento/precio en 2024.
Lo importante en un Mini PC que vas a usar como servidor casero no es solo la potencia, sino también los puertos USB que tengas disponibles. Con ellos te aseguras poder conectar todos los discos duros que quieras para poder disponer de la mayor cantidad de almacenamiento posible. En mi caso concreto, por ejemplo, tengo conectados 5 discos duros externos por USB. Y sí, estoy sin espacio y tengo que ampliar en breve.
Ubuntu, el jinete de la bestia
A diferencia de un NAS, que solo te permite usar el firmware del fabricante, un Mini PC, o un Raspberry Pi, te dan mucha más libertad. Por ello, una vez que tenemos elegido el Mini PC que mejor se adaptara a nuestro presupuesto, lo segundo será elegir el sistema operativo que vamos a usar. Hay varios sistemas operativos especialmente diseñados para funcionar como servidores caseros, como:
- Proxmox. Un sistema basado en Debian y centrado, sobre todo, en la virtualización. Cada servicio será una máquina virtual.
- TrueNAS. Un sistema operativo OpenSource que imita a los principales firmwares de servidores NAS para facilitar su configuración y administración.
- unRAID. Alternativa mucho más completa y optimizada para exprimir al máximo el servidor. Su principal hándicap es que es de pago.
Independientemente de estos sistemas administrados, yo opté por elegir Ubuntu Server. En concreto, 24.04, la última LTS. El motivo es simple: quería poder administrarlo y configurarlo todo desde cero, con una terminal. Y este sistema, además de estar optimizado, ser minimalista y ser uno de los más estables, es totalmente gratuito y sin limitaciones. Además, me aseguro 5 años de actualizaciones, o 10 al unirme al programa Ubuntu Pro.
Puesta en marcha
Llegados a este punto tenemos un Mini PC con Ubuntu Server. ¿Qué es lo siguiente? Instalar los servicios que queramos auto-alojar. Hay varias formas de hacerlo. Por ejemplo, podemos optar por instalar cada uno de los servicios de forma independiente directamente en el sistema operativo. No obstante, esta no es la mejor forma de hacerlo, ya que puede haber conflictos con programas (por ejemplo, con versiones de dependencias o bases de datos), y servicios que no estén pensados para funcionar de forma nativa.
La mejor forma de poner en marcha un servidor de estas características es usar Docker. Docker es una especie de virtualización basada en contenedores, donde cada servicio corre de forma independiente sobre un sistema minimalista (por ejemplo, un Alpine Linux) asegurando que nada de lo que ocurra dentro de este contenedor afecta al resto de contenedores ni al sistema. Docker viene instalado de serie en Ubuntu Server, por lo que no tenemos que instalar nada. Pero, en otros Linux, podemos instalarlo directamente desde sus repositorios oficiales con «apt install docker-ce».
Con Docker ya instalado, podemos empezar a instalar los contenedores que queramos. Pero, antes, os recomendamos instalar, como primer contenedor, Portainer. Este servicio nos va a permitir añadir, actualizar, eliminar y gestionar todos los demás contenedores que tengamos instalados en nuestro servidor desde su interfaz web. Mucho más cómodo que andar con comandos.
Podemos instalarlo con un simple comando:
docker run -d -p 9000:9000 -v /var/run/docker.sock:/var/run/docker.sock -v portainer_data:/data --name portainer --restart=always portainer/portainer-ce
Y, desde el navegador, podemos entrar en «https://[IP_DEL_SERVIDOR]:9000» para acceder a su interfaz web.
Con esto, ya tenemos nuestro servidor instalado y el controlador de contenedores, Portainer, en marcha. Ahora solo queda instalar los servicios que queramos poner en marcha. Te dejo algunas ideas:
- Nextcloud – Tu propia nube personal para archivos, calendarios y contactos.
- Vaultwarden – Gestor de contraseñas compatible con Bitwarden pero más ligero.
- Jellyfin – Centro multimedia para tus películas, series y música sin anuncios.
- Home Assistant – Automatización del hogar para controlar dispositivos inteligentes.
- Uptime Kuma – Monitor de servicios con alertas para mantener todo funcionando.
- WireGuard – VPN personal para acceso seguro desde cualquier lugar.
- Homer – Dashboard personalizable como página de inicio para todos tus servicios.
Tip extra: seguridad
Si vas a conectarte desde fuera a tu servidor, te recomendamos hacerlo siempre de forma segura. Y ocultar tu servidor de los ojos de los piratas informáticos. Esto, igualmente, podemos hacerlo de muchas formas. Yo siempre lo he hecho a través de Cloudflare. Pero, con los bloqueos de LaLiga, me quedaba sin acceso a mi servidor. Por ello decidí montar mi propia infraestrucutra, Own Trust, que viene a ofrecer las mismas protecciones que el CDN de Cloudflare, pero fuera de sus servidores, por lo que LaLiga no nos bloquea.
Una vez configurado todo esto, puedes empezar a presumir de tener una gran infraestructura. Y decir adiós a los abusos de las aplicaciones as-a-service.
