For people with an interest in the technical side of the project, here are notes on the configuration of our development, test, and production environments.
For those who couldn’t care less if PlaybookIQ is powered by mongrels or mice – don’t run away yet. Later this week, I will have the beginnings of actual product on the “production” server where anyone interested can follow along in real-time as updates are made throughout each development day. I would love ongoing feedback from the “live” site. Stay tuned because some real stuff is starting to happen.
Environments and Tools
My environments look like this:
Development and Testing Platform
- MacBook Pro running OS X
- TextMate editor
- Ruby v1.8.6 programming language
- Ruby on Rails v1.2.2 open source web framework
- mySQL open source database
- web-brick web server
- Subversion version control system
- net-ssh for password-less connectivity to remote server
- Dreamweaver and Fireworks for working with html and graphics
- CSSEdit for working with .css
- Capistrano to automate deployment
- a few other little goodies
- VPS slices at Slicehost.com
- Ubuntu Unix
- Rails v1.2.2
- mySQL database
- Apache2 web server
- mongrel cluster as an http load balancer
- svn server for source code control
- trac for project management and source code management
The local environment setup was actually done some time ago. The great news for Mac fans is that when OS X Leopard is released in October you will be able to write and deploy Rails apps “out of the box” with Rails, Mongrel and Capistrano pre-bundled into OS X 10.5. Awesome.
Once the local install of Ruby and Rails was complete, the rest was easily configured and deployed using deprec, deployment recipes for Capistrano. I first read through the info from the deprec site, then followed a combination of instructions from here, here, and here and now can easily deploy updates using these few commands and without manually logging into the server.
svn commit -m 'new update' cap disable_web cap deploy_with_migrations cap enable_web
Anyone running Rails on Slicehost, drop me a line and I can send you the step-by-step details of what worked for me to get the complete stack setup with deprec.
All PlaybookIQ users will have SSL, so I wanted to get that built out from the start so that all code would handle it properly. While the setup of all other components was straightforward thanks to deprec, configuring Apache, mongrel, and the Rails app to use SSL took way too much time. The key to anyone looking to use SSL with Apache is to understand VirtualHosts. More details on the exact steps I took to deploy SSL on Rails and Apache will be in a future post.