¿Cuál es la mejor manera de instalar Discourse Forum en una VM de Proxmox y exponerlo en Internet?

Hola, soy nuevo en todo esto de los servidores.

Por favor, ayúdame a configurar Discourse en una máquina virtual (VM) o contenedor LXC de Proxmox.
¿O existe alguna imagen preconfigurada en algún lugar para importar?

Muchas gracias.

@pfaffman podría tener un procedimiento de instalación de pago que pueda ejecutar. Vale cada centavo.

¡Gracias, Alex!

Lo primero sería consultar la Instalación estándar oficial de Discourse, pero, dado lo que es Proxmox, creo que la respuesta es “pregúntales a ellos”. Sin embargo, si buscas, puedes encontrar Trying to install Discourse in an Ubuntu VM on Proxmox

No estoy seguro de qué piensas que hace especial que esté en una máquina virtual de Proxmox. Instala Ubuntu 18 en una máquina virtual. Expone los puertos 80 y 443 a Internet. Sigue la documentación de Discourse enlazada arriba. ¿En qué parte de esto necesitas ayuda?

Soy totalmente nuevo en esto de los servidores, pero estoy aprendiendo.
Como ahora: → No hay diferencia en qué hipervisor use. GRACIAS.

En la guía dice:
Debes tener acceso SSH (yo lo tengo con IP local y PuTTY) a
un servidor Linux de 64 bits con soporte para Docker.
(¿Significa que Docker no debe estar instalado antes de comenzar la instalación?)

¿Debería ser una máquina virtual o también es posible un contenedor (CT)?
¿Qué me recomiendas?

¿Qué distribución de Linux me recomendarías?

Creo que el resto está claro en la guía, pero veamos.

Puede estar instalado o no. Si no está instalado, el script de instalación lo instalará.

No estoy seguro de que Docker funcione correctamente en un CT: estarías poniendo un contenedor dentro de otro contenedor, lo cual podría causar problemas. Mejor usa una VM.

La guía dice:

El valor predeterminado de la versión LTS actual compatible de Ubuntu Server funciona bien

A menos que tengas algo en contra de Ubuntu, te recomendaría usarlo (es lo que yo uso para mis sitios de Discourse). La versión LTS actual es la 20.04. Mi publicación anterior decía “Ubuntu 18” porque eso es lo que estoy usando (y aún tiene soporte durante otros tres años, así que no tengo prisa por cambiar), pero para una nueva instalación, probablemente sea mejor usar la versión actual.

La VM estará entonces en mi red con la IP
¿Un gestor inverso nginx está dirigiendo el dominio de Discourse desde el router hacia la IP de la VM en el puerto 80?
¿Cuál debería ser la configuración?

Creo que debo solicitar un certificado de Let’s Encrypt antes de la instalación para que esta conexión funcione.

Creo que probablemente tengas razón. También necesitarías desactivar la integración de Let’s Encrypt incluida en la instalación de Discourse. Sé que es posible, pero no he tenido muchas razones para hacerlo. Sin embargo, estoy seguro de que una búsqueda por aquí encontrará instrucciones al respecto.

No estoy seguro de si puedo manejar el cambio de un script. (suena peligroso para un principiante)

¿Y si reenvío los puertos 80 y 443 directamente a la VM para la instalación y, una vez terminado,
vuelvo a cambiar los puertos 80 y 443 a RevManager?

¿O solo el puerto 80?

También creo que podría ser una buena idea, especialmente en esta situación, que si alguien ya tiene un certificado, simplemente (como principiante no puedo decir qué tan complicado es) se le haga una pregunta “¿Obtener un certificado? S/N”
en el script.

¿Qué opinas?
¿Sería perfecto?

Eso es lo que tendrás que hacer. Discourse-setup no funcionará para tu configuración. Has elegido un camino decididamente difícil. Hay guías de cómo instalar con otros servidores web.

Recomendaría intentar primero una instalación más sencilla.

¡GRACIAS!
¿Puedes decirme por favor cómo cambiar el script?
Lo intentaré.
Tengo que aprender estas cosas.

¿Qué te parece esta propuesta?

¡O esto sería perfecto!

Eso funcionaría y permitiría que la instalación automatizada se complete sin problemas. El problema es que, de esta manera, tu instalación de Discourse esperará gestionar su propio certificado TLS, algo que no podrá hacer una vez dejes de reenviar los puertos 80 y 443 a esa máquina virtual. Lo que necesitas hacer es indicarle a Discourse que no intente obtener un certificado ni gestionar TLS en absoluto. Creo (aunque no lo he probado) que puedes hacerlo comentando las líneas web.ssl.template.yml y web.letsencrypt.ssl.template.yml en app.yml. Run other websites on the same machine as Discourse también contiene información relevante y parece coincidir con esta idea.

No hay una razón real para hacer eso, ya que es trivial (si no estás complicando las cosas en exceso, como estás haciendo) obtener un nuevo certificado; el hecho de que ya tengas uno existente realmente no importa. El factor que complica tu configuración prevista no es que ya tengas un certificado, sino que este arreglo no permitirá que Discourse gestione su propio certificado.

GRACIAS, lo probaré.
Significa:
Redirigir los puertos 80 y 443 del router a la IP de la VM.
Luego puedo instalar con el script normal.
¿Una vez finalizada la instalación, edito los archivos?

Otros requisitos

Nombre de host para tu Discourse? [discourse.example.com]:
NoIp.domain.com de No-IP

Dirección de correo electrónico para la(s) cuenta(s) de administrador? [ me@example.com , you@example.com]:
→ ¿Puedo usar aquí también una dirección de correo de 1und1 (IONOS)
me@MI.Dominio.com
diferente de NoIp.domain.com?

Dirección del servidor SMTP? [smtp.example.com]: → de IONOS
Puerto SMTP? [587]: → de IONOS
Nombre de usuario SMTP? [user@example.com]: → es el correo electrónico
Contraseña SMTP? [pa$word]: → OK
Correo electrónico de la cuenta de Let’s Encrypt? (Pulsa ENTER para omitir) [me@example.com]: Correo de la cuenta de No-IP ¿Pero sin contraseña?

No, me refiero a editar el archivo antes de que se ejecute la instalación. Como se mencionó anteriormente, no podrás usar el script discourse-setup.

Puedes usar cualquier dirección de correo que desees, independientemente del dominio.

Asegúrate de que ese servidor permita el envío de correos masivos, si alguna vez planeas que esto sea un foro público.

¿Por qué necesitaría una contraseña? El único propósito de ese correo es que Let’s Encrypt te notifique sobre la próxima expiración del certificado (lo cual realmente nunca debería ocurrir). Además, tu contenedor no debería estar obteniendo ningún certificado en absoluto.

GRACIAS
Creo que puedo usar el script después de recopilar toda la información
Haré un resumen de mi configuración que estableceré más tarde

Espero con interés ver tu progreso.

Esto debería funcionar con el script.
En lugar de un VPS alquilado, uso una VM en la red.

Domain.xx CNAME a Fritz!Domain
Fritz!Box reenvía los puertos 80 y 443 a la IP del Administrador Inverso
El Administrador Inverso reenvía
Domain.xx a los puertos 80 y 443 hacia la IP de la VM IP 2

Sin certificados en Domain.xx

Solo tengo Ubuntu recién instalado en la VM IP 2
¿Cómo puedo probarlo?
¿Qué opinas?