Instalación de Discourse en Lightsail

¡Hola mundo! Estoy intentando configurar mi primer foro de Discourse y necesito ayuda…

La configuración en app.yml parece correcta. He intentado reiniciar, pero Discourse no está disponible. Cualquier consejo sobre cómo comenzar a solucionar el problema sería muy apreciado.

No estoy muy seguro sobre Lightsail, pero en el caso de AWS, cuando un dominio no apunta correctamente a su IP, el 90% de las veces la culpa es de los grupos de seguridad. ¿Podrías intentar abrir los puertos necesarios (80, 443, 587, etc.) en el grupo de seguridad de AWS para tu VPS?

Gracias por tu respuesta. Abrí estos puertos (el 443 y el 587 estaban cerrados) y reconstruí la aplicación, pero sin suerte. Sospecho que el problema está en el DNS, pero no estoy seguro de qué más cambiar. Actualmente no tengo configurado becomeachiron.com, solo el subdominio. Parece probable que eso pueda romper el subdominio, pero no sé dónde alojarlo en Lightsail.

¿Cómo configuraste solo el subdominio?

Recientemente hemos migrado a Discourse y Amazon Lightsail (por lo que tengo poca experiencia).
Tengo exactamente esa configuración y pude instalar Discourse sin ningún problema.
Primero instalé la imagen AMI oficial de Debian de Amazon.
Luego configuré el nombre de host con mi dominio (discourse.becomeachiron.com).
Después actualicé Debian a la última versión.

sudo apt update
sudo apt upgrade

Y seguí las instrucciones para instalar Discourse (instalar git y luego Discourse).

Sin problemas, funcionó.

Tuve que abrir el puerto 443 para que HTTPS funcionara (y configurarlo en Discourse).

El problema que describes parece estar relacionado con DNS y la resolución de IP.

En Lightsail hay tres direcciones IP para una máquina:

  • La IP privada estática, accesible solo desde máquinas de la red interna en la misma región que tú.
  • La IP pública dinámica asignada automáticamente al iniciar la instancia, que se pierde cada vez que se detiene la máquina y se recibe una diferente al reiniciarla.
  • La IP pública estática que puedes asignar a la máquina. Esta dirección es permanente (pero te cobran por ella si la máquina está detenida; es muy poco, pero pagas por hora si la máquina no está en ejecución).

¿Has asignado una IP pública estática a tu máquina?

Si es así, esa es la IP que debes configurar en tu DNS.

Si no, debes usar la IP pública y cambiarla cada vez que inicies la máquina, ya que cambia (supongo que puedes instalar un cliente de IP dinámica en tu máquina que lo haga automáticamente, si encuentras uno compatible con el DNS de Amazon).

Luego, debes esperar un tiempo para que se propaguen los cambios en el DNS.

Parece que aún no has configurado el dominio:

 pfaffman@balloon:~$ dig +short discourse.becomeachiron.com @NS-1041.AWSDNS-02.ORG

no devuelve nada. Este enlace permitirá verificar la propagación, pero por el momento, no existe ningún registro de tu subdominio en los servidores de nombres de AWS.

No hay registro porque parece que no está usando DNS de Amazon; dice que funciona con DNS de Google.

Por lo tanto, debe configurarlo en Google.

discourse.becomeachiron.com se resuelve actualmente a 99.79.192.57

Gracias a todos por sus respuestas. Idealmente, me gustaría alojar Discourse en el dominio principal, no en un subdominio, pero cada conjunto de instrucciones que encuentro insiste en el uso de un subdominio. ¿Es esto una necesidad?

Yo también estoy trabajando en todo esto ahora mismo :slight_smile:

He leído que es posible usar el dominio sin www ni subdominio de Discourse.

Pero no es la configuración predeterminada y parece que no es tan sencillo; quizás sea mejor probar primero la forma predeterminada, como hiciste tú.

Insisto: ¿Has configurado una dirección IP estática para tu instancia de Lightsail?

Por defecto, es dinámica.

Si no es así, crea una IP estática.

Ve al panel de Lightsail, selecciona tu instancia y abre la pestaña “Red”.
Luego, selecciona “Crear IP estática”.

Tu instancia recibirá una nueva dirección IP permanente.

Después, ve a Google DNS y registra esa IP con el nombre de tu máquina.

Aquí es donde estoy ahora:

En Lightsail

  • Creé una IP estática y la asocié a mi instancia (gracias, Fernando)
  • Creé una zona DNS

