- El self-hosting ha ganado popularidad recientemente como alternativa a los servicios centralizados enfocados en la recolección de datos
- Basado en la experiencia de haber probado distintas herramientas y apps, y de operarlas de forma estable durante más de un año, se presentan las herramientas que resultaron más útiles
- Recomendaciones de runtimes de contenedores, herramientas de administración web, proxy inverso y VPN, además de una recopilación de otras herramientas de self-hosting
- No es un texto para decidir cuál solución es mejor que otra, sino para enfatizar que distintos problemas tienen distintas soluciones
Runtime de contenedores
- Hoy en día los contenedores se han vuelto la base del hosting, y las formas tradicionales cada vez son menos comunes
- Esta es una tendencia muy positiva para los usuarios de servidores caseros (homelabbers), ya que los contenedores simplifican el despliegue de software y ofrecen un rendimiento más eficiente que las máquinas virtuales
- La mayoría usa Docker, pero aquí se presentan distintos runtimes alternativos que pueden usarse en casa
-
Docker
- El runtime de contenedores original y más utilizado
- Gracias a su amplia documentación y comunidad, incluso alguien no tan familiarizado con TI puede copiar un
docker-compose.yml desde GitHub y ponerlo a correr
- Aun así, conviene revisar por separado la configuración de seguridad
-
Podman
- Un runtime de contenedores de nueva generación que ha llamado la atención por su arquitectura rootless y compatibilidad con la CLI de Docker
- Como funciona sin daemon, es ideal para quienes priorizan la seguridad o quieren aprender tecnologías relacionadas
- Se pueden usar directamente la mayoría de los comandos de Docker, y la transición es sencilla gracias al alias compatible con el comando
docker
- Al principio tiene cierta curva de entrada, pero con la mejora de la documentación y la comunidad, cada vez es más accesible
- Además, con Podman Quadlets también es posible gestionar contenedores de forma declarativa basada en systemd en lugar de docker compose
-
Kubernetes
- Para los usuarios de servidores caseros curiosos y experimentales, es una herramienta avanzada que despierta el deseo de asumir un reto
- Como herramienta de orquestación capaz de administrar elegantemente muchísimas instancias, ofrece una experiencia de gestión de nivel empresarial
- Sin embargo, tiene tantas funciones y tanta complejidad que resulta excesivo para la mayoría de los usuarios
- En entornos caseros, el objetivo principal suele ser el aprendizaje mismo, más que el uso práctico
Herramientas web para administrar contenedores
- Algunas personas prefieren guardar y gestionar sus archivos compose en el disco local, pero eso implica la molestia de conectarse por SSH al servidor cada vez para revisar logs
- Como alternativa, usar herramientas web para administración de contenedores permite trabajar con mucha más comodidad
-
Portainer
- La herramienta de administración con interfaz web más estable, compatible con Docker, Kubernetes y Podman
- Se usa ampliamente desde homelabs hasta entornos empresariales, y también es muy útil para aprender con experiencia práctica
- Existe una versión open source comunitaria y una versión empresarial con funciones extra (se ofrecen gratis 3 licencias)
- Su interfaz intuitiva y variedad de funciones la vuelven muy conveniente para administrar contenedores
-
Dockge
- Una nueva herramienta web para administrar Docker Compose creada por el desarrollador de Uptime Kuma
- Todavía no está tan madura como Portainer, pero su punto fuerte es una UI muy simple e intuitiva
- El desarrollador responde rápidamente a los issues en GitHub, y hay actualizaciones regulares
- Ideal para quienes prefieren herramientas ligeras y minimalistas
Proxy inverso y VPN
- Para acceder desde fuera a aplicaciones autoalojadas, hay dos enfoques principales:
- Exponer el servicio directamente a Internet
- Acceder a la red interna mediante una VPN
- La VPN es más segura desde el punto de vista de seguridad, pero exponer servicios a Internet también puede ser bastante útil si se configura bien
-
Pangolin
- Una solución innovadora que combina VPN y proxy inverso en una sola herramienta
- Funciona como una especie de Cloudflare para self-hosting
- Basta con instalar un servidor de ingreso en un VPS o similar para conectarse fácilmente desde distintos entornos usando un cliente VPN
- Incluye integración con CrowdSec y funciones básicas de SSO
- Es una herramienta tan impresionante que fue el motivo por el que el autor terminó escribiendo este artículo, y con el tiempo podría convertirse en una alternativa estándar frente a las soluciones actuales
-
Nginx Proxy Manager (NPM)
- Un frontend de Nginx que permite configurar fácilmente proxies TCP/UDP/HTTP(S) desde una interfaz web
- Mucha gente lo usa, pero el autor considera que algunas funciones (por ejemplo, la protección con contraseña) son inestables
- No le dejó la mejor primera impresión al autor, aunque cuando funciona cumple bien su cometido
-
Caddy
- Con un archivo de configuración simple (Caddyfile), automatiza desde la configuración del proxy hasta la emisión de certificados HTTPS
- Como no tiene interfaz web, no se recomienda a principiantes, pero para quienes disfrutan la filosofía UNIX es una de las mejores opciones
- Soporta Let’s Encrypt por defecto, y su ventaja es que no requiere configuraciones complejas
-
NetBird
- Si ya conoces Tailscale, te adaptarás enseguida a esta solución VPN
- Configura automáticamente una red basada en WireGuard, reduciendo la necesidad de ajustes complicados
- Ofrece flexibilidad, ya que puede usarse tanto con el free tier en la nube como en self-hosting
Herramientas de monitoreo de estado y alertas
-
Uptime Kuma
- Permite monitorear fácilmente el estado de los servicios sin necesidad de stacks pesados como Zabbix o Grafana
- Con un solo despliegue se pueden configurar alertas a través de varios canales
- Es excelente para comprobar la disponibilidad de sistemas autoalojados
-
Gotify
- Un servidor de notificaciones que puede enviar alertas push con una simple solicitud HTTP
- Después de instalar la app móvil, se pueden recibir notificaciones, y también es posible la integración con Uptime Kuma y otras herramientas
- Es práctico porque puede usarse junto con distintas herramientas de self-hosting
Recursos adicionales para descubrir apps de self-hosting
- Una recopilación de recursos útiles para encontrar distintas aplicaciones de self-hosting
-
- Una enorme lista de software disponible en GitHub
- Está algo desordenada y también incluye algunos proyectos que ya no se desarrollan
-
- Es la fuente de recursos favorita del autor
- Ofrece un newsletter con recomendaciones de aplicaciones de nicho y un gran directorio de aplicaciones con funciones de ordenamiento
- Es un sitio muy útil
-
- Una colección de archivos Docker Compose listos para ejecutar
- Algunas aplicaciones pueden tener problemas de compatibilidad por actualizaciones, pero en general es una muy buena referencia
4 comentarios
Compré una N100 en la última oferta de Ali, le instalé promox y por ahora ya respaldé todos los datos del servidor ARM de Oracle que venía usando. Además, dejé instalados Xpenology y pfSense, y aunque todavía no lo estoy poniendo a trabajar en serio, pronto planeo moverlo para usarlo como principal.
A finales del año pasado contraté una suscripción a un servicio de VPN que estaba en oferta. Empecé a decidirme por hacer self-hosting poco a poco porque ya se ven señales de que se vienen varios cambios en los servicios grandes. Por ahora tendré que ir probando de a poco, migrando las contraseñas y los marcadores del navegador.
Docker + Portainer + Cloudflare + Uptime Kuma
Así lo estoy usando.
Comentarios de Hacker News
Me gusta la idea del self-hosting. Mantengo varios sitios web y proyectos pequeños, así que los recursos no son un gran problema
Estoy configurando un VPS nuevo
reboot = when-changedMe preocupa el aumento del self-hosting
Planeo seguir usando dokku para hospedar apps web
Administro Hashicorp Nomad, Consul y Traefik con OpenTofu
Probé Portainer, pero
docker composeme resultó más fácildocker compose pullautomático con crontabAl hacer self-hosting, recomiendo no usar contenedores y optar por un generador de sitios estáticos
Hago self-hosting con FreeBSD jails y scripts de shell
Este artículo me motivó a mejorar mi forma de hospedar