Acabo de configurar mi primera instancia de Discourse con éxito, aunque tuve algunos problemas en el camino. Ejecuto Debian Stretch y estaba siguiendo la guía de instalación con Docker.
Durante la configuración, el script verifica si el nombre de dominio que ingresaste realmente apunta a esa máquina. Lo hace utilizando nc (netcat). Descubrí que ese era mi problema: no tenía netcat instalado; una instalación sencilla solucionó el inconveniente.
Sin embargo, creo que esto es un error en el script de instalación. Una función simple para verificar si nc está instalado debería solucionarlo, o tal vez incluso podrías dar al usuario la opción de omitir la verificación por completo, lo que también resolvería el problema.
Esto ya se ha mencionado antes, aunque netcat discourse-setup no logra encontrarlo.
La verificación solo emite una advertencia, que puedes ignorar si lo deseas, por lo que no lo considero un error.
He considerado que discourse-setup instale nc, pero que discourse-setup instale algo que quizás nunca se necesite parece algo que debe evitarse.
Quizás lo adecuado si nc no está instalado sea omitir la prueba y sugerir que, si se desea realizar la prueba, el usuario instale nc por sí mismo, incluso ofreciendo apt install nc.
Debo disentir respetuosamente; esto realmente huele a un bug. Sí, estás imprimiendo un mensaje de advertencia que se puede ignorar, pero para alguien que instala Discourse por primera vez, quieres hacerlo lo más sencillo posible, lo que significa que no tengan que profundizar en el código fuente y descubrir que necesitan instalar netcat para que funcione sin errores. Cualquier error confundirá al usuario o al administrador del sistema, lo que les hará perder tiempo averiguando por qué no funciona y señalando con git blame a quien lo escribió.
Esto se puede evitar fácilmente con una verificación sencilla antes de ejecutar la comprobación de IP, así:
Verificar si netcat está instalado.
Continuar si lo está.
Si no lo está, imprimir un mensaje de advertencia y ofrecer al usuario una opción de sí/no para continuar sin la comprobación o abortar para que puedan instalar netcat (o incluso ofrecer instalarlo por ellos con apt/yum/pacman).
Otra opción que funcionaría en más sistemas (aunque no en todos) que los actuales sería usar el stack /dev/tcp. Más información sobre cómo hacerlo se encuentra aquí. Esto lo solucionaría para Debian y funciona en Ubuntu; no lo he probado en otras distribuciones.