En Google Domains

  • Actualicé los servidores de nombres con los de la zona DNS
  • Creé un subdominio y lo apunté a la IP estática

Discourse está configurado correctamente; puedo acceder a él mediante la IP pública. A menos que haya pasado algo por alto, ahora solo espero a que se propague.

Estás haciendo algo mal.

Tus registros SOA apuntan a servidores DNS de AWS, no a Google, y dices que estás cambiando los registros DNS en Google.

becomeachiron.com
servidor de nombres principal = ns-612.awsdns-12.net
dirección de correo responsable = awsdns-hostmaster.amazon.com
serial = 1
actualización = 7200 (2 horas)
reintento = 900 (15 minutos)
expiración = 1209600 (14 días)
TTL predeterminado = 86400 (1 día)

becomeachiron.com servidor de nombres = ns-1041.awsdns-02.org
becomeachiron.com servidor de nombres = ns-1824.awsdns-36.co.uk
becomeachiron.com servidor de nombres = ns-216.awsdns-27.com
becomeachiron.com servidor de nombres = ns-612.awsdns-12.net

Cambia tu configuración DNS en Amazon DNS, o modifica tus registros SOA para que apunten a Google si estás utilizando DNS de Google.

¡Exacto! Eso es lo que estaba diciendo. Supongo que debería haber incluido el registro de whois. Lo explicaste mejor que yo.

Así que cambia el registro de whois o actualiza los servidores de nombres de AWS.

No te había entendido, lo siento.

Estoy confundido… Me registré a través de Google Domains, pero Lightsail generó los servidores de nombres.

Puedes registrar el dominio con uno de los registradores y utilizar los servicios DNS de otro proveedor.

Cuando compras un dominio, adquieres únicamente el nombre y el registro SOA que reside en el servidor del registrador del dominio.

Los servicios DNS son independientes del proveedor del dominio.
El registro SOA indica dónde se encuentran tus servidores DNS.

Por supuesto, muchos registradores de dominios ofrecen servicios DNS incluidos en el precio, como Google Domains.

Pero has contratado servicios DNS con Amazon Lightsail, lo cual ha modificado tu registro SOA en Google.

Yo no he contratado servicios DNS con Amazon; estoy utilizando servicios DNS externos (hasta donde sé, Amazon cobra por el servicio DNS).

En ese caso, debes actualizar los registros DNS por tu cuenta en tu proveedor (en tu caso, Google).
En esta situación, debes cambiar el registro SOA a la configuración predeterminada en los DNS de Google.

O bien, puedes utilizar los servicios DNS de Amazon y actualizar los registros con ellos. En este caso, mantienes el registro SOA tal como está y utilizas las herramientas de Amazon para modificar los registros DNS.

Si estás utilizando un servicio de correo con Amazon, es posible que hayas aceptado cambiar tu registro SOA y apuntarlo a los servicios de Amazon.

Lo que esencialmente necesitas es la dirección IP pública del VPS de Lightsail y luego decidir dónde gestionar tu DNS.

Si prefieres gestionarlo a través de Amazon, puedes usar Route 53, que te proporcionará servidores de nombres que podrás actualizar en la configuración de tu dominio en el registrador (por ejemplo, Google).

O bien, puedes editar el archivo de zona actual (en la sección de gestión de DNS de tu dominio) y actualizar tu registro A allí.

Como he leído más arriba, deseas alojarlo en el dominio principal; puedo ayudarte a configurarlo. Es igual que una instalación normal y no hay ningún problema en hacerlo, ya que a veces la gente simplemente quiere tener su foro en un dominio diferente.

Por ejemplo: el foro de la comunidad de Twitter.

¡Gracias a todos de nuevo! Ya estoy en marcha: http://discourse.becomeachiron.com/

Aún estoy averiguando cómo encajan exactamente estas piezas, ya que no suelo ocuparme de temas de DNS. Ahora necesito poner en marcha mi dominio principal de alguna manera :slight_smile:

Parece que estás usando AWS Route53 para gestionar tu DNS.

Para el dominio principal, sigue estos pasos:

  1. Crea un registro Alias (A) para el dominio principal (indicado por @) apuntando a la IP de tu Lightsail.
  2. Edita tu archivo app.yml para usar el dominio principal.
  3. Reconstruye.
  4. Ejecuta un remapeo de Discourse.

Eso es todo lo que tienes que hacer.