9 puntos por GN⁺ 2024-09-19 | 1 comentarios | Compartir por WhatsApp
  • En 2024, cuando la nube y los servicios por suscripción ya son la norma, vale la pena volver a intentar como hobby el self-hosting centrado en software, aprendiendo al configurar sistemas por cuenta propia
  • El self-hosting puede ser una forma de resistirse a los servicios privativos, pero como el costo en tiempo y energía mental es alto, la motivación más importante es la diversión y la exploración
  • Quienes empiezan no necesitan un servidor físico; pueden arrancar con hosting compartido como Uberspace, conectándose por SSH a un entorno con 10 GB de almacenamiento y 1.5 GB de RAM
  • En Uberspace no se puede usar Docker, pero con ayuda de Uberspace Labs y Awesome-Selfhosted es posible operar servicios como Actual Budget y Miniflux
  • Al conectar un dominio personal, se pueden configurar subdominios por servicio, direcciones de correo personalizadas y hosting público de archivos para mostrar y mantener más fácilmente lo que se haya montado con self-hosting

La sensación de la computación personal antes de la nube

  • En los años 2000, el software y los juegos se distribuían en DVD, y la computadora personal tenía con más fuerza el carácter de ser una máquina de cálculo controlada directamente por su usuario
  • En los años 2010, con la expansión de Chromebook y los servicios en la nube, mucho software pasó a ejecutarse en la computadora de otra persona
  • A medida que las suscripciones se volvieron, después de la publicidad, la principal forma de monetización en línea, creció también la tendencia de ceder control a cambio de comodidad
  • Como resultado, parte de la generación que aprende ciencias de la computación ha tenido menos oportunidades de empezar como entusiasta de las computadoras, y esa actitud hacker de los inicios también se ha ido debilitando

Acercarse al self-hosting como hobby

  • El self-hosting puede ser una forma de recuperar el control sobre la identidad digital en un entorno dominado por monopolios
  • Si se mira solo desde la practicidad, puede que sea mejor dejar el hosting en manos de otros
    • Se puede delegar al proveedor la gestión de estabilidad, concurrencia, redundancia y disponibilidad
    • En vez de ahorrar dinero, uno puede terminar pagando con más tiempo y carga mental
  • En lo intelectual, se parece más a un garaje digital en constante ajuste
    • Puede convertirse en un hobby de llegar al final del día y ponerse a trastear con un sistema que funciona como un juguete favorito
  • Más que discutir con rigidez qué cuenta como “self-hosting de verdad”, lo importante es empezar de una forma disfrutable, aunque sea solo en el nivel del software

Crear el primer entorno con hosting compartido

  • Para empezar con self-hosting, primero hace falta un lugar donde alojar lo que se quiera montar
  • Se recomienda Uberspace como opción de hosting
    • Es un tipo de hosting más cercano a “te damos las llaves, solo no incendies el edificio y diviértete”
    • Funciona con cobro al final del mes, así que el primer mes se puede usar en la práctica como una prueba gratuita
  • Al crear una cuenta, se obtiene acceso por SSH a una computadora conectada a internet
    • El entorno ofrecido incluye 10 GB de almacenamiento y 1.5 GB de RAM
    • Si ejecutas ls, verás un directorio de usuario nuevo y vacío

Cómo elegir el software que vas a instalar

  • Al buscar software para usar en Uberspace, hay dos recursos especialmente útiles
    • Uberspace Labs: una guía dedicada a cómo instalar distintos programas en Uberspace
    • Awesome-Selfhosted: una lista amplia de software que se puede autoalojar, ideal para encontrar proyectos con cierto nivel de comunidad
  • En Uberspace no se puede usar Docker
    • Por las limitaciones de memoria, es difícil ejecutar una suite completa de virtualización
    • Esto puede ser incómodo para software grande o instalaciones pensadas solo para Docker, pero hay formas de rodearlo, como instalar desde el código fuente o usar el runtime final del proceso de dockerización como si fuera una imagen de compilación

