- Install
- PostgreSQL database
- Redis key-value server
- Memcached server
- Node.js
- yarn
- ruby using rbenv
- ruby on rails using
gem install rails
- Create app using template
rails new APP_NAME --no-skip-hotwire -T -c bootstrap -j esbuild -d postgresql -m https://raw.githubusercontent.com/alec-c4/ks-rails-bootstrap/master/template.rb
- Create all required accounts:
- Digital Ocean or Linode
- Appsignal
- Postmark
- Register keys for Google authentication in Google API console
-
Configure Appsignal with
bundle exec appsignal install APPSIGNAL_KEY
-
Setup hypershield gem for PostgreSQL and create user for blazer gem
-
Configure sitemap generator in
config/sitemap.rb
-
Configure application secrets with following template
active_record_encryption:
primary_key: ''
deterministic_key: ''
key_derivation_salt: ''
secret_key_base: ''
devise:
secret_key: ''
google:
client_id: ''
client_secret: ''
postmark:
api_key: ''
You can generate active record encryption keys with following command
bin/rails db:encryption:init
-
Configure application in
config/settings.yml
-
Configure rack-attack using following guide
-
Add legal documents.
-
Update error pages in
app/views/errors/*
with your content -
Update
config/database.yml
- just change configuration line for development from
development:
<<: *default
database: APP_NAME_development
to
development:
<<: *default
database: <%= ENV['CYPRESS'] ? 'APP_NAME_test' : 'APP_NAME_development' %>
Example configuration is available in config/database.yml.example
- ruby on rails application template
- .gitignore file
- VSCode configuration files
- postgresql database connector
- timezone detection with jstz
- Good Job for background jobs
- online_migrations
- authentication with devise and devise-pwned_password + google auth
- pretender
- authorization with pundit + pundit-matchers for tests
- role management with rolify
- ability to ban user account
- pre-configured generators
- SEO tools - meta-tags, sitemap_generator and friendly_id
- I18n tools - rails-i18n and i18n-tasks
- rspec and cypress for testing
- better_html and erb-lint for erb linting
- standard.js and standard.rb for code style validations
- bullet to prevent N+1 problems
- brakeman and bundler-audit as security scanners
- pry-rails and amazing_print for better rails console
- view_component as a replacement for partials
- ahoy, ahoy_email and blazer for business intelligence
- noticed for notifications
- annotate for annotations
- rack-attack to prevent bruteforce and DDoS attacks
- authrail to track login attempts
- lefthook with pre-commit run of rspec, brakeman, standardjs, standardrb and erblint
- semantic_logger as a highly configurable logging system
- simplecov for test coverage research
- mailkick
- discard
- hypershield
- identity_cache
- active_storage_validations
- avatarly for default avatar generation
- rails_performance
- landing page
- custom error pages
- profiles controller
- admin and customer dashboards
- users administration with search
- add announcements (new/fix/update) for all users
- add feedback
- add 2FA for all users and enabled for admin accounts by default
- add monitoring and analytics tools
- add A11y
- add deployments tools
- add documentation (howto's, best practices, curated list of libraries)