Crear cuenta solo para correos electrónicos registrados en mi base de datos externa

No soy un experto en Discourse, pero hay muchas formas de manejar esto y aquí hay una que espero podría funcionar y que intentaría explorar:

  1. Requerir aprobación para nuevos usuarios de Discourse.
  2. Desarrollar un script en tu sitio web remoto o en un entorno sin servidor que consulte tu base de datos para una persona y luego llame a la API de Discourse para aprobar o rechazar al nuevo usuario.
  3. Configurar Discourse para que realice una llamada webhook al script cuando haya un nuevo usuario.
  4. Personalizar la redacción de Discourse para describir mejor a tus usuarios lo que está sucediendo.

Básicamente, Discourse tiene buenos webhooks y una API sólida, por lo que puedes usarlos mientras escribes tu script personalizado de forma remota en el lenguaje con el que te sientas más cómodo.

Si estás dispuesto a escribir un complemento de Discourse en Ruby, eso también funcionaría, pero personalmente no lo haría, así que encontraría esta opción más sencilla.