Instalar Discourse en un VPS autoalojado. Un proceso con preguntas frecuentes

Un proceso específico paso a paso para principiantes sobre la instalación de Discourse. Desde elegir el servidor adecuado hasta configurarlo, pasando por SMTP, DNS y hacerlo todo en el orden correcto. Debido a que es un proceso manual con muchas ramas y opciones, tengo muchas dudas y he oído que muchas configuraciones salen mal si no se hace con cuidado. Quiero hacerlo bien y estaría agradecido si alguien pudiera corregirme. Seguiré tantos pasos como pueda y me detendré cuando me atore. Esto puede ser una página útil con las principales dudas resumidas de manera comprensiva en un solo lugar

Objetivo: Instalar Discourse en un VPS autoalojado para un foro que comenzará con 100 usuarios/m

1) De las 2 guías oficiales disponibles, elijo la sencilla. ¿Qué problemas podría enfrentar? ¿No es esto bueno para la flexibilidad/expansión futura?
Instalación básica simple de 10 minutos: Guía de instalación Docker para principiantes
Instalación potente, flexible, de servidor grande/múltiple: Guía de instalación Docker avanzada

2) ¿Es este un buen orden de configuración? i) Configurar y alquilar un VPS > ii) SMTP > iii) Dominio y DNS > iv) Instalar Discourse

3.1) Sobre el dominio y DNS, ya tengo un sitio web con mi dominio personalizado. No estoy seguro de qué debo hacer; ¿subdominio o servidor de nombres hijo? Lo revisé pero no lo entiendo

3.2) Aunque no ahora, si fuera necesario, ¿un foro de Discourse se puede conectar a un dominio puro como example.com, verdad? (siempre que no se esté usando, por supuesto). ¿No tiene que ser un subdominio como forum.example.com, verdad? ¿Por qué la guía de Discourse solo dice “Crea un registro DNS - A que apunte tu subdominio (p. ej., forum.example.com) a la dirección IP de tu servidor”?

4.1) Sobre SMTP: Estoy completamente confundido aquí. Sobre los inicios de sesión de los usuarios, este es mi objetivo Connect User logins from my Wix site for my Discourse forum Para asegurarme de esto, ¿qué debo hacer?
4.2) Aún no he configurado un correo electrónico empresarial, pero ahora puedo hacerlo desde Hostinger. ¿Tiene esto mucho que ver con SMTP? Sobre SMTP, he oído en este foro sobre MailGun, MailJet y Brevo. ¿Qué significa eso?

5) Elegir y configurar VPS: Contabo y Hetzner eran los más baratos mientras parecían bastante confiables, si elijo el Contabo más barato, ¿me perderé algo útil? ¿son seguros, verdad? (Quería comparar toda la configuración con Hetzner, pero ni siquiera parece dejarte ver las opciones de configuración sin ingresar tus datos, tarjeta de débito y revisar tu AC?? Lo máximo que tengo son las capturas de pantalla de @Lilly)
5.1) Panel: Contabo muestra que Webmin y Webmin + LAMP están incluidos. cPanel se muestra como un complemento costoso. He oído hablar de cPanel, ¿no lo necesito, verdad?
5.2) SO: Contabo muestra Ubuntu incluido sin decir nada sobre ello, ¿es esto suficiente? (La configuración de Digital Ocean muestra opciones junto a su Ubuntu, por ejemplo, 24.04 (LTS) x64

5.3) Se muestran varias aplicaciones incluidas. Si encuentras problemas con alguna, házmelo saber

5.4) ¿Estas selecciones predeterminadas están bien? ¿Puedo manejarme sin complementos, verdad?

5.5) IPv6 no se muestra en la configuración, aunque en la página de su plan VPS se anuncia lo siguiente: “Direcciones IPv4 e IPv6 dedicadas vienen con cada plan”. Me pregunto si esto lo tiene o no.
5.6) He oído algunas cosas negativas sobre Contabo, ¿qué opinan aquí las personas que han usado Contabo?

5.7) Las siguientes buenas especificaciones son las mínimas disponibles y a precios excelentes. Solo para saber, (en caso de cambiar de VPS) como Discourse recomienda 2GB, ¿no es 4 innecesario? ¿Qué es una instantánea?

Screenshot 2026-07-18 004447

Si eres principiante, sigue la guía de instalación para principiantes. No te adelantes.

