You have a number of options when installing Errbit on Ubuntu - these include doing so manually or installing through Cloud 66 EasyDeploy.

Depending on your configuration, a manual installation of Errbit can take up to a few days. Deploying through Cloud 66 on the other hand takes up to an hour for the initial deploy, and up to five minutes for subsequent deployments.

This post will take you through each option.


Option 1: Deploying with Cloud 66

Deploying with Cloud 66 consists of five simple steps:

1. Create an account on Cloud 66.

2. Click here to auto-fill your new stack page. 

3. Once the code has been analyzed, you need to specify environment variables for your deployment, as seen in the image below:

image

These are the environment variables you need to set: 

  • ERRBIT_HOST' - the domain hosting your site
  • APP_HOST' - your application hostname
  • MAILER_SENDER' - the address you use to send emails
  • SMTP_ADDRESS' - your SMTP host
  • SMTP_DOMAIN' - the domain you send emails from
  • SMTP_PORT’ - your SMTP port
  • SMTP_USERNAME' - your SMTP username
  • SMTP_PASSWORD' - your SMTP password
  • 'GITHUB_CLIENT_ID' - GitHub client ID
  • 'GITHUB_SECRET' - GitHub secret
  • GITHUB_AUTHENTICATION’ - GitHub authentication

To send emails, you can easily set up SMTP on your server, or use a service like Sendgrid or Mailchimp.

4. Next, choose where you’d like to deploy Errbit, the region and server size. You can also choose if you’d like to deploy to separate web and database servers.

5. Once you’re happy with your configuration, simply click ‘deploy’, and sit back and relax while we deploy Errbit for you.

The default username for your installation is ‘errbit@host.com’, and the password is ‘password' - just remember to change these when you first login.


Option 2: Manual Installation

1. Requirements

Errbit requires the following:

  • Ruby 1.9.3 or higher
  • MongoDB 2.2.0 or higher

2. Installation

Note: This app is intended for people with experience deploying and maintaining Rails applications. If you’re uncomfortable with any step below then Errbit is not for you.

Set up your local box or server (Ubuntu):

  • Install MongoDB. Follow the directions here, then:

apt-get update
apt-get install mongodb-10gen

  • Install libxml and libcurl

apt-get install libxml2 libxml2-dev libxslt-dev libcurl4-openssl-dev

  • Install Bundler

gem install bundler

Running Locally:

  • Install dependencies

bundle install

  • Bootstrap Errbit. This will copy over config.yml and also seed the database.

rake errbit:bootstrap

  • Update the config.yml and mongoid.yml files with information about your environment, and start the server:

script/rails server

3. Deploying

  • Copy config/deploy.example.rb to config/deploy.rb
  • Update the deploy.rb or config.yml file with information about your server
  • Setup server and deploy

cap deploy:setup deploy db:create_mongoid_indexes

(Note: The capistrano deploy script will automatically generate a unique secret token.)

Deploying to Heroku:

  • Clone the repository

git clone http://github.com/errbit/errbit.git

  • Update db/seeds.rb with admin credentials for your initial login.
  • Run bundle
  • Create & configure for Heroku

gem install heroku
heroku create example-errbit
# If you really want, you can define your stack and your buildpack. the default is good to us :
# heroku create example-errbit —stack cedar —buildpack https://github.com/heroku/heroku-buildpack-ruby.git
heroku addons:add mongolab:sandbox
heroku addons:add sendgrid:starter
heroku config:add HEROKU=true
heroku config:add SECRETTOKEN=”$(bundle exec rake secret)”
heroku config:add ERRBITHOST=some-hostname.example.com
heroku config:add ERRBITEMAILFROM=example@example.com
# This next line is required to access env variables during asset compilation.
# For more info, go to this link: https://devcenter.heroku.com/articles/labs-user-env-compile
heroku labs:enable user-env-compile
git push heroku master

  • Seed the DB (NOTE: No bootstrap task is used on Heroku!) and create index

heroku run rake db:seed
heroku run rake db:mongoid:create_indexes

  • If you are using a free database on Heroku, you may want to periodically clear resolved errors to free up space.

With the heroku-scheduler add-on (replacement for cron):

# Install the heroku scheduler add-on
heroku addons:add scheduler:standard
# Go open the dashboard to schedule the job.  You should use
# ‘rake errbit:db:clear_resolved’ as the task command, and schedule it
# at whatever frequency you like (once/day should work great).
heroku addons:open scheduler

With the cron add-on:

# Install the heroku cron addon, to clear resolved errors daily:
heroku addons:add cron:daily

Or clear resolved errors manually:

heroku run rake errbit:db:clear_resolved

You may want to enable the deployment hook for heroku :

heroku addons:add deployhooks:http —url=”http://YOUR_ERRBIT_HOST/deploys.txt?api_key=YOUR_API_KEY”

You may also want to configure a different secret token for each deploy:

heroku config:add SECRET_TOKEN=some-secret-token

Enjoy!