De acuerdo. Eso tiene sentido. Y creo que me vendría bien usar Mailgun.
¡Entenderé todo esto mejor si y cuando empiece a configurar un multisitio!
De acuerdo. Eso tiene sentido. Y creo que me vendría bien usar Mailgun.
¡Entenderé todo esto mejor si y cuando empiece a configurar un multisitio!
Me uno porque estoy en una situación similar a la de @alltiagocom: tengo Discourse instalado en un servidor Hetzner más bien pequeño para mi comunidad principal, pero he estado pensando, en segundo plano, en migrar algunos otros grupos de Facebook a Discourse una vez que domine las cosas.
Estoy familiarizado con el «multisitio de Wordpress», pero he entendido que el multisitio de Discourse implica más trabajo. Me preguntaba qué sería menos problemático, ejecutar dos sitios independientes (o más) o un multisitio.
¿Alguna idea sobre esto?
Multisitio definitivamente implicaría menos sobrecarga de mantenimiento, por lo que menos dolores de cabeza, pero su experiencia puede variar (YMMV).
Para los novatos en Discourse, recomiendo ejecutar solo dos sitios.
Creé un tema sobre cómo ejecutar multisitio sin un proxy inverso, pero ya está desactualizado.
Creo que todo lo que necesita cambiar es
puede ser reemplazado con el nuevo
DISCOURSE_HOSTNAME_ALIASES: domain.com,other.domain.com
Mi opinión, después de pasar todo el día trabajando en esto con la ayuda de mis viejas notas, ChatGPT, Claude, el Bot de IA de Discourse y algunos temas compartidos aquí (y después de tomar notas y más notas sobre todo el proceso).
Todo parecía funcionar bien hasta que llegué al punto en que necesitaba agregar el proxy inverso. Mi primera instancia, que estaba funcionando bien, dejó de funcionar. Le hice algunas preguntas más al bot de IA de Discourse, pero como es mi primer día, dejó de funcionar. Es una limitación para los nuevos usuarios del bot. Claude, que estaba siendo súper útil, también se detuvo, porque estoy en la versión gratuita. ChatGPT es el menos confiable de todos, por lo que todas sus respuestas siempre las recibo con MUCHA vacilación…
Luego volví al foro y comencé a leer algunos temas al respecto, algunos escritos por @pfaffman. Esa fue la gota que colmó el vaso. Demasiado complejo, demasiados términos técnicos para que yo siquiera entienda qué preguntar.
Resumen: mi primera instancia estaba funcionando, así que la revertiré a como estaba (editando el archivo app.yml a como estaba antes de los cambios). Estoy reconstruyendo mientras escribo.
Para ser honesto, dada toda la complejidad, aunque me permitiría agregar más comunidades después de superar el primer gran obstáculo, no creo que ahorrar $4 al mes por una comunidad adicional sea el fin del mundo. Como ya sé cómo configurar un servidor en Hetzner y luego instalar Discourse, me quedaré con 2 comunidades por ahora, pagaré los $8 por ambas y seguiré adelante. Considerando que hace unos meses pagaba $12 por una instancia en Digital Ocean, puedo hacer el esfuerzo de pagar la misma cantidad por 3 comunidades si lo deseo.
No obstante, siempre encuentro estas aventuras interesantes, porque aprendo algo nuevo en el camino, y al final, al menos puedo decir por qué no quiero hacerlo, en lugar de simplemente decir “No lo haré, porque no sé si puedo hacerlo”.
Agradezco el tiempo y la ayuda que todos ustedes compartieron aquí, y espero que este tema ayude a otros que quieran lograr lo que yo estaba intentando.
![]()
¡Cambio y corto!
Es exactamente por eso que dije que necesitas replantear tu estrategia, si bien lo que intentabas lograr no era imposible, porque ya se ha hecho antes, requiere una comprensión significativa del discurso para poder hacerlo bien.
Te recomiendo seguir experimentando en tu tiempo libre si quieres aprender más sobre cómo funciona Discourse, así es como la mayoría de nosotros aquí lo aprendimos.
¡Me tomó mucho más tiempo del que me gustaría admitir entenderlo (en su mayoría)!
6 publicaciones fueron divididas en un nuevo tema: Múltiples contenedores de aplicaciones para un único sitio de Discourse
Estoy documentando una instalación multisitio de Discourse compatible como un manual de ejecución comando por comando.
Anteriormente experimenté con un enfoque de “múltiples instalaciones independientes en un solo servidor”, pero esa configuración no es compatible. Esta publicación se centra únicamente en la arquitectura multisitio compatible, reescrita en un formato lineal para quienes prefieren pasos explícitos.
app)multisite.ymlEn multisitio solo hay un contenedor de aplicación, por lo que ./launcher rebuild app reiniciará el único nodo. Eso significa que se espera un breve tiempo de inactividad para todos los sitios.
Agregue todos los nombres de host a DISCOURSE_HOSTNAME_ALIASES para que Let’s Encrypt + la validación de host funcionen de manera confiable.
Cada sitio realiza su propia copia de seguridad en /admin/backups. Restaurar una copia de seguridad de un sitio en una instalación independiente más tarde es la ruta de migración normal.
| Paso | Comando |
|---|---|
| Actualizar sistema | apt-get update && apt-get upgrade -y |
| Instalar dependencias | apt-get install -y git curl sudo |
| Paso | Comando |
|---|---|
| Clonar repositorio | git clone https://github.com/discourse/discourse_docker.git /var/discourse |
| Entrar al directorio | cd /var/discourse |
| Paso | Comando |
|---|---|
| Ejecutar configuración | ./discourse-setup |
Esto crea /var/discourse/containers/app.yml e inicia el primer nombre de host (ej. forum1.example.com).
| Paso | Comando |
|---|---|
| Crear directorio de configuración | mkdir -p /var/discourse/config |
| Editar archivo multisite | nano /var/discourse/config/multisite.yml |
Ejemplo de multisite.yml:
forum1:
host_names:
- forum1.example.com
forum2:
host_names:
- forum2.example.com
| Paso | Comando |
|---|---|
| Editar app.yml | nano /var/discourse/containers/app.yml |
Añadir:
DISCOURSE_MULTISITE: trueDISCOURSE_HOSTNAME_ALIASES: forum1.example.com,forum2.example.com| Paso | Comando |
|---|---|
| Reconstruir | ./launcher rebuild app |
| Paso | Comando |
|---|---|
| Entrar al contenedor | ./launcher enter app |
| Ejecutar migración multisitio | rails multisite:migrate |
| Salir | exit |
| Paso | Comando |
|---|---|
| Reiniciar | ./launcher restart app |
Visitar:
https://forum1.example.comhttps://forum2.example.comCada sitio tiene su propio administrador, usuarios, subidas y copias de seguridad.
Administrador por sitio:
/admin/backupsRestaure esa copia de seguridad en una instalación independiente más tarde si desea dividir el sitio en su propio servidor.
Si algo de lo anterior entra en conflicto con las mejores prácticas actuales, estaré encantado de actualizar este manual de ejecución; la intención es proporcionar una lista de verificación lineal de multisitio compatible que reduzca el ensayo y error.
¡Guau! Esa es la guía clara que necesitaba para obtener algo de claridad en el turbio mundo del multisitio. En realidad, parece muy factible y mucho más simple de lo que había imaginado.
Es un poco molesto que solo se pueda hacer en un único contenedor, pero puedo ver intuitivamente por qué es necesario. Como resultado, sería más adecuado para varios foros autoalojados más pequeños y tranquilos.
Tu respuesta definitivamente merece su propio tema (wiki) y debe estar bien señalizada.
Podría ser algo para mí ![]()
¿Esto también es aplicable cuando Discourse ya se está ejecutando como «monositio» y uno desea convertirlo a multisitio?
¡Muchas gracias por el trabajo!
¡Gracias! Esto todavía está alineado con la práctica multisitio compatible actual; nada aquí entra en conflicto con el funcionamiento actual de Discourse multisitio.
Sí, los mismos pasos se aplican al convertir una instalación de monositio existente a multisitio: un monositio es efectivamente un multisitio con un único sitio predeterminado. Puedes habilitar DISCOURSE_MULTISITE, agregar multisite.yml (incluyendo el sitio existente), reconstruir una vez y ejecutar rails multisite:migrate en su lugar.
Si hay algo aquí que ya no refleja las mejores prácticas, estaré encantado de actualizar el manual de procedimientos; el objetivo es una lista de verificación lineal y compatible que evite el ensayo y error.