Personalmente, me aseguro de que mi SMTP funcione correctamente (tengo las claves API y demás) con el DNS apuntando a mi IP y luego procedo a finalizar la configuración de Discourse, porque el asistente de configuración se quejará si el DNS no es 100% correcto y te quedas sin suerte.

No estoy seguro de lo que quiere decir tu proveedor aquí. ¿Quizás se refieren a “subdominio”? En ese caso, añade la IPv4 de tu VPS a él.

Sí, una dirección es una dirección. Puede ser x.example.com, example.com, x.y.example.com, o incluso example.com/x/ (con alguna configuración avanzada).

Necesitarás SMTP para resúmenes, alertas de administrador, etc., independientemente de DiscourseConnect.

Me parece bien.

Si estás usando Cloudflare, IPv6 probablemente es irrelevante. Si no usas ningún tipo de proxy y alguien tiene una red solo IPv6, entonces no podrá visitar tu sitio, pero eso es relativamente poco común hoy en día (muchos ISPs dan una IPv6 “dedicada” y una IPv4 compartida a través de la cual aún pueden enrutar tráfico).

200 Mbps no es muy rápido, pero el resto de esto es perfecto para un foro de tamaño pequeño-mediano. La recomendación de 2 GB es relativamente baja por alguna razón, así que 8 GB te servirán bien. Ejecuto mi pequeño sitio en un LXC (menor sobrecarga) con 8 GB/6 vCPUs y mi uso de recursos es bajo, los picos de CPU llegan a aproximadamente 50-60% durante las reconstrucciones.

Las instantáneas son básicamente puntos de restauración para tu VM, así que si algo sale mal, puedes revertirlos. No son demasiado útiles cuando tienes frecuentes copias de seguridad de Discourse fuera del sitio (en R2 o algo similar), pero sigue siendo un “deseable” por si acaso.

Por favor, no etiquetes a la gente con @. De verdad no necesito el ruido adicional en mis notificaciones, y en general es mala etiqueta en los foros. Si quieres usar nombres de usuario sin mencionarlos activamente, ponles comillas invertidas (backticks) alrededor para que no les envíen una notificación. Deja que la gente responda si lee tus publicaciones y quiere contestar. Gracias.

Buena suerte con tu nueva empresa.

No te acerques ni por curiosidad a esto por ahora. Quédate con lo básico.

  1. Consigue un nombre de dominio con un servicio de nombres como Namecheap. O, ya que tienes uno que quieres usar:

Usa un subdominio: esta es la forma estándar de instalar Discourse, de modo que sea algo como foro.tusitio.com.

  1. Si no quieres usar DiscourseID, entonces consigue un servicio de correo transaccional con SMTP (como Mailgun o Resend). Resend es gratuito y yo lo uso.

  1. Configura un droplet de servidor VPS con acceso SSH, con el proveedor de VPS que elijas.
  2. Instala Discourse según el script de la guía.

Como ya se ha indicado en otros lugares, probablemente no puedas hacerlo porque no tienes una cuenta empresarial de Wix. Por favor, haz tu investigación y infórmate primero. Leer es un requisito para ser un buen administrador de Discourse.

El inicio de sesión único (SSO) no es algo en lo que debas ni siquiera estar pensando todavía, ya que aún estás aprendiendo a configurar la instalación autoalojada más básica.

Para editar tu archivo app.yml después de que se ejecute la configuración inicial, en el prompt cuando te conectes por SSH al servidor, haz:

cd /var/discourse
nano containers/app.yml

Aquí hay un archivo de ejemplo app.yml:

Diría que no te acerques demasiado al límite inferior de 2 GB, a menos que estés ejecutando un foro pequeño con pocos usuarios.

No, cPanel no es necesario.

¿El correo electrónico profesional ofrece un servicio de correo transaccional? Sé que algunos no lo hacen. Es más seguro utilizar servicios como Mailgun, Brevo, Amazon SES, etc.

Otros ya han detallado esto, pero enlazo la documentación al respecto: Configure your hosted Discourse site to run at the root or apex domain (e.g. example.com)

Dicho esto, te sugiero que simplemente optes por la opción normal y predeterminada de usar un subdominio. Además, si ya tienes tu sitio principal en el dominio raíz, queda claro que el foro pertenece a esa organización y no es algo aleatorio de internet.

