開発環境:メールなしで最初のアドミンアカウントをブートストラップする推奨方法?

Windows 11ラップトップ上で discourse/discourse_dev Dockerイメージを試していて、開発ワークフローにおける小さな摩擦点に気づきました。

送信メールを設定せずに開発モードでDiscourseを実行すると、次のようになります。

  1. Ember CLI (localhost:4200) 経由でサインアップ/ログインページにアクセスできます。
  2. ユーザーアカウントを作成できます。
  3. しかし、メール認証が必要なため、ログインがブロックされます。

回避策は、例えばRailsコンソールで手動でアカウントを有効にすることのようです。

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

これは機能しますが、次のことが気になりました。

最初の管理アカウントをメールを設定せずにブートストラップするための推奨される開発ワークフローはありますか?

例えば:

  • 開発者は通常、開発環境でもSMTPを設定する必要がありますか?
  • これのためのヘルパータスク(rake admin:createなど)はありますか?
  • 開発コンテナがメール認証なしで最初のユーザーログインを許可するようにするのは理にかなっていますか?

主に、開発コンテナを試している新しい開発者向けに、よりスムーズなセットアッププロセスを文書化するために尋ねています。

はい、あります:

「いいね!」 2

ありがとうございます!それで解決しました。discourse_dev コンテナを試しているときに、bin/rails admin:create に遭遇していませんでした。

最初に混乱したのは、通常の UI サインアップフローはアカウント作成の時点までは機能しますが、SMTP が設定されていない場合、ログインがメール認証によってブロックされることでした。

開発環境を調査している人にとっては、ヘルパータスクについて知らない限り、ログインフローが壊れているように見えてしまいます。

新しいコントリビューターは通常 SMTP を設定していないため、Docker 開発コンテナの開発セットアップドキュメントbin/rails admin:create について明示的に言及すると役立つかもしれません。

そのガイドで本当に必要かどうかわかりません。なぜなら、次のように書かれているからです。

管理者ユーザーの作成はすでにワークフローの一部であるように思われます

「いいね!」 1

開発環境でメールアクセスが必要な場合は、mailhog を実行することもできます。

Discourse ディレクトリで新しいコマンドラインを開き、mailhog を実行するだけです。その後、localhost:8025 にアクセスすると、通常送信されるはずのメールを確認でき、何も設定する必要はありません。

「いいね!」 2