Rails Base is the base Rails application template used at Flatstack. It's based on Rails 5 and Ruby 2.4.2
- Sass for Sass/Scss stylesheets
- Zurb Foundation as CSS framework. For more information see documentation on using Foundation in Rails apps
- Foundation Icon Font for icons. Browse icon set examples
- Autoprefixer for writing CSS without vendor prefixes
- Slim for views
- Simple Form for forms
- Responders to DRY controllers
- Decent Exposure to DRY controllers
- Draper to decorate models for views
- Decent Decoration to extend Decent Exposure with Draper
- Interactors encapsulates application's business logic
- Pundit to encapsulates authorization logic
- Kaminari for pagination
- Devise for basic auth
- Rollbar for exception notification
- Google Analytics Rails for Google Analytics support
- Puma as Rails web server
- Letter Opener for opening mail in the browser instead of sending it
- Bullet for detecting N+1 queries and unused eager loading
- Rubocop and Rubocop-Rspec for reporting violations of the Ruby style guide
- Brakeman for checking application for common security vulnerabilities
- Pry Rails for interactively exploring objects
- Bundler Audit for scanning the Gemfile for insecure dependencies based on published CVEs
- Spring for fast Rails actions via pre-loading
- Web Console for better debugging via in-browser IRB consoles
- SCSS-Lint for reporting violations of SCSS coding conventions
- Coffeelint to keep Coffeescript code clean and consistent
- Slim-Lint for reporting violations of Ruby style guide in
- Rails ERD for generating a diagram based on application's AR models
- Jasmine jQuery for jQuery matchers and fixtures in Jasmine
- Factory Girl for test data
- RSpec for unit testing
- Shoulda Matchers for common RSpec matchers
- Email Spec for common matchers for testing emails
mailer.rb- setup default hosts for mailer from configuration
requires.rb- automatically requires everything in lib/ & lib/extensions
bin/setup- setup required gems and migrate db if needed
bin/quality- runs rubocop, brakeman, rails_best_practices and bundle-audit for the app
bin/ci- should be used in the CI or locally
bin/server- to run server locally
Some gems have native extensions. You should have GCC installed on your development machine.
graphviz- to generate Entity-Relationship Diagram
Setup required dependencies from
brew tap Homebrew/bundle brew bundle
Clone application as new project with original repository named "rails-base".
git clone git://github.com/fs/rails-base.git --origin rails-base [MY-NEW-PROJECT]
Create your new repo on GitHub and push master into it. Make sure master branch is tracking origin repo.
git remote add origin email@example.com:[MY-GITHUB-ACCOUNT]/[MY-NEW-PROJECT].git git push -u origin master
- Run setup script
- Run test and quality suits to make sure all dependencies are satisfied and applications works correctly before making changes.
- Run app
- Update README
Do not forget to update application
README.md file with detailed information based on the
mv doc/README_TEMPLATE.md README.md # update README.md git commit -am "Update README.md"
Out of the box Rails Base ready to be deployed to Heroku.com.
- Heroku Postgres add-on will be used for database.
- SendGrid add-on required to be able to send emails.
- NewRelic add-on could be used to monitor application performance.
- Rollbar add-on could be used to application errors.
heroku create --addons=heroku-postgresql,sendgrid,newrelic,rollbar --remote staging rails-base-example heroku config:add HOST="rails-base-example.herokuapp.com" MAILER_SENDER_ADDRESS="firstname.lastname@example.org" NEW_RELIC_APP_NAME="Rails Base" git push staging master heroku run rake db:schema:load heroku open
To be able to deploy to your custom server Cloud66.com recommended as a provisioning and deployment service.
Make sure to review and configure
cloud66/manifest.yml before deployment.