¡Hola a todos! He intentado varias veces poner Discourse en funcionamiento en Google Cloud. Actualmente estoy en mi tercer intento creando una instancia de VM (Ubuntu 18.04 minimal) e instalando Discourse manualmente a través de la terminal. Siguiendo la guía, todo parece estar bien, pero al terminar ./discourse-setup, no puedo acceder al sitio.
También intenté instalar Discourse con las soluciones de despliegue “un solo clic” del Marketplace de Google (la propia de Google y la de Bitnami). Al hacerlo, sí pude acceder a la página de bienvenida de Discourse.
Sospecho que hay algún problema con Google y los puertos (y que este problema se evitó con las instalaciones preconfeccionadas), pero sé muy poco de todo esto para depurarlo por mi cuenta. ¿Alguna idea?
¿Podría esto estar relacionado con el firewall?
Según mi entendimiento, G Cloud requiere que marquemos dos casillas para permitir el acceso público a una VM. Esto se puede configurar más tarde si fuera necesario.
Ahora pienso que quizás no estoy ejecutando un servidor web. ¿Necesito instalar Nginx antes o después de instalar Discourse, o algo así? Siguiendo un hilo de pensamiento de este tema, idéntico a mi problema.
Bien, empiezo a pensar que este es el problema. Parecía que Nginx estaba instalado, pero no se estaba ejecutando. Maté los PIDs 14311 y 14295 de docker-proxy y luego ejecuté Nginx. Ahora Nginx está vinculado al puerto 80 y, cuando accedo a mi sitio, ¡Nginx me da la bienvenida!
Ahora a hacer que Docker/Discourse vuelva a funcionar.
También encontré esta guía sobre la instalación de Discourse/Nginx en una versión anterior de Ubuntu. Parece que cambiaron el puerto de Docker, del puerto 80 por alguna razón. Quizás haya algún conflicto aquí.
De alguna manera logré tener tanto Nginx ejecutándose en el puerto 80 como docker-proxy escuchando en los puertos 8060 para http y 9443 para https (como sugiere otro tutorial). Pero al lograr esto, ahora estoy perdido de nuevo. Discourse parece un foro tan agradable, pero aparentemente imposible de instalar en Google Cloud para principiantes como yo.
No es necesario ejecutar un servidor web dedicado a menos que planees usar el servidor para algo más que alojar Discourse, ya que Discourse incluye un servidor Nginx integrado. ¿Podrías confirmar que tu servidor tiene asignada una dirección IP pública y que está configurado para permitir conexiones externas a los puertos 22, 80 y 443?
Sí. Mi instancia de VM en Google tiene una dirección IP pública y permite tráfico en los puertos 22, 80 y 443.
Supongo que esto también se demostró cuando maté los PIDs del proceso docker-proxy (en los puertos 80 y 443), inicié Nginx (en el puerto 80) y pude acceder a la página de inicio de Nginx en mi sitio.
Esto indica que hay un problema con la propia instalación. Si se trata de una instalación nueva, probablemente sea más fácil simplemente eliminar la máquina virtual y configurarla de nuevo.
De hecho, ya lo he instalado 3 veces y los puertos siempre quedan sin asignar. He realizado tres instalaciones exitosas, pero nunca he podido acceder al foro. Así que estoy considerando usar la versión de Google (que funciona, pero no me permite configurar SMTP) y luego buscar una forma de configurar SMTP desde esa versión.
¿Puedo configurar SMTP de alguna manera después de completar la instalación?
Siguiendo el “Paso 11” en este enlace, pude [crear, porque no existía, y] editar el archivo discourse.conf. Después de hacerlo, ¿aparentemente podría reiniciar el “servicio discourse” y probar mis configuraciones de correo electrónico?
¿Eso significa que no tengo que reinstalar Discourse, correcto?
Sin embargo, al observar mis servicios en ejecución, no veo nada llamado “discourse”, aunque mi foro de Discourse obviamente está en funcionamiento.
Lo siento, no tengo ni idea de cómo está configurada la imagen de Google Cloud. He realizado más de una docena de instalaciones (incluida una la semana pasada) y estoy bastante seguro de que probablemente se deba a cómo está configurada tu VM.
Estos son mis pasos de preparación antes de seguir la Guía de instalación oficial:
Configurar Compute Engine para permitir el tráfico HTTP y HTTPS.
Configurar DNS y confirmarlo.
Asegurar la conectividad con tu VM a través de SSH.
Puedo asegurar que el proceso funciona.
PD: Por lo general, uso la versión mínima de Ubuntu en Gcloud para instalar Discourse.
Hmm. Qué extraño. Pero gracias por confirmar que en Google Cloud es realmente posible. También creo que Discourse se instala bien, y que el problema son la VM y los puertos. Entonces, le daré un cuarto intento mañana. Aunque ya hice esos pasos de preparación cada vez. Gracias, Bhanu.
Lo revisaré ahora. Acabo de eliminar las instancias y el proyecto antiguos, y he iniciado un nuevo proyecto e instancia en Google Cloud. Intentaré instalar Discourse ahora y informaré sobre los puertos verificados.
Repetí el mismo proceso una vez más, pero esta vez fui más cuidadoso con cada paso. Borré mi instancia y proyecto en Google Cloud y comencé con un proyecto nuevo.
Luego creé un nuevo proyecto y una nueva instancia: Ubuntu 18.04 LTS minimal, con HTTP/HTTPS habilitado. Antes de seguir la guía oficial, vinculada anteriormente, hice lo que dijo Bhanu y probé la conectividad. Seguí el “tutorial de bienvenida” de Google Cloud, que también implica probar un script de servidor Python en el puerto 80, etc.
Durante el proceso de la “guía oficial”, fui muy cuidadoso configurando SMTP. Por alguna razón, decidí no usar Mailgun y, en su lugar, terminé usando Sendinblue, ¡que funciona genial!
Realmente no sé cuál fue la diferencia esta vez, pero ahora funciona. ¡Gracias por debatir conmigo en el hilo!
No sé por qué no puedo editar mi publicación anterior, pero el moderador podría fusionarlas.
Solo quería añadir que creo que mi problema y la solución PODRÍAN haber sido que estaba demasiado ansioso.
Debido a que instalé un plugin defectuoso, recientemente tuve que borrar y reinstalar mi instancia de Discourse. Cuando inicié esta nueva instancia, obtuve una nueva dirección IP. Así que fui a mi servicio de hosting, actualicé mi puntero A/DNS, que apunta a mi subdominio discourse.mydomain.com hacia la IP de mi instancia de Google Cloud, y luego volví a mi SSH de Google Cloud para ejecutar la configuración.
Cuando ejecutas ./discourse-setup por primera vez, la configuración verifica la capacidad de vincularse a los puertos 80 y 443. Pero por alguna razón, nuevamente se negó a vincularse a los puertos 80 y 443. Consulté el DNS en who.is y el subdominio se resolvió correctamente a la IP y todo lo demás, pero aún así no funcionó. Intenté ejecutar ./discourse-setup tres veces, sin éxito. Verifiqué con netstat -ltnpu, nada especial. Esperé 5 minutos más, lo ejecuté por cuarta vez y ahora funcionó.
No puedo editar mi publicación anterior. Pero en realidad tuve problemas para instalarlo de nuevo. Esta vez también agregué las siguientes excepciones en mi firewall:
Creo que no es necesario configurar ninguna regla de salida, ya que todos los puertos están abiertos de forma predeterminada, excepto el puerto 25, que siempre está bloqueado.