diff options
Diffstat (limited to 'lib/tasks/mastodon.rake')
-rw-r--r-- | lib/tasks/mastodon.rake | 55 |
1 files changed, 38 insertions, 17 deletions
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake index d6c9e2d01..13df76f91 100644 --- a/lib/tasks/mastodon.rake +++ b/lib/tasks/mastodon.rake @@ -224,24 +224,43 @@ namespace :mastodon do prompt.say "\n" loop do - env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q| - q.required true - q.default 'smtp.mailgun.org' - q.modify :strip - end + if prompt.yes?('Do you want to send e-mails from localhost?', default: false) + env['SMTP_SERVER'] = 'localhost' + env['SMTP_PORT'] = 25 + env['SMTP_AUTH_METHOD'] = 'none' + env['SMTP_OPENSSL_VERIFY_MODE'] = 'none' + else + env['SMTP_SERVER'] = prompt.ask('SMTP server:') do |q| + q.required true + q.default 'smtp.mailgun.org' + q.modify :strip + end - env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q| - q.required true - q.default 587 - q.convert :int - end + env['SMTP_PORT'] = prompt.ask('SMTP port:') do |q| + q.required true + q.default 587 + q.convert :int + end - env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q| - q.modify :strip - end + env['SMTP_LOGIN'] = prompt.ask('SMTP username:') do |q| + q.modify :strip + end - env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q| - q.echo false + env['SMTP_PASSWORD'] = prompt.ask('SMTP password:') do |q| + q.echo false + end + + env['SMTP_AUTH_METHOD'] = prompt.ask('SMTP authentication:') do |q| + q.required + q.default 'plain' + q.modify :strip + end + + env['SMTP_OPENSSL_VERIFY_MODE'] = prompt.ask('SMTP OpenSSL verify mode:') do |q| + q.required + q.default 'peer' + q.modify :strip + end end env['SMTP_FROM_ADDRESS'] = prompt.ask('E-mail address to send e-mails "from":') do |q| @@ -261,7 +280,8 @@ namespace :mastodon do :user_name => env['SMTP_LOGIN'].presence, :password => env['SMTP_PASSWORD'].presence, :domain => env['LOCAL_DOMAIN'], - :authentication => :plain, + :authentication => env['SMTP_AUTH_METHOD'] == 'none' ? nil : env['SMTP_AUTH_METHOD'] || :plain, + :openssl_verify_mode => env['SMTP_OPENSSL_VERIFY_MODE'], :enable_starttls_auto => true, } @@ -271,6 +291,7 @@ namespace :mastodon do mail = ActionMailer::Base.new.mail to: send_to, subject: 'Test', body: 'Mastodon SMTP configuration works!' mail.deliver + break rescue StandardError => e prompt.error 'E-mail could not be sent with this configuration, try again.' prompt.error e.message @@ -302,7 +323,7 @@ namespace :mastodon do prompt.say 'Running `RAILS_ENV=production rails db:setup` ...' prompt.say "\n" - if cmd.run!({ RAILS_ENV: 'production' }, :rails, 'db:setup').failure? + if cmd.run!({ RAILS_ENV: 'production', SAFETY_ASSURED: 1 }, :rails, 'db:setup').failure? prompt.say "\n" prompt.error 'That failed! Perhaps your configuration is not right' else |