View on GitHub

Artfully Open Source Edition

Open-source application to run your arts organization

download .ZIPdownload .TGZ

Artfully Open Source Edition

An Open-source application to run your arts organization. Features include:

And coming soon...

About

Creating your own Artfully installation requires a basic understanding of Git, Heroku, Ruby and Rails.

Installation

These instructions outline getting a new app up and running on Heroku's amazing hosting platform. Artfully is a typical Rails::Engine, so there's no reason it can't be imported into a typical Rails application and served on another platform.

However, Artfully is not a mountable engine and is not designed to be imported into an existing Rails application with a mature codebase. Artfully is intended to stand alone in a new Rails app with little modification.

Dependencies

You'll need the following apps/services to use Artfully

Prerequisites

Make sure you have the following installed on your system

Create your app

rails new my_theater_company
cd my_theater_company

Include Artfully

Add this to Gemfile

gem 'artfully_ose'

Running Locally

If you intend to do any custom development or testing, go ahead and set up Artfully locally on your machine. If you have no interest in this, feel free to skip ahead to Deployment to Heroku

Configure your app

Include the fabulous foreman gem

gem install foreman

and the sunspot_solr gem to help with local development. Add the following to Gemfile

group :development do
  gem 'sunspot_solr', '1.3.3'
end

Environment

Add this to config/environment.rb. Replace placeholder values with your own if you elect not to set environment variables.

config.after_initialize do 
  #Braintree config
  config.braintree.merchant_id    = ENV['BRAINTREE_MERCHANT_ID']   || 'your_merchant_id'
  config.braintree.public_key     = ENV['BRAINTREE_PUBLIC_KEY']    || 'your_public_key'
  config.braintree.private_key    = ENV['BRAINTREE_PRIVATE_KEY']   || 'your_private_key'

  #S3 Config
  config.s3.bucket                = ENV['S3_BUCKET']               || 'your_bucket'
  config.s3.access_key_id         = ENV['S3_ACCESS_KEY_ID']        || 'your_access_key_id'
  config.s3.secret_access_key     = ENV['S3_SECRET_ACCESS_KEY']    || 'your_secret'

  #d2s3 config 
  D2S3::S3Config.load_config
end

Artfully requires the following environment variables to be set if they aren't explicitly set in config/environment.rb

BRAINTREE_MERCHANT_ID
BRAINTREE_PUBLIC_KEY
BRAINTREE_PRIVATE_KEY

S3_BUCKET
S3_ACCESS_KEY_ID
S3_SECRET_ACCESS_KEY

Database

Update database.yml to point to your mysql database

Run the migrations

bundle exec rake db:migrate

Create Procfile

Create a new file called Procfile and add the following

web: bundle exec rails server thin -p $PORT
worker: bundle exec rake jobs:work
solr: bundle exec rake sunspot:solr:run

Now you can start your app locally with

foreman start

Deployment to Heroku

About delayed_job

Artfully ships with delayed_job enabled. If you do not have a Heroku worker turned on, you'll want ot disable delayed_jobs so that they run immediately.

To disable delayed_job, add this to config/environment.rb

Delayed::Worker.delay_jobs = false

Push

Follow the Heroku instructions for creating an app

git add .
git commit -m "Initial commit"
heroku apps:create myapp
git remote add heroku git@heroku.com:myapp.git
git push heroku master

Setup the production database

heroku run bundle exec rake db:migrate

Set environment variables

If you didn't set environment variables in config/environment.rb, you'll need to set them on the heroku command line. Run this command for each environment variable listed in "Environment"

heroku config:add BRAINTREE_MERCHANT_ID='...'

If you have a Google Analytics account, you can set the environment variables GA_ACCOUNT and GA_DOMAIN to enable Google Analytics in Artfully.

Create your first user

This user will be the organization administrator. In a Heroku console, run

User.create!({:email => "youradmin@example.com", :password => "your_strong_password", :password_confirmation => "your_strong_password" })

Restart the app

heroku restart

Load your application

Go to http://myapp.herokuapp.com in a web browser