DO Droplet 上での mailjet を伴うブートストラップ失敗

こんにちは
少し困っています。
標準的なインストール手順に従い、Mailjet などの設定も完了しましたが、ブートストラップが毎回失敗します。

設定内容は以下の通りです。何が不足しているのか分かりません。
ご助言いただけないでしょうか?

ありがとうございます。

設定はこれで正しいでしょうか?

ホスト名      : forum.mydomain.com
メールアドレス         : forumadmin@mydomain.com
SMTP アドレス  : in-v3.mailjet.com
SMTP ポート     : 587
SMTP ユーザー名 : b91xxxxxxd3222d809xxxxxxe3de52d
SMTP パスワード :xxxxxx5b75ecdf24f31c2axxxxxx6903
Let's Encrypt : PASSWORD (SECRET KEY)

その後

失敗

--------------------

Pups::ExecError: /bin/bash -c "if [[ ! \"$LETSENCRYPT_ACCOUNT_EMAIL\" =~ ([^@]+)@([^\.]+) ]]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\"; exit 1; fi" がエラーで終了しました (戻り値: #<Process::Status: pid 5329 exit 1>)

失敗の場所: /pups/lib/pups/exec_command.rb:112:in `spawn'

以下のパラメータで exec が失敗しました: {"cmd"=>["if [ -z \"$LETSENCRYPT_ACCOUNT_EMAIL\" ]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL ENV variable is required and has not been set.\"; exit 1; fi", "/bin/bash -c \"if [[ ! \\\"$LETSENCRYPT_ACCOUNT_EMAIL\\\" =~ ([^@]+)@([^\\.]+) ]]; then echo \\\"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\\\"; exit 1; fi\""]}

xxxxxxxxxxxxxxxxxxxxxxe6e31b17b7exxxxxxxxxxxxxxxxxx856eb0

** ブートストラップに失敗しました ** 上記をスクロールして、より以前のエラーメッセージを確認してください。複数のエラーが発生している可能性があります。
./discourse-doctor で問題の診断ができるかもしれません。

Let’s Encrypt フィールドのメールアドレスがパスワードや秘密鍵になる理由は何ですか?それはメールアドレスであるはずです。

LET’S ENCRYPT の入力欄に何も入力できません。
SMTP のユーザー名とパスワードを入力すると、すぐに実行されてしまいます。

はい、どうやら Let’s Encrypt に関する変数のようですが、前述の通り、インストールスクリプトではメールアドレスを入力する機会が与えられません。SMTP パスワードが入力されるとすぐに、その段階をスキップしてエラーが表示されてしまいます。

ここで確認できます…

Discourse のホスト名を入力してください? [forum.uaptn.com]: 
管理者アカウントのメールアドレスを入力してください? [forumadmin@uaptn.com]: xxxxxxxxe@protonmail.com
SMTP サーバーアドレスを入力してください? [in-v3.mailjet.com]: 
SMTP ポートを入力してください? [587]: 
SMTP ユーザー名を入力してください? [b91xxxxxxxxxxxxxxxxxxde52d]: 
SMTP パスワードを入力してください? [1d2xxxxxxxxxxxxxxxxxxxxxxxxxxxx903]: 
./discourse-setup: line 438: [: 引数が多すぎます

ドメイン名を確認しています . . .
forum.uaptn.com への接続に成功しました。

以下の内容で問題ありませんか?

ホスト名      : forum.uaptn.com
メールアドレス         : xxxxxxxxx@protonmail.com
SMTP アドレス  : in-v3.mailjet.com
SMTP ポート     : 587
SMTP ユーザー名 : b91xxxxxxxxxxxxxxxxxxxxxe52d
SMTP パスワード : 1d2cxxxxxxxxxxxxxxxxxxx5086903
Let's Encrypt : PASSWORD (SECRET KEY)

続行するには Enter キー、再試行するには 'n' キー、終了するには Ctrl+C キーを押してください:

秘密のパスワードの代わりに、ここにメールアドレスを入力してください。

このメールアドレスは、Let’s Encrypt にアカウントを作成し、Discourse 用の SSL 証明書を取得するために使用されます。

Let’s Encrypt のメールアドレスを入力できない理由がわかりません。余計な改行を貼り付けていませんか?

なるほど、その考えはいいですね。試してみましょう。

それは違います。スクリプトはパスワードを入力するとすぐに Let’s Encrypt の処理を素通りし、「line 438: [: too many arguments」というエラーを表示して続行してしまいます。

パスワードに特殊文字が含まれていますか?123456 のような特殊文字を含まない仮のパスワードを入力し、Let’s Encrypt のメールアドレスの入力を求められるか確認してください。

いいえ、違います。Mailjet から直接生成されたパスワードですが、仮のパスワードを試してみます。

だめでした。試しましたが、同じエラーです。

おそらく、スクリプトが質問していないのは、すでに app.yml に記述されているためであり、この理由 でエラーが発生しているのでしょう(app.yml ファイル内にメールアドレスがすでに誤って設定されているため)。

ファイル内のメールアドレスを手動で変更して動作を確認してみてください(nano containers/app.yml)。

エラーが発生した行 は、Let’s Encrypt のメールアドレスが空でないかを確認して表示し、変更するかどうかを尋ねるためのものです。しかし、条件式で変数を二重引用符で囲んでいないため、app.yml にある値が展開され、Too many arguments というエラーが発生します。

Discourse チームが変数を二重引用符で囲んでいれば、このようなケースを回避できたかもしれませんが、いずれにせよ稀なケースでしょう(おそらく設定を初めて実行した際に、値が誤って設定されたのだと思います)。

それで動きました :+1: - 具体的には、app.yml を手動で変更した後、そのステップが提供されるということです

ブートストラップがうまくいくことを祈っています

ありがとうございます。