-
Notifications
You must be signed in to change notification settings - Fork 313
Setup Instructions
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
-
Postgres (database)
-
ImageMagick (image processing software)
$ brew install imagemagick
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)
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
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