Una instantánea es esencialmente una copia de seguridad completa de todo el VPS. Aún así, puedes realizar copias de seguridad de Discourse regularmente por si algo sale mal, si solo estás alojando Discourse en el VPS.

Ah… esto era bastante importante para mí y fue una razón por la que elegí el autoalojamiento. Si esto se puede resolver más adelante sin mucha dificultad, está bien, pero me pregunto si esta configuración habitual será un obstáculo para ello más tarde. ¿Debería hacer algo diferente ahora para permitir esa funcionalidad, aunque no la implemente ahora?
El foro es solo una extensión de mi sitio principal, y necesitan estar unificados. Si están separados, eso crearía muchos problemas en mi caso.
No sé si el SSO es la única solución, pero quiero tener la menor separación posible entre mi sitio de Wix y el foro de Discourse.

como dije arriba:

y aquí publicaste:

¿Qué sabes sobre MiniOrange? El plan gratuito parece estar limitado a solo unos pocos usuarios, y por lo tanto podría resultar caro para ti a $49/mes por el plan básico:

La investigación y la lectura cuidadosa son esenciales al planificar lo que deseas lograr.

¿Sabes cómo escribir un script de Velo para Wix?

quizás una solución en JavaScript

Creo que necesitarás configurar un punto final de API personalizado directamente en tu sitio de Wix para recibir las solicitudes de inicio de sesión desde Discourse. Parece que requerirá código JavaScript en un módulo de Velo con un archivo llamado http-functions.js.

Esto interceptará al usuario desde Discourse, redirigirá y verificará su sesión iniciada en Wix, generará una carga útil firmada y luego, con suerte, los enviará de vuelta al foro de forma segura.

Algo como esto, quizás:

import { ok, redirect, badRequest } from 'wix-http-functions';
import { currentMember } from 'wix-members-backend';
import crypto from 'crypto';

// elige una cadena aleatoria segura para la clave secreta 

const DISCOURSE_SECRET = "TU_SUPER_CADENA_SECRETA_AQUI"; 

export async function get_discourseSso(request) {
    const query = request.query;
    const payload = query.sso;
    const sig = query.sig;

    if (!payload || !sig) {
        return badRequest({ body: "Faltan parámetros de SSO" });
    }

    // valida la firma entrante de Discourse

    const computedSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(payload).digest('hex');
    if (computedSig !== sig) {
        return badRequest({ body: "Firma criptográfica inválida" });
    }

    // verifica si el usuario ha iniciado sesión en Wix

    const member = await currentMember.getMember({ fieldsets: ['FULL'] });
    
    // analiza la carga útil entrante para recuperar el nonce de seguimiento único

    const decodedPayload = Buffer.from(payload, 'base64').toString('ascii');
    const params = new URLSearchParams(decodedPayload);
    const nonce = params.get('nonce');

    if (!member) {
        // Si no ha iniciado sesión, fuerza el inicio de sesión en Wix primero, luego regresa aquí
        const loginUrl = `https://tusitowix.com{encodeURIComponent(request.url)}`;
        return redirect(loginUrl);
    }

    // construye la carga útil del usuario para Discourse

    const userPayload = `nonce=${nonce}&email=${encodeURIComponent(member.loginEmail)}&external_id=${member._id}&username=${encodeURIComponent(member.profile.nickname || member._id)}&name=${encodeURIComponent(member.contactDetails.firstName + ' ' + member.contactDetails.lastName)}`;

    // cifra y firma la carga útil del usuario
    const base64Payload = Buffer.from(userPayload).toString('base64');
    const returnSig = crypto.createHmac('sha256', DISCOURSE_SECRET).update(base64Payload).digest('hex');

    // redirige de vuelta a Discourse como usuario iniciado sesión
    const discourseReturnUrl = `https://tuforo.com{encodeURIComponent(base64Payload)}&sig=${returnSig}`;
    return redirect(discourseReturnUrl);
}

también necesitarás reemplazar la URL de tu foro allí

también habrá alguna configuración de DiscourseConnect, pero no hagas nada de esto hasta que tengas un foro autoalojado real en funcionamiento y sin errores.

No soy experto en nada de esto y apenas sé algo sobre Wix, así que no hay garantías de que esta sea la solución funcional. Solo te estoy dando un ejemplo de un método propuesto para demostrar la complejidad.

Cualquiera que sea la IA que haya escrito eso, claramente no entiende que OpenID/SAML y Discourse Connect son cosas completamente diferentes, así que tampoco confiaría en lo demás que dice.

