Se aclara la confusión sobre el autoalojamiento

(Mi nivel: he creado algunos sitios web semicomplejos en Wix, programador principiante)

Una gran confusión que tenía, y que ahora está un poco más aclarada, es que autoalojar Discourse es muy diferente al “alojamiento web” (hosting web).

1) ¿Autoalojar Discourse requiere un servidor, lo cual significa algo completamente distinto, verdad? (de ahí la gran diferencia de precio respecto a los precios de alojamiento web comúnmente anunciados, ¿correcto?)

2) Entonces, ¿el término equivalente relacionado con el autoalojamiento de Discourse es “alojamiento VPS”? ¿O existen otras opciones para esto también? ¿Otro tipo de autoalojamiento? (Soy consciente de la opción de alojarlo en mi propio hardware, aunque).

3.1) Entonces, el “alojamiento administrado”; ¿es este un servicio que se añade a ese tipo de alojamiento VPS?
3.2) ¿Es mucho más caro?
3.3) ¿Pero qué hace exactamente?
3.4) Como novato con poco presupuesto que inicia un pequeño foro (~100 usuarios/mes), ¿se puede prescindir del alojamiento administrado, verdad?

Después de horas leyendo en línea sobre el alojamiento de Discourse, la publicación de la que proviene la siguiente cita fue una de las vistas más útiles y completas para ayudarme a elegir mi camino de alojamiento:

Respecto a este punto citado, ¿podría alguien aclararme lo siguiente, por favor?

4.1) Entiendo que esto se refiere al mantenimiento del servidor. ¿No está eso ya incluido ahora al usar DO/Hetzner? ¿O solo estará incluido en un tipo de servicio separado? ¿Cómo se llama?
Por ejemplo, si uso la opción de droplet de un clic de DO, ¿este tipo de mantenimiento está incluido en eso? ¿O solo está relacionado con la configuración?

4.2) ¿Qué nivel de tiempo y conocimiento implica “mantenerlo” para un foro como el mío?

4.3) @tophee dijo: “Por varias razones, los servidores administrados rara vez son utilizados por los administradores de foros de Discourse”. ¿Por qué es esto?

También encontré este árbol de decisiones bastante útil; quizás esté desactualizado, así que si algunas de estas tareas son más fáciles ahora, por favor avísennme.

5.1) No entiendo del todo qué es SSH y, según este gráfico, ¿todos los que autoalojan necesitan esto?
5.2) ¿Qué quieren decir con estar cómodos gestionando DO, MailGun y DNS? ¿Qué nivel de tiempo y conocimiento implica gestionar estos elementos para un foro como el mío?

Intentaré responder a tus preguntas, aunque creo que podrías tener algunos términos superpuestos que están generando parte de tu confusión.

Cuando la gente en este foro habla de «autoalojamiento» (self-hosting) de Discourse, se refiere a ejecutar una instancia de Discourse en tu propio servidor. (más sobre esto en un momento) Cuando se refieren a «alojamiento gestionado» (managed hosting), hablan de un servicio que proporciona una instancia de Discourse ejecutándose en hardware que también provee el proveedor. Con «alojamiento gestionado» significan que la instancia de Discourse es gestionada por el servicio; ellos se encargan de mantener actualizada la instancia de Discourse y el sistema operativo sobre el que se ejecuta, asegurando que funcione correctamente.

Para «autoalojar» Discourse, necesitas un servidor con acceso a internet y un servicio DNS configurado correctamente que apunte a tu servidor. El servidor puede ser hardware físico en tus instalaciones o puede ser un «VPS». VPS significa Servidor Privado Virtual. Un VPS es hardware de servidor proporcionado que tienes control total sobre él, como si estuviera en tus instalaciones, pero lo accedes «de forma remota». Por «acceder de forma remota» me refiero a que usas herramientas como SSH y FTP para acceder al servidor, controlarlo y transferir archivos a él.

SSH es «Secure Shell» (Cáscara Segura). Una cáscara segura es básicamente una línea de comandos que se ejecuta a través de un túnel seguro (cifrado). ¿Estás familiarizado con la ejecución de un servidor desde la línea de comandos?

Cáscara (shell), terminal, línea de comandos y símbolo del sistema (command prompt) significan más o menos lo mismo. Ejecutar un ordenador usando una ventana de terminal y escribiendo comandos en el símbolo del sistema. Si todo lo que acabo de decir te suena como un idioma diferente, esto podría requerir algo de aprendizaje antes de intentarlo.

