One question about your approach:
Does Capistrano handle starting your processes on init at all?
Is it possible to write an init script [on the server running Discourse] that calls cap:deploy to start and stop the server?
I’m not familiar w/ Capistrano, and from your guide it’s not clear if you can call
cap deploy from the server, or if it has to be called from a developer’s box.
I agree that Capistrano is a great “rubyish” tool, but I’d feel more comfortable having Discourse start when the server starts for two reasons:
- Uptime SLAs are great and all, but outages happen. If/when the server comes back online, it’d be nice for Discourse to do the same
- As I’m sure you’ve seen: Digital Ocean lets you image machines and deploy from those images. (Which is fast, gotta love SSDs.) – It’d be nice to spin up extra instances and have them up and running without even logging into the box. Doing something like this behind a reverse proxy? You could easily scale-out your network under times of high load.
Great writeup though. I’ve never used Capistrano before and it was really easy to follow along.