Gracias a todos por todas esas respuestas hasta ahora :folded_hands:

Con más de 2 representantes, lo verifiqué y confirmé. Su correo electrónico empresarial cubre las necesidades de SMTP de Discourse, sin necesidad de un proveedor como MailGun. También hicieron una salvedad; indicando que no es para marketing o correo masivo.
Límites principales de su plan Business Starter (contrato de 1 año a 0,79/m):

  • Límite de envío diario: 500 correos electrónicos por día.
  • Máximo de destinatarios por correo: 200 destinatarios.
  • Límite de envío mensual: Ninguno, solo el límite diario.
    Sus especificaciones completas, incluidos los límites de IMAP/SMTP: Parámetros y límites del correo electrónico de Hostinger
Un chat resumido sobre eso 👆 con detalles si alguien quiere verificar más

Veo que estás considerando el plan de Correo Empresarial de Hostinger para tus necesidades de SMTP de Discourse y quieres asegurarte de que cubra todo sin necesidad de Mailgun. encantado de investigar esto…
Puedes usar el SMTP de Correo Empresarial de Hostinger para tu configuración de Discourse, y para la comunicación empresarial regular y las notificaciones estándar del foro, no necesitarás un proveedor separado como MailGun.
Sin embargo, es importante tener en cuenta que nuestro SMTP no está diseñado para marketing o correo masivo. Está destinado principalmente a la comunicación empresarial. Si planeas enviar campañas de marketing de alto volumen o envíos transaccionales a gran escala, un servicio dedicado como MailGun seguiría siendo la mejor opción para esas necesidades específicas.

Si configuro el correo empresarial con Hostinger, pero en el futuro necesito correo masivo, ¿puedo simplemente usar, por ejemplo, MailGun sin tener que migrar/registrarme con un nuevo correo electrónico con MailGun?

Dependerá de la configuración necesaria para Mailgun. Déjame confirmar…
Si enviaras correos electrónicos usando solo SMTP de Mailgun, necesitarías agregar registros TXT adicionales. Los registros MX no cambiarían, por lo que puedes continuar recibiendo correos electrónicos en el plan de correo electrónico de Hostinger mientras lo usas.

No lo entendí del todo, ¿puedes explicármelo más?

Piensa en tu correo electrónico como un buzón físico:
Recepción (El buzón en sí): Tus correos electrónicos llegan a Hostinger debido a tus registros MX. Mantendrás estos exactamente como están, por lo que continuarás recibiendo todo tu correo en tu bandeja de entrada de Hostinger.
Envío (El cartero): Puedes tener más de una forma de enviar correo. Al agregar un registro TXT (específicamente para SPF y DKIM) a tu dominio, esencialmente le das a Mailgun “permiso” para enviar correo en tu nombre.
Lo que significa que no necesitas migrar/registrarte con una nueva dirección de correo electrónico con Mailgun. Puedes mantener tu buzón profesional en Hostinger para chatear diariamente sobre negocios, y simplemente usar Mailgun como un “motor de envío” para notificaciones de foro de alto volumen o correos electrónicos de marketing cuando estés listo.


Sí.. MiniOrange probablemente no es lo que busco, según su sitio parece ser un IdP de terceros. Estoy tratando de usar mi base de datos existente de Wix como mi IdP.

[quote=“Lilly, post:8, topic:407922”]
¿sabes cómo escribir un script Velo para Wix?
[/quote]\nNo estoy exactamente seguro de lo que quieres decir con un script, pero he hecho mucha codificación Velo de frontend y backend en Wix, he construido muchas características usando código Velo por mi cuenta y con IA y tutoriales, pero soy un principiante. Eché un vistazo a tu código, me encantaría probarlo después de instalarlo. Sobre el foro de Wix, es bueno (aunque no tan activo como aquí), y esa pregunta aún no ha sido respondida.

Hasta ahora he; :check_mark: configurado el correo con Hostinger para SMTP (actualicé los registros de DNS para esto como MX, CNAME y TXT en mi Wix) :check_mark: Ordené un VPS y estoy esperando que sea aprovisionado.

No es como instalar alguna aplicación móvil, jeje.