Cuando alquilas un VPS, te proporcionan credenciales y la dirección IP de tu nuevo servidor. Por lo general, cuando compras, te dan a elegir entre sistemas operativos. Inicias sesión en tu servidor usando un programa de terminal como PuTTY o simplemente la ventana de terminal de tu ordenador. Puedes usar un programa de FTP (Protocolo de Transferencia de Archivos) como FileZilla para transferir archivos desde tu ordenador al VPS.

Así que, una vez que hayas alquilado un VPS y hayas iniciado sesión en él usando tu SSH, podrás instalar una instancia de Discourse en tu servidor y entonces estarás «autoalojando» Discourse. Tienes control total sobre tu instancia de Discourse y el servidor en el que se ejecuta. Por lo general, puedes mantener Discourse actualizado con las herramientas de administración integradas dentro del propio Discourse, pero ocasionalmente tendrás que usar la línea de comandos para actualizar manualmente. También necesitas mantener copias de seguridad de tus datos y saber cómo restaurarlas. Discourse hace copias de seguridad automáticamente, pero debes descargarlas y almacenarlas de forma segura por si las necesitas.

Con un VPS, también tendrás que mantener el sistema operativo sobre el que se ejecuta tu instancia de Discourse. Esto requiere cierto conocimiento del sistema operativo y de cómo mantenerlo actualizado y funcionando correctamente. Si te equivocas con el VPS, por lo general todo lo que el servicio de alojamiento de VPS puede hacer es borrar tu sistema operativo y cargar una versión nueva. También tienes que hacer copias de seguridad de los datos importantes por si necesitas volver a cargar el sistema operativo.

Una vez configurado y en funcionamiento, esto es algo bastante fácil de mantener, si sabes lo que estás haciendo. Por tu descripción de tus habilidades, creo que podrías manejarlo. La mejor manera de aprender a hacer todo esto es intentarlo. Alquilar un VPS es bastante económico hoy en día. Configura un servidor, intenta poner Discourse en marcha en él y ven aquí o a ask.discourse.org si tienes preguntas.

Solo ten en cuenta que si el foro que ejecutas no recibe mucho tráfico, lo cual no lo hará por sí solo, si te equivocas, simplemente puedes empezar de nuevo. Si un montón de gente se une a tu foro y empieza a publicar, entonces necesitarás mantenerlo y hacer copias de seguridad. Si tienes un foro existente, o un producto que quieras promocionar o dar soporte, quizás quieras revisar un proveedor de alojamiento. Si solo estás jugando y aprendiendo… ¡adelante!

Alojamiento de Discourse ≠ autoalojamiento

Soy un autoalojador experimentado y he realizado algunas configuraciones complejas; además, solía trabajar para Discourse, así que tengo cierta comprensión de ambos conceptos, que parece que tienes un poco confundidos. Intentaré aclararte algunas cosas, pero esto no es en absoluto una explicación exhaustiva, aunque sea larga, jajaja. No sé de dónde sacaste ese diagrama de flujo, pero no es exactamente correcto.

El alojamiento de Discourse es lo que su nombre indica: Discourse alojará tu sitio por una tarifa, y como ya has descubierto, hay diferentes niveles de precios, que comienzan en gratis, y que ofrecen más opciones a medida que subes de nivel, y Enterprise es el más alto y caro (te da más opciones, así como sus servicios de soporte de primera línea). El alojamiento gestionado es lo mismo (el alojamiento de Discourse es una forma de alojamiento gestionado), pero también lo ofrecen otras empresas asociadas como Communiteq o Literate Computing. Estas empresas asociadas también ofrecen varios servicios de desarrollo y soporte por una tarifa aparte del alojamiento (como yo). Ten en cuenta que el trabajo no suele ser gratuito para el desarrollo y el soporte especializado, y para eso está el Marketplace. Además, aunque la estructura de precios del alojamiento de Discourse pueda parecer cara, te aseguro que muchas empresas conocidas les pagan lo que sea por sus foros empresariales muy grandes, ocupados y bien gestionados, muchos de ellos privados. Los SLAs y los niveles de soporte/servicios de desarrollo que Discourse les ofrece son tales porque su actividad empresarial lo exige. Si eres una empresa tecnológica y te golpea un ataque DDoS que puede costarte a tu empresa seis cifras en tiempo de inactividad, entonces pagar por alojamiento Enterprise vale totalmente la pena.

El autoalojamiento significa lo que dice: tú alojas tu propio sitio en un servidor alquilado (o uno físico que poseas, lo cual no recomiendo porque eso es otra lata avanzada). El autoalojamiento no es solo alquilar un servidor (o VPS - servidor privado virtual) y conectarte por SSH y ya está. Hay cierto conocimiento que uno debe tener para ser un administrador autoalojado. Un programador principiante que ha construido unos pocos sitios web en Wix no te ayudará mucho desde la perspectiva de autoalojar Discourse; son cosas y niveles de habilidad muy diferentes. El hecho de que aún no sepas qué es SSH probablemente sea un indicador de que tienes que crecer en esa área. Secure Shell - Wikipedia

