Version 1.0.0.rc4
An Open-source application to run your arts organization. Features include:
- Free and paid ticketing on the web
- Patron tracking
- Patron importing and exporting
- Order tracking
- Door lists
- Box office
And coming soon...
- Advanced patron searching
- Mailchimp integration
Creating your own Artful.ly OSE installation requires a basic understanding of Git, Heroku, Ruby and Rails.
You'll need the following apps/services to use Artful.ly OSE
Make sure you have the following installed on your system
Also, before you begin you should set up your production MySQL database.
git clone git@github.com:fracturedatlas/artfully_app.git
cd artfully_app
gem install foreman
bundle install
Update database.yml to point to your mysql database. Specify a local database and a production database.
Run the migrations
bundle exec rake artfully_ose_engine:install:migrations
bundle exec rake db:migrate
If you intend to do any custom development or testing, go ahead and set up Artful.ly OSE locally on your machine. If you have no interest in this, feel free to skip ahead to Deployment to Heroku
Open a rails console and run
User.create!({:email => "youradmin@example.com", :password => "your_strong_password", :password_confirmation => "your_strong_password" })
foreman start
Open http://localhost:5000
in a browser
Artful.ly OSE 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
WEBSOLR_URL
Additionally these are defaulted in the config.ru and config/unicorn.rb files but can be set in the environment as well UNICORN_WORKERS UNICORN_TIMEOUT UNICORN_BACKLOG MAX_REQUEST_MIN used by unicorn killer MAX_REQUEST_MAX used by unicorn killer OOM_MIN used by unicorn killer OOM_MAX used by unicorn killer
Artful.ly OSE ships with delayed_job
disabled. If you do have a Heroku worker turned on, you'll want to enable delayed_jobs.
To enable delayed_job
, in config/application.rb
change this line to read
Delayed::Worker.delay_jobs = true
Please note that Artful.ly OSE depends on delayed jobs for locking tickets while a patron is checking out. Leaving delayed jobs disabled prevents tickets from being locked. Checkout will still work, but tickets will not be reserved for a patron while he/she is checking out.
Artful.ly OSE WILL NOT PROCESS TRANSACTIONS WITHOUT A VALID SMTP SETUP We will make this more flexible in a future release.
A good option is to enable SendGrid. SendGrid has a free usage tier which integrates with Heroku. See the note in Setup SendGrid
to enable SendGrid. Artful.ly OSE will work with SendGrid without any modification necessary.
Otherwise, you'll need to specify your smtp settings in config/environments/production.rb
under config.action_mailer.smtp_settings
Finaly, regardless of smtp provider, YOU MUST edit the file config/environments/production.rb
and change the value of config.action_mailer.default_url_options
to match your hostname.
config.action_mailer.default_url_options={:host => 'myapp.herokuapp.com'}
or if you own your own domain
config.action_mailer.default_url_options={:host => 'www.myexampletheater.com'}
Follow the Heroku instructions for creating an app
heroku apps:create myapp
git add .
git commit -m "Prepping push to Heroku"
git push heroku master
If you're using SendGrid to send email, enable the starter plan with the following command:
heroku addons:add sendgrid:starter
See the SendGrid documentation for more information.
Before running this, you must have setup and configured a MySQL database. If you database is on Amazon's RDS, you'll have to enable that plugin on Heroku by running
heroku addons:add amazon_rds
heroku config:add DATABASE_URL=mysql2://username:password@url.ofyourdatabase.com/databaseName
Otherwise, make sure you have edited, committed, and pushed your database.yml file
heroku run bundle exec rake db:migrate
Please note that you must first have run and committed bundle exec rake artfully_ose_engine:install:migrations
from the above steps
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 Artful.ly OSE.
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" })
heroku restart
Go to http://myapp.herokuapp.com
in a web browser