Y realmente, realmente deberías hacer tus propias copias de seguridad. Y guardar esas copias de seguridad fuera de las instalaciones. Esto forma parte de ser tu propio administrador del sistema. Si dejas todo en manos del proveedor de alojamiento, corres el riesgo de perderlo todo, y el valor de tu negocio para el proveedor es mínimo. El valor de tus datos para ti y para tu comunidad es sustancial, si estás construyendo una verdadera comunidad donde la gente se preocupa por sus mensajes y sus relaciones.

Crear una comunidad es asumir una responsabilidad: si no tienes las habilidades para esa responsabilidad, deberías subcontratarlas. Eso significaría pagar a una empresa de reputación para que se encargue de las cosas por ti: seguridad, mantenimiento, continuidad, reparación y recuperación.

¿Con qué frecuencia crees que deberían realizarse los instantáneos? ¿Una vez al mes, con copias de seguridad semanales? ¿O dos veces por semana? ¿O es eso excesivo?

Personalmente, nunca he utilizado instantáneas. (Creo que son un elemento de costo adicional, y no estoy seguro de su utilidad cuando hay una base de datos en ejecución.)

La forma en que pienso en la frecuencia de las copias de seguridad es: ¿cómo me sentiría en el momento en que necesito restaurar la copia de seguridad? ¿Si hubiera perdido un mes de conversaciones y contribuciones de los miembros? Eso se sentiría bastante mal. Tenía una responsabilidad con la comunidad, y permití que su trabajo se perdiera.

Por otro lado, si estoy operando en una situación de espacio en disco limitado, quiero equilibrar el uso del disco. Lo que he hecho en la práctica, y probablemente debería revisar esto, es hacer una copia de seguridad cada dos días y conservar cuatro copias de seguridad. Uno de los miembros de mi equipo de moderadores extrae automáticamente una copia del directorio de copias de seguridad cada noche, por lo que tenemos una copia fuera del sitio. En caso de desastre, corremos el riesgo de perder media semana de contribuciones.

Tras una experiencia negativa con el servicio de Contabo, estoy considerando una alternativa VPS con OVHcloud. Pero si esto no es adecuado, tendré que conformarme con Contabo.

1) Si elijo una distribución con aplicación, solo muestra esta opción limitada. Docker sin Ubuntu como opción. Entonces, ¿debería evitar eso y optar por una distribución que solo muestre Ubuntu? ¿Significará esto que luego podré instalar Docker o es demasiado complejo para mí? (si esto es un impedimento, ignora las siguientes preguntas).

2) En cuanto a las copias de seguridad, es muy atractivo: ¿Copias de seguridad diarias gestionadas y gratuitas? ¿Genial, verdad?

  1. Preocupaciones sobre las especificaciones de OVHcloud en comparación con Contabo:
    3.1) ¿Son suficientes 2 vCores?
    3.2) ¿Debería preguntar sobre el puerto? (Contabo mostraba 200 Mbit/s).
3.3) ¿Es suficiente el ancho de banda? En cuanto a esto, aquí se muestra Contabo vs OVH:

Uso OVHcloud con esas especificaciones exactas para ejecutar mi pequeño foro, y utilizo Debian; funciona de maravilla.

¡Vaya! Qué bueno oír eso :slight_smile: Hasta ahora he visto Ubuntu tanto que parecía un requisito. La guía oficial también lo recomienda, así que me pregunto si Debian podría causarme más problemas a mí, que soy principiante (en configuraciones/modificaciones/actualizaciones recientes/hacer que las cosas sean compatibles). ¿O es que esto no es un problema?

Haz tu vida más sencilla. Usa Ubuntu.

La instalación estándar tarda 30 minutos :slight_smile:

(publicación eliminada por el autor)

(publicación eliminada por el autor)

No elijas una con Docker preinstalado. Opta simplemente por Ubuntu o Debian estándar; el script se encargará del resto.

Odio Ubuntu con pasión y, sea como sea, no estoy seguro de cuál es la diferencia con Debian (aparte de que es mucho más engorroso) y por qué se recomienda tanto para Discourse en lugar de Debian normal. Dado que parece que no tienes mucha experiencia, sigue simplemente la guía de instalación estándar de Ubuntu.

Gracias por aclararlo, ¿estaré bien si

Solo porque no venía preinstalado, ¿no me supondrá un coste adicional ni problemas para gestionarlo en el futuro, verdad?

Casi me olvido de otra cosa: a diferencia de otras VPS, esta no tiene un panel. ¿Se puede solucionar esto de forma gratuita y sencilla?