Si te interesa aprender, te sugiero que comiences leyendo la documentación de instalación estándar y aprendas los trucos desde allí. A algunos les resulta más fácil que a otros, y el hecho de que tengas algo de experiencia en administración de sitios web puede ayudarte a aprender más rápido. Solo poder conectarte por SSH a un servidor es una cosa, pero tienes que sentirte cómodo en una interfaz de línea de comandos y entender los básicos de la administración de Docker, y cómo funcionan los contenedores. Dado que dices que tienes un sitio pequeño, entonces una instalación estándar probablemente funcionará bien para empezar, y te dará acceso a todos los plugins integrados, más cualquier otro que quieras agregar; esencialmente, una instancia de Discourse autoalojada es como tener tu propio foro de Discourse alojado a nivel empresarial pero sin su soporte experto, SLAs de tiempo de actividad y rendimiento (por ejemplo, tendrás algo de tiempo de inactividad cada vez que reconstruyas o hagas actualizaciones, pero el alojamiento de Discourse lo hace por ti y sin ningún tiempo de inactividad discernible).

No hay ninguna razón por la que no puedas aprender a autoalojar, pero recuerda que nada es gratis y el servicio y la escala que desees determinarán el costo que necesitarás pagar. Algunos servicios VPS son más baratos que otros, y hay una lista aquí que @pfaffman ha preparado que puede ayudarte a decidir. Por ejemplo, tengo 3 sitios Discourse, todos en Hetzner, pero con servidores de diferentes tamaños y costos asociados: 2 sitios son instalaciones de doble contenedor detrás de Cloudflare CDN con almacenamiento de objetos R2 (compatible con S3) para cargas y copias de seguridad, y el otro es una instalación estándar utilizada para fines de prueba. He usado DigitalOcean antes, pero puede ser relativamente caro; sin embargo, es el punto de partida recomendado para aquellos que aprenden instalaciones estándar (aunque en realidad no encuentro a Hetzner tan diferente, y prefiero su panel de control).

Si no quieres pagar a Discourse o a ninguna de sus empresas asociadas de alojamiento para que gestionen tu alojamiento, y necesitas más que el nivel gratuito, entonces mi recomendación es que hagas algo de investigación y lectura, y luego intentes una instalación manual. Aprende qué es un archivo app.yml y cómo editarlo, cómo configurar tu servidor de nombres y servicios de correo electrónico: este es el punto de partida para aprender a configurar tu propia instancia de Discourse como autoalojador. Algunos servicios VPS te permiten alquilar servidores bastante baratos por períodos cortos solo para pruebas o aprendizaje.

Este es un diagrama bastante bueno y estoy de acuerdo con todo lo que han dicho las personas anteriores (aunque aconsejaría encarecidamente a los principiantes que no utilicen un LLM para obtener soporte, ya que suelen estar equivocados de forma muy evidente con frecuencia). Sin embargo, «self-hosting» es un término paraguas muy amplio que podría aclararse aquí.

Si:

  • te sientes cómodo ejecutando Linux en tu propio hardware (o aguantando leer publicaciones de Reddit de hace 15 años)
  • no tienes dinero para gastar en grandes empresas tecnológicas
  • tienes una conexión a Internet y electricidad consistentes y garantizadas las 24 horas del día, los 7 días de la semana
  • no tienes restricciones impuestas por tu proveedor de Internet (como un puerto 80/443 cerrado o una IP IPv4 dinámica)
  • puedes realizar configuraciones básicas de red (reenvío de puertos)
  • tienes un ordenador de sobra (puede ser una vieja caja de oficina con 4 GB de DDR3, siempre que tengas un SSD)

… entonces te recomendaría encarecidamente alojarlo en tu propio hardware. Suele tener una mala reputación por aquí por razones que desconozco (¿variabilidad?), pero siempre que seas capaz de hacerlo, ¡te recomendaría darte la oportunidad de intentarlo! El autoalojamiento siempre ha sido mi forma de hacer las cosas y fue genial cuando era más joven y no podía permitirme la nube. Incluso ahora, elijo autoalojarme en servidores locales porque es barato, predecible y eres libre de hacer las cosas como quieras.

Hay mucho que aprender sobre el autoalojamiento y, aunque logres instalarlo correctamente en tu propio hardware o en un VPS, aún te queda mucho trabajo por delante. Siempre puedes saltarte todo esto y optar por un plan alojado, pero si buscas ahorrar dinero, el autoalojamiento (especialmente en tu propio hardware) es una excelente opción.