Vincent Bakker
Joined
650 Experience
6 Lessons Completed
0 Questions Solved
Activity
Hi guys,
Weirdly enough the thing that was holding me back the most from moving away from Heroku to Hatchbox was the ease of use of the Heroku CLI in my daily workflow.
So this weekend I decided to hack together the following rake tasks to mimic heroku logs, heroku console and heroku deploy.
Display logs for the app.
rake hatchbox:logs
Connect to Rails console
rake hatchbox:console
Deploy latest version
rake hatchbox:deploy
Let me know if there is anything that needs to be changed or improved or if this is horrifically insecure. Next step might be to convert this into a gem and find a better place for the credentials.
require 'net/http'
server = "xxxx"
app = "xxx"
webhook = "xxx"
namespace :hatchbox do
desc "Display logs for the app"
task logs: :environment do
command = "ssh deploy@#{server} journalctl --user --unit=#{app.parameterize}-server -n 100 --no-pager"
puts "Running #{command}..."
exec(command)
end
desc "Connect to Rails console"
task console: :environment do
command = "ssh -t deploy@#{server} 'cd #{app}/current && bundle exec rails console'"
puts "Running #{command}..."
exec(command)
end
desc "Deploy latest version"
task deploy: :environment do
uri = URI.parse(webhook)
command = Net::HTTP.post(uri, 'latest=true')
puts "Deploying latest commit"
end
end