Ejemplo 1: administrar tus datos financieros con Actual Budget

  • Actual Budget es una app de finanzas rápida y centrada en la privacidad
  • Es adecuada para quienes quieren seguir sus gastos, patrimonio neto y patrones de consumo
  • Permite operar sin confiar información financiera sensible a otros servicios, manteniendo acceso desde cualquier lugar a través del navegador
  • En el centro de su enfoque presupuestario está la metodología de Envelope Budgeting
  • La guía de instalación para Uberspace puede verse en guide_actual
  • En la sección de reportes, se pueden recortar y analizar los datos financieros de distintas maneras
    • Incluso compras que parecían pequeñas pueden volverse significativas al sumarse durante un mes
    • Se pueden obtener insights como descubrir que el costo del traslado diario es mayor de lo esperado

Ejemplo 2: recuperar tus feeds con Miniflux y RSS

  • Miniflux es un lector de feeds minimalista y con una visión muy clara
  • Con RSS, se pueden revisar en un solo lugar las actualizaciones de medios, revistas y blogs favoritos
  • Incluso los canales a los que estás suscrito en YouTube pueden organizarse como una línea de tiempo de feeds dedicada y sin anuncios
    • YouTube ofrece feeds RSS
    • El reproductor de YouTube incrustado no tiene anuncios
  • Después de instalar Miniflux en Uberspace, puedes agregar los feeds de tus canales favoritos de YouTube
  • Si activas la Fever API en la configuración, los clientes RSS capaces de leer Fever API podrán acceder al agregador RSS en la nube
    • En el ecosistema de Apple, se recomienda Unread de Golden Hill Software
  • También se pueden separar categorías de feeds para noticias y webcómics

Crear un espacio para mostrarlo con un dominio personal

  • Parte de la diversión del self-hosting es poder mostrar lo que uno construye
  • Un dominio personal funciona como tu propio espacio en línea
  • Se recomienda Porkbun como servicio de registro de dominios
  • Si tienes un dominio como awesauce.com, puedes hacer varias configuraciones
    • Puedes conectar servicios alojados en Uberspace a subdominios como actual.awesauce.com y miniflux.awesauce.com
    • Si tu proveedor de correo admite dominios personalizados, puedes crear una dirección como contact@awesauce.com
      • Aunque cambies de proveedor de correo más adelante, la dirección se puede conservar
      • El correo con dominio personalizado puede ser de pago
    • También puedes vincular un subdominio o una ruta de URL a un repositorio de GitHub para publicar archivos como un currículum en awesauce.com/files/resume.pdf

Próximas exploraciones dejadas a propósito

  • El objetivo de este texto no es ofrecer un tutorial detallado paso a paso, sino despertar la curiosidad por experimentar directamente
  • Como tarea para que cada lector la explore por su cuenta, queda pendiente cómo enviar notificaciones al móvil cuando un producto específico vuelva a estar disponible o cuando cambie un sitio web
  • La conversación relacionada en Hacker News continúa en este hilo

