class MobileWorkflow::Cli::DokkuBackend

Public Class Methods

new(dokku_host:, app_name:) click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 3
def initialize(dokku_host:, app_name:)
  @dokku_host = dokku_host
  @dokku_app_name = app_name.gsub("_", "-")
end

Public Instance Methods

configure_activestorage() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 18
def configure_activestorage
 
end
create() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 8
def create
  remote_command "dokku apps:create #{@dokku_app_name}"
  remote_command "dokku postgres:create #{@dokku_app_name}"
  remote_command "dokku postgres:link #{@dokku_app_name} #{@dokku_app_name}"
  remote_command "dokku domains:enable #{@dokku_app_name}"
  remote_command "dokku letsencrypt #{@dokku_app_name}"

  local_command "git remote add dokku dokku@#{@dokku_host}:#{@dokku_app_name}"
end
deploy() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 22
def deploy
  local_command "git push dokku master"
end
destroy() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 32
def destroy
  remote_command "dokku apps:destroy #{@dokku_app_name}"
end
dokku_app_host() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 36
def dokku_app_host
  remote_command "dokku url #{@dokku_app_name}"
end
notifications_endpoint() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 40
def notifications_endpoint
  "https://#{dokku_app_host}/sns_notifications"
end
sync_dotenv() click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 26
def sync_dotenv
  env = File.read(".env").split.join(" ")
  puts "Setting env: #{env}"
  local_command "dokku config:set #{env}"
end

Private Instance Methods

local_command(command) click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 50
def local_command(command)
  puts "Running: #{command}"
  output = `#{command}`
  puts "Output: #{output}" unless output.blank?
  return output
end
remote_command(command) click to toggle source
# File lib/mobile_workflow/cli/dokku_backend.rb, line 45
def remote_command(command)
  command = "ssh -t ubuntu@#{@dokku_host} '#{command}'"
  local_command(command)
end