Firestarter
Firestarter is the base Rails application used at Group Buddies.
Installation
First install the firestarter gem:
gem install gb-firestarter
Then run:
firestarter projectname
This will create a Rails app in projectname
.
By default this script creates a new git repository. See below if you want to use it against an existing repo.
Gemfile
To see the latest and greatest gems, look at Firstarter's Gemfile, which will be appended to the default generated projectname/Gemfile.
It includes application gems like:
- Bourbon for Sass mixins
- Email Validator for email validation
- jQuery Rails for jQuery
- Postgres for access to the Postgres database
- Rack Timeout to abort requests that are taking too long
- Recipient Interceptor to avoid accidentally sending emails to real people from staging
- Simple Form for form markup and style
- Unicorn to serve HTTP requests
- Title for storing titles in translations
- Dotenv for loading environment variables
And gems only for staging and production like:
- New Relic RPM for monitoring performance
- Rails 12 Factor to make running Rails 4 apps easier on Heroku
And development gems like:
- Pry Rails for debugging
And testing gems like:
- Capybara and Capybara Webkit for integration testing
- Factory Girl for test data
- RSpec for unit testing
- RSpec Mocks for stubbing and spying
- Shoulda Matchers for common RSpec matchers
- Timecop for testing time
Other goodies
Firestarter also comes with:
- The
./bin/setup
convention for new developer setup - Rails' flashes set up and in application layout
- A few nice time formats set up for localization
Rack::Deflater
to compress responses with Gzip- Fast-failing factories
- A low database connection pool limit
- Safe binstubs
- t() and l() in specs without prefixing with I18n
Firestarter fixes several of Rails' insecure defaults:
- Firestarter uses Puma instead of WEBrick, allowing less verbose Server headers.
- Firestarter is configured to pull your application secret key base from an environment variable, which means you won't need to risk placing it in version control.
Git
This will initialize a new git repository for your Rails app. You can
bypass this with the --skip-git
option:
firestarter app --skip-git true
Dependencies
Firestarter requires Ruby 2.1.0 or greater.
Some gems included in Firestarter have native extensions. You should have GCC installed on your machine before generating an app with Firestarter.
Use OS X GCC Installer for Snow Leopard (OS X 10.6).
Use Command Line Tools for XCode for Lion (OS X 10.7) or Mountain Lion (OS X 10.8).
We use Capybara Webkit for full-stack Javascript integration testing. It requires QT. Instructions for installing QT are here.
PostgreSQL needs to be installed and running for the db:create
rake task. See
Postgres.app for Mac OS.
Issues
If you have problems, please create a Github Issue.
Contributing
Please see CONTRIBUTING.md for details.
Credits
Firestarter is largely inspired by thoughtbot's suspenders, so thank you thoughtbot.
Firestarter is maintained by Group Buddies.
License
Firestarter is © 2014 GB-Software As A Service, Lda. It is free software and may be redistributed under the terms specified in the LICENSE file.