Version 1.1.0
An Open-source application to run your arts organization. Features include:
- Free and paid ticketing on the web
- Discount codes
- Patron tracking
- Patron importing and exporting
- Order tracking, importing, and exporting
- Door lists
- Box office for in-person sales
- Advanced patron searching
And coming soon...
- Mailchimp integration
- Completely re-designed person record interface.
- Memberships
- Flex-passes
Creating your own Artful.ly OSE installation requires a basic understanding of Git, Heroku, Ruby and Rails.
If you don't know what any of that means then you probably want our hosted event ticketing version of Artful.ly
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.
Bugs notwithstanding, Master is production ready at all times.
git clone git@github.com:fracturedatlas/artfully_app.git
cd artfully_app
All ongoing development happens in topic branches. Note this is different from the branch strategy of Artfully OSE.
git clone <BRANCH> 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. You can create your databases like so:
rake db:create:all
Run the migrations
rake artfully_ose_engine:install:migrations
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 with 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