1 comentarios

 
GN⁺ 2024-09-19
Opiniones en Hacker News
  • Desde una perspectiva antigua, sorprende que pagar por hosting compartido ahora se llame “self-hosting”. No quiero decir que eso sea malo en sí, pero hace 10 años creo que jamás lo habríamos llamado self-hosting.
    Es parecido a cómo cambió el significado de “cocinar desde cero”. Un libro de cocina del siglo XIX quizá habría puesto “1 cerdo” como ingrediente y te habría dicho que lo sacrificaras, pero hoy obviamente compras cortes de cerdo en una charola de unicel.

    • El término en sí también tiene problemas. La comunidad de self-hosting, centrada en /r/selfhosted, tiene un ambiente bastante técnico y se parece más a gente que disfruta trastear con computadoras. Algo así como quienes arman kits de autos.
      Pero también hay un gran mercado de personas que pueden obtener los beneficios del self-hosting sin necesidad de entender todos los detalles. Por ejemplo, usar servicios administrados con tu propio dominio te da bastantes ventajas como propiedad de los datos, software de código abierto y competencia entre proveedores. Por eso parece hacer falta un término más amplio, y últimamente se está usando la expresión hosting indie.
    • Si usas un proveedor de hosting, seguramente mucha gente dirá que no es self-hosting aunque despliegues el software tú mismo.
      La excepción generalmente aceptada es la protección de red. Si es posible, no quieres exponer la dirección IP de tu casa al exterior, así que mucha gente usa Tailscale, Cloudflare Tunnel o un VPS como proxy.
    • Parece que yo también me estoy volviendo de la vieja escuela. Tiendo a considerar verdadero self-hosting solo lo que corre en mi propio hardware.
      Y si eso no fuera suficiente, en el congelador también tengo carne de cerdo de un animal que crié y preparé yo mismo, y tocino curado en casa. La frase “un alma vieja viviendo en un mundo nuevo” me queda bastante bien.
    • Hospedar desde casa desde siempre podía entrar en conflicto con las restricciones de los términos de servicio de los proveedores de internet residenciales. Incluso cuando hacía self-hosting en los primeros tiempos, pagaba para montar mi sistema en el rack de otra persona y usar su red.
      Ya sea que hayas alquilado ese hardware, armado tu propio servidor o usado una máquina virtual proporcionada por el proveedor, la carga de mantenimiento es similar. Aun así, sigue siendo distinto de usar Wix/Squarespace, Geocities o plataformas de redes sociales.
    • El autor original también piensa más o menos lo mismo.
      “Así que aquí va una introducción suave al self-hosting que no es ‘self-hosting de verdad’, pero en fin, es sobre self-hosting. Demándenme si quieren.” Eso dijo :)
  • Me encanta el self-hosting y en los últimos meses me metí bastante a fondo. Ahora opero varios servicios para la empresa y un homelab, y despliego en Hetzner VPS con Ansible + archivos de Docker Compose o con https://github.com/coollabsio/coolify/
    El repositorio awesome-selfhosted también es bueno para encontrar proyectos para self-hosting, pero le faltan funciones de facilidad de uso, así que armé un directorio con algunas mejoras de experiencia de usuario en https://selfhostedworld.com. Tiene búsqueda, filtros por número de estrellas/popularidad/fecha y modo oscuro.

    • Como parece que sabes bastante del tema, quería preguntar: para alguien con cierto conocimiento técnico pero no muy familiarizado con redes, ¿qué tan peligroso es exponer a internet una computadora de su propia red?
      Me pregunto si con herramientas modernas y máquinas virtuales es relativamente seguro, o si hay que estar pendiente todo el tiempo, como revisar actualizaciones de software cada semana. Desde hace mucho quiero montar un servidor, y ahora que tengo una laptop de sobra estoy pensando en correr al menos un NAS.
    • ¿Podría incluir mi SaaS en la sección de “alternativas a Heroku”?
      https://ptah.sh
    • Está bastante bueno. Veo sish e inlets, y aquí hay una lista que reúne muchas más herramientas parecidas: https://github.com/anderspitman/awesome-tunneling
      Para autenticación también preparé una comparación de servidores OIDC: https://github.com/lastlogin-net/obligator#comparison-is-the...
    • ¿Hay algún nombre para el tipo de software que proporciona un plano de administración para otros servidores, como Coolify? Me refiero a la clase que contrasta con algo como Dokku, que se ejecuta directamente sobre ese servidor.
  • Hay quienes dicen que “lo que ahorras en dinero lo pierdes en tiempo y salud mental, así que en términos prácticos es una tontería”, y en las comunidades de self-hosting Kubernetes suele recibir muchas miradas de desaprobación. Pero el self-hosting en general ya tiene algo de eso, así que tampoco está mal ir hasta el final.
    Tengo NixOS en 3 Dell R720XD y los estoy corriendo como k3s multi-master. Para almacenamiento uso rook/ceph, con unos 12 discos duros de tamaños variados. Mi truco favorito para las reuniones es sacar cualquier disco duro del clúster mientras hago streaming de video, y no pasa nada. Lo vuelvo a insertar y todo regresa como si nada hubiera pasado; todavía me queda mucho espacio, así que sigo buscando cosas útiles para alojar

    • Hay mucha gente que usa k8s o k3s para self-hosting. Pero para la mayoría, lo que se obtiene no compensa la complejidad adicional. También hay que considerar que normalmente es un solo nodo, así que con Docker alcanza para hacer todo lo necesario.
      En lo personal, incluso con una configuración de 4 desktops pequeñas uso Docker Swarm. Con el hardware que tienes, diría que solo en electricidad fácilmente te puede salir unos 200 dólares al mes. Docker Swarm es viejo y no es popular, pero es apenas un poco más complejo que Docker puro y cubre todo lo necesario para despliegues multinodo y orquestación
    • Yo uso NixOS en una máquina virtual, y ejecuto los servicios directamente en contenedores. También hice una herramienta para correr proyectos de Docker Compose fácilmente en NixOS [1].
      Así obtienes las ventajas de la configuración de NixOS, pero puedes ejecutar aplicaciones arbitrarias que quizá no estén en nixpkgs. Para almacenamiento uso ZFS en Proxmox, que es el hipervisor, y lo expongo localmente vía NFS.
      [1] https://github.com/aksiksi/compose2nix
    • k8s es excesivo para un homelab. Aun así lo hacemos porque el self-hosting es 1 parte practicidad y 2 partes aprendizaje
  • El artículo original acierta bien en esto: “Es 2024, así que ya es hora de volver a mirar el placer fundamental de configurar nuestros propios sistemas”.
    El self-hosting es realmente divertido. Porque mezcla aprendizaje, desafío y utilidad práctica. +1 para Actual Budget y Changedetection.io. Pero -1 por no tratar el modelado de amenazas y la seguridad. El autor original usa HTTPS, pero deja el sitio web abierto a Internet público. Quien esté empezando debería alojar solo en la LAN o cerrarlo con mucha fuerza. Dicho eso, en hosting compartido puede ser complicado si no hay restricciones por IP o tunneling, y no sé si uberspace ofrece algo así. Para quienes ya pasaron la etapa inicial, recomendaría algo como Docker para correr más aplicaciones en paralelo. Las dependencias empaquetadas son lo máximo. Haciendo un poco de promoción de mi libro, que también cubre el enfoque con Docker: https://selfhostbook.com

  • Estoy de acuerdo con los otros veteranos.
    Si no hay hardware propio corriendo en un espacio que posees o rentas, no es self-hosting. Ahora uso una pequeña caja Micro-ITX, pero antes tenía un rack de servidor de verdad con un servidor 6U, UPS y equipo de red. Eso fue antes de casarme

  • Me encanta el self-hosting. Aprendí mucho haciendo pequeños proyectos de hobby.
    Para quien tenga curiosidad por mi configuración: compré barato en eBay un Dell R630 usado. Tiene SSD de 1 TB en RAID 1, 32 GB de RAM y 32 cores, y me divierto corriendo pequeñas apps de hobby con Docker, virsh y minikube. Aprendí los tres. Tengo fibra de 1 Gbps, y un cron job revisa cada minuto si cambió la IP; si cambió, actualiza el registro DNS A mediante la API de Linode

  • ¿1.5 GB de RAM y 10 GB de disco? El VPS cloud básico de Hetzner da 4 GB de RAM y 40 GB de disco por 4.51 euros

    • Hasta donde sé, Oracle Cloud parece difícil de superar: https://www.oracle.com/cloud/costestimator.html
      Para cómputo dice: “cada tenencia recibe gratis cada mes las primeras 3,000 horas de OCPU y 18,000 horas de GB para crear instancias Ampere A1 Compute. Ese uso de la capa gratuita se comparte entre bare metal, máquinas virtuales e instancias de contenedor”. Para almacenamiento en bloque es algo como: “la asignación de la capa gratuita del servicio Block Volume es de un total de 200 GB para toda la tenencia. Si hay varias estimaciones en la misma tenencia, solo se aplican 200 GB en total”. O sea que, en la práctica, tienes 4 cores de CPU ARM + 24 GB de RAM + 200 GB de espacio gratis
    • ¿También estás viendo la posible diferencia de precio?
  • Spoiler: este artículo no trata sobre self-hosting, sino sobre hosting compartido

  • Pero si alguien te susurra K8S al oído…

    • Ahora que lo pienso, tengo que ir a alimentar mi clúster K3S del homelab con CRD actualizadas para preparar la próxima ventana de actualización
  • Cuando te gradúes de esta guía, también conviene revisar /r/homelab y /r/homedatacenter ;)