Entorno de desarrollo: ¿método recomendado para iniciar la primera cuenta de administrador sin correo electrónico?

He estado experimentando con la imagen Docker discourse/discourse_dev (en un portátil con Windows 11) y noté un pequeño punto de fricción en el flujo de trabajo del desarrollador.

Al ejecutar Discourse en modo de desarrollo sin configurar el correo electrónico de salida:
1. Se puede acceder a la página de registro/inicio de sesión a través de Ember CLI (localhost:4200).
2. Se puede crear una cuenta de usuario.
3. Pero el inicio de sesión está bloqueado porque se requiere la confirmación por correo electrónico.

La solución provisional parece ser activar manualmente la cuenta en la consola de Rails, por ejemplo:

u = User.find_by(username: "admin")
u.approved = true
u.email_tokens.update_all(confirmed: true, expired: true)
u.save!

Esto funciona, pero me preguntaba:

¿Existe un flujo de trabajo de desarrollador recomendado para configurar la primera cuenta de administrador cuando no se configura el correo electrónico?

Por ejemplo:
• ¿Deberían los desarrolladores configurar normalmente SMTP incluso en desarrollo?
• ¿Existe una tarea de ayuda para esto (rake admin:create, etc.)?
• ¿Tendría sentido que el contenedor de desarrollo permitiera el inicio de sesión del primer usuario sin confirmación de correo electrónico?

Pregunto principalmente para documentar un proceso de configuración más sencillo para los nuevos desarrolladores que experimentan con el contenedor de desarrollo.

Sí la hay:

¡Gracias! Eso lo soluciona; no me había topado con bin/rails admin:create mientras experimentaba con el contenedor discourse_dev.

Lo que inicialmente me confundió fue que el flujo de registro normal de la interfaz de usuario funciona hasta el punto de crear la cuenta, pero luego el inicio de sesión es bloqueado por la confirmación del correo electrónico si no se configura SMTP.

Para alguien que solo está explorando el entorno de desarrollo, eso hace que parezca que el flujo de inicio de sesión está roto a menos que se conozca la tarea de ayuda.

Podría ser útil mencionar explícitamente bin/rails admin:create en la documentación de configuración de desarrollo para el contenedor de desarrollo de Docker, ya que los nuevos colaboradores a menudo no tendrán SMTP configurado.

No estoy seguro de que sea necesario en esa guía porque dice

Así que crear el usuario administrador parece ser parte del flujo de trabajo ya

Si necesita acceso al correo electrónico en su entorno de desarrollo, también puede ejecutar mailhog.

Todo lo que tiene que hacer es abrir una nueva línea de comandos en su directorio de Discourse y ejecutar mailhog. Luego, si visita localhost:8025, podrá ver los correos electrónicos que normalmente se enviarían, sin necesidad de configurar nada.

Gracias a ambos, tiene sentido.

Creo que la distinción es que el camino documentado d/boot_dev --init ya crea el usuario administrador, así que mi confusión surgió al experimentar con el entorno de desarrollo en lugar de seguir ese flujo de inicialización exacto de principio a fin.

El consejo sobre MailHog también es útil. No había notado que la configuración de desarrollo podía capturar los correos de confirmación localmente mediante mailhog y localhost:8025, lo que explica el flujo de trabajo previsto si alguien utiliza la ruta normal de registro/confirmación por correo.


Parece que el modelo mental más fluido es:

  1. Para la configuración estándar de Docker en desarrollo, usa d/boot_dev --init y crea la cuenta de administrador cuando se te solicite.
  2. Si pruebas flujos de correo/registro, ejecuta mailhog y visualiza los mensajes en localhost:8025.
  3. Si es necesario por separado, bin/rails admin:create es el asistente manual para crear una cuenta de administrador.

Eso aclara la confusión, gracias.


Una pequeña pregunta aparte mientras exploro la interfaz de usuario de desarrollo: ¿para qué sirven los pequeños botones con iconos en la barra de herramientas vertical? Los veo en la interfaz, pero no estoy seguro inmediatamente si son controles normales para el usuario, atajos de administrador o ayudas de desarrollo/depuración.

¿Esos?
image

Esa es la barra de herramientas de desarrollador. Puedes activar o desactivar el modo seguro, la localización detallada y los cambios próximos. También puedes mostrar las salidas y bloques de complementos.