Failing to bootstrap on DO droplet w/mailjet

Hi
Im pulling my hair out a bit here.
I following the standard install instructions, have setup mailjet etc but the bootstrap fails every time.

heres the setup, I just cant see what Im missing
Any ideas?

Thanks

Does this look right?

Hostname      : forum.mydomain.com
Email         : forumadmin@mydomain.com
SMTP address  : in-v3.mailjet.com
SMTP port     : 587
SMTP username : b91xxxxxxd3222d809xxxxxxe3de52d
SMTP password :xxxxxx5b75ecdf24f31c2axxxxxx6903
Let's Encrypt : PASSWORD (SECRET KEY)

then

FAILED

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

Pups::ExecError: /bin/bash -c "if [[ ! \"$LETSENCRYPT_ACCOUNT_EMAIL\" =~ ([^@]+)@([^\.]+) ]]; then echo \"LETSENCRYPT_ACCOUNT_EMAIL is not a valid email address\"; exit 1; fi" failed with return #<Process::Status: pid 5329 exit 1>

Location of failure: /pups/lib/pups/exec_command.rb:112:in `spawn'

exec failed with the params {"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

** FAILED TO BOOTSTRAP ** please scroll up and look for earlier error messages, there may be more than one.

./discourse-doctor may help diagnose the problem.

Why would the email in the let’s encrypt field be a password or secret key? It’s supposed to be an email address.

2 Likes

The script won’t let me enter anything for LETS ENCRYPT.
As soon as I enter the SMTP username and password, off it goes.

Yes it seems to be the Lets Encrypt variable but as I said above, the install script will not permit an opportunity to provide an email address. As soon as the SMTP password is received, it seems to jump past that stage, and pops an error.

You can see that here…

Hostname for your Discourse? [forum.uaptn.com]: 
Email address for admin account(s)? [forumadmin@uaptn.com]: xxxxxxxxe@protonmail.com
SMTP server address? [in-v3.mailjet.com]: 
SMTP port? [587]: 
SMTP user name? [b91xxxxxxxxxxxxxxxxxxde52d]: 
SMTP password? [1d2xxxxxxxxxxxxxxxxxxxxxxxxxxxx903]: 
./discourse-setup: line 438: [: too many arguments

Checking your domain name . . .
Connection to forum.uaptn.com succeeded.

Does this look right?

Hostname      : forum.uaptn.com
Email         : xxxxxxxxx@protonmail.com
SMTP address  : in-v3.mailjet.com
SMTP port     : 587
SMTP username : b91xxxxxxxxxxxxxxxxxxxxxe52d
SMTP password : 1d2cxxxxxxxxxxxxxxxxxxx5086903
Let's Encrypt : PASSWORD (SECRET KEY)

ENTER to continue, 'n' to try again, Ctrl+C to exit:
1 Like

Enter an email address here instead of a Secret Password.

That email address is used to create an account in letsencrypt to get SSL certificate for discourse.

1 Like

I don’t know how you’ would not be able I enter the let’s encrypt email address. Are you pasting an extra return?

1 Like

that sir, is a thought, let me try

1 Like

its not that. the script just breezes past the Lets Encrypt bit, as soon as I enter the password it pops that line 438: [: too many arguments and continues

Do your password has special characters? Try to enter a fake password without special characters like 123456 in the password and see if it asks the Let’s Encrypt email.

no it doesn’t, its the generated p/word straight from mailjet but Ill try entering fake one.

no dice. tried that - same error.

Perhaps the script is not asking because it’s already in your app.yml and then gives the error due to this (because the email is already wrong in the file app.yml).

Try changing the email in the file manually and see if it works (nano containers/app.yml).

The line that gave the error tests to see if the Let’s Encrypt email is not empty to show it to you and ask if you want to change it, but because the condition doesn’t wrap the variable in double quotes, the value that is in your app.yml is expanded and give the error of Too many arguments.

I think that if the discourse team wrapped the variable in double quotes would help to avoid cases like those, but they should be rare anyway (probably the 1st time you run the setup, the value was set incorrectly).

1 Like

that worked :+1: - as in it offers me that step after changing app.yml manually

fingers crossed for the bootstrap

thanks. a bunch

1 Like