Skip to content
Matt LeBel edited this page Oct 17, 2013 · 2 revisions

Install

Dependencies

To run Crowdhoster you'll need the following prerequisites installed:

  • Homebrew (for downloading software packages)
$ ruby -e "$(curl -fsSL https://raw.github.com/mxcl/homebrew/go)"
  • Git (version control)
$ brew install git
  • RVM, ruby 1.9.3, and the Rails gem
$ \curl -L https://get.rvm.io | bash -s stable --rails --ruby=1.9.3
$ rvm use 1.9.3 --default
$ brew install imagemagick

Service Providers

To run Crowdhoster you'll also need to sign up for the following:

  • a Balanced account (test marketplace and live marketplace)
  • the Crowdtilt API - Email [[email protected]](mailto:[email protected]?subject=API Key Request for Crowdhoster&body=Hi! I'd like to deploy a Crowdhoster app. The Github readme sent me here to ask for an API key. Thanks!) to get your API keys
  • AWS (free) and set up a bucket for your assets. The bucket should be in the US Standard (us-east-1) zone.
  • Mailgun (free)

Local Setup

Get started by:

  • Downloading a .zip of the latest release to your local machine

    or

  • Creating a fork of Crowdhoster and cloning it to your local machine.

After you've got the repo on your local machine, switch to the newly created project directory

$ cd {DIRECTORY}

Create a .env file in the project root…easiest way is to create a copy of the .env.example file

$ cp .env.example .env

Then open up the .env file and fill in the variables with your app_name and credentials. Leave ENABLE_ASSET_SYNC set to 'true' if you plan to use AWS to host your assets (recommended). The bucket for asset syncing should be in the US Standard (us-east-1) zone.

The SECRET_TOKEN variable should be at least 30 characters and all random, no regular words or you'll be exposed to dictionary attacks. You can generate a new one by running this command from the root of your project directory:

$ rake secret

Important: Your APP_NAME must not have a space in it. Underscores and hypens are accepted.

APP_NAME=myawesomeapp
CROWDTILT_SANDBOX_KEY=crowdtiltsandboxkey
CROWDTILT_SANDBOX_SECRET=crowdtiltsandboxsecret
ENABLE_ASSET_SYNC=true
AWS_BUCKET=awsbucket
AWS_ACCESS_KEY_ID=awsaccesskey
AWS_SECRET_ACCESS_KEY=awssecretaccesskey
MAILGUN_DOMAIN=myawesomeapp.mailgun.org
MAILGUN_PASSWORD=mailgunpassword
[email protected]
SECRET_TOKEN=secrettoken

Install the gems

$ bundle install

Create and migrate the DB

$ foreman run rake db:create
$ foreman run rake db:migrate

Start the server

$ foreman start

Run the console

$ foreman run rails c

Deploying to Heroku

  1. Sign up for a Heroku Account
  2. Install the Heroku Toolbelt

Create a new Heroku app

$ heroku create {APP NAME}

Enable the use of environment variables during asset precompiling

$ heroku labs:enable user-env-compile

Install the Heroku config plugin if you don't already have it installed

$ heroku plugins:install git://github.com/ddollar/heroku-config.git

Push the configuration to Heroku

$ heroku config:push

Deploy the code to Heroku

$ git push heroku master

Migrate the database

$ heroku run rake db:migrate

Launch the app!

$ heroku open

Brought to you by the team at Crowdtilt // Group fund anything