This repository serves as a default template for a monolithic Ruby on Rails (RoR) application. It includes a pre-configured setup with essential gems and tools to streamline development.
Clone the repository
git clone https://github.com/Grigore-George-Mihai/default_template_r81. Rename the Application
This will update the app name everywhere it appears (module name, titles, DB names, cable prefixes, Docker volumes, etc.).
bin/rails setup:rename_app2. Create Environment Files
Copy environment template files into .env.development and .env.test.
bin/rails setup:copy_envThen open each file and update values as needed:
- Database credentials (
POSTGRES_USER,POSTGRES_PASSWORD) - Any other environment-specific variables
3. Set Up the Database
bin/rails db:prepare # Creates and migrates the database
bin/rails db:seed # Loads seed data4. Optional Integrations
- Devise — Adjust configuration in
config/initializers/devise.rbif needed. - Scout APM — Add your SCOUT_KEY value in .env.development (or the appropriate .env file) to enable. If left blank, ScoutAPM stays disabled.
- Rollbar — Add your ROLLBAR_ACCESS_TOKEN value in .env.development (or the appropriate .env file) to enable. If left blank, Rollbar stays disabled.
- PgHero - Add
shared_preload_libraries = 'pg_stat_statements'topostgresql.confand restart the database. if left blank, PgHero stays disabled.
✅ You’re now ready to start development!
Database and Monitoring
- Pg: PostgreSQL driver for Ruby, providing fast and efficient database connectivity.
- PgHero: A tool for monitoring PostgreSQL database performance, including query insights, index suggestions, and table size analysis.
Authentication
- Devise: Flexible authentication solution for Rails based on Warden.
Background Processing
- Sidekiq: Efficient background processing for Ruby applications.
- Sidekiq-Scheduler: Extends Sidekiq to support scheduled and recurring jobs using a simple configuration.
- Redis: In-memory data structure store used by Sidekiq for managing background job queues, scheduling, and retries.
Performance Monitoring
- Scout APM: Application monitoring tool.
- Bullet: Detects N+1 queries and unused eager loading.
- Rack Mini Profiler: Performance profiling tool.
Error Tracking
- Rollbar: Real-time error tracking and reporting.
Code Quality & Linting
- Rubocop Rails Suite: A custom suite that bundles Rubocop with various plugins for Rails projects.
Testing
- Factory Bot Rails: Provides fixtures replacement with a straightforward definition syntax.
- Faker: A library for generating fake data.
- RSpec Rails: Testing framework for Rails.
- Shoulda Matchers: Simplifies testing Rails applications with RSpec.
- SimpleCov: Code coverage analysis tool.
- Rspec-Sidekiq: Testing framework for Sidekiq jobs.
Security
- Brakeman: Static analysis tool for finding security vulnerabilities in Rails applications.
- Bundler Audit: Scans your Gemfile for known vulnerabilities.
Environment Management
- Dotenv Rails: Loads environment variables from
.env.
If you prefer to run the application inside a Docker container, follow these steps:
- Build the Docker image:
docker-compose build- Start the Application and services:
docker-compose up- Stop the Application:
docker-compose down- Remove named Volumes:
docker-compose down --volumesFor questions or further information, feel free to reach out via LinkedIn.