Installing on Heroku

Derek Myers edited this page Jun 14, 2013 · 28 revisions

Heroku is a great service that allows you to deploy web application written in Ruby, like Teambox, in just a few simple steps.

You will need git, Ruby and RubyGems installed on your system. These are the prerequisites to push applications to Heroku platform.

Video instructions: the screencast

The screencast below demonstrates how to follow these instructions from start to finish.

If the embeded video above doesn’t show up for some reason just follow this link to YouTube.

Get a Heroku account

You need to sign up for Heroku first. Then, install the Heroku toolkit.

Get Teambox code

To push an app to Heroku, you first need to have it locally. Teambox is versioned with git and available on GitHub.

$ git clone http://github.com/teambox/teambox.git
$ cd teambox

Create a Heroku app

Time to create a Heroku instance. You now need to choose the subdomain under which your Teambox instance will be accessible. It will be something like “your_name.heroku.com”, and you can point it to your own domain later.

$ heroku create your_name --stack cedar

If you omit “your_name”, your new instance will get a random name. That’s OK; you can decide later.

Enable add-ons (optional)

Note: Heroku might ask you to verify your account using a credit card before using add-ons.

Teambox uses memcache and sends outgoing email. Enabling that is easy:

$ heroku addons:add sendgrid:starter
$ heroku addons:add memcachier:dev

Configure Amazon S3 for uploads

To run Teambox on Heroku, you need an Amazon S3 account. Heroku’s filesystem is read only, so you can’t store file uploads on the server. You also need to configure the environment with your credentials. Find your Amazon security credentials here.

$ heroku config:add S3_KEY=123 S3_SECRET=xzy S3_BUCKET=mybucket

Replace “mybucket” with a unique name of the bucket you wish to use.

Configure Teambox.yml

You’ll need to edit the Teambox configuration file. Teambox will extract the configuration information for SMTP/memcached/S3 from environment variable, but you need to configure other parameter using this file, most default are fine but for heroku you need to change at least the app_domain.

Edit config/teambox.yml with your favorite text editor and configure app_domain to your *.heroku.com domain.

$ git commit -a -m "configure teambox.yml"

see [[Configure-teambox.yml]] for more information.

Push the Teambox code

The final step is pushing Teambox code to your new Heroku instance.

$ git push heroku dev:master
$ heroku run rake db:schema:load

At this point, your app should be up and running! Open it in a browser:

$ heroku open

If you wish to use Teambox on your own domain name, follow Heroku’s instructions