Skip to content

Latest commit

 

History

History
128 lines (92 loc) · 5.4 KB

README.md

File metadata and controls

128 lines (92 loc) · 5.4 KB

Monolith Template

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.

Table of Contents

Installation

  1. Clone:
git clone https://github.com/Grigore-George-Mihai/default_template

Customize

  • Update the project name to reflect your application.
  • Customize the Devise configuration as only basic setup is included; adjust it to suit your specific authentication requirements.
  • Modify or remove the settings for Scout APM, Rollbar, and PgHero as needed, based on your performance, error tracking, and database monitoring requirements.
  • Run the following rake task to create your environment files:
    rake env:setup
    • After running the task, open the newly created .env.development and .env.test files to modify them with the appropriate environment-specific variables as needed.
  • Create DB and seed:
    rails db:create db:migrate db:seed

Gems

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.

Admin Interface

  • ActiveAdmin: A flexible and extensible admin framework for Ruby on Rails applications, making it easy to build custom admin panels.
  • ActiveAdmin Addons: Enhances ActiveAdmin with additional features like input widgets, searchable selects, and improved UI components for better admin interfaces.

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.

Decorator and Forms

  • Draper: Helps in decorating models with additional presentation logic.
  • Simple Form: Simplifies form creation with a clean and flexible syntax.

Performance Monitoring

Error Tracking

  • Rollbar: Real-time error tracking and reporting.

Debugging

  • Byebug: Debugging tool for Ruby applications.

Code Quality & Linting

  • Rubocop Rails Suite: A custom suite that bundles Rubocop with various plugins for Rails projects.

Testing

Security

  • Brakeman: Static analysis tool for finding security vulnerabilities in Rails applications.
  • Bundler Audit: Scans your Gemfile for known vulnerabilities.

Environment Management

Rake Tasks

Security Check

  • Run the following rake task to check for security risks in your application:

    rake security:check
    • This task runs tools like Brakeman and Bundler Audit to ensure your application is secure.

Docker Setup

  • If you prefer to run the application inside a Docker container, follow these steps:
  1. Build the Docker image:

    docker-compose build
  2. Start the Application and services:

    docker-compose up
  3. Stop the Application:

    docker-compose down
  4. Remove named Volumes:

    docker-compose down --volumes

Contact

For questions or further information, feel free to reach out via LinkedIn.