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:
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
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 ‘email@example.com’, and the password is ‘password' - just remember to change these when you first login.
Option 2: Manual Installation
Errbit requires the following:
- Ruby 1.9.3 or higher
- MongoDB 2.2.0 or higher
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
- Install dependencies
- Bootstrap Errbit. This will copy over config.yml and also seed the database.
- Update the config.yml and mongoid.yml files with information about your environment, and start the server:
- 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 SECRET_TOKEN=”$(bundle exec rake secret)” heroku config:add ERRBIT_HOST=some-hostname.example.com heroku config:add ERRBIT_EMAIL_FROMfirstname.lastname@example.org # 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