Skip to content
Shashike Jayatunge edited this page Aug 22, 2021 · 4 revisions

Welcome to Violet Rails Ruby

alt text

What's Violet Rails?

violet_rails is a Ruby on Rails template that implements a web CMS & blog along with a lightweight email client and server. Violet ships with a two tier authorizatiion strategy that makes building SaaS and XaaS products quickly.

An opinionated template (built on top of an opinionated framework)

  • database multi-tenancy: Serious SaaS and XaaS apps need to support database multi-tenancy. So if you ship Violet with Postgres you will have schema based multi-tenancy with the option of routing each client at run-time to an external Postgres server. All of this is implemented in a simple way, just by subdomain (eg: design.your-website.com).
  • Flexible and code first: The Violet CMS is powered by comfortable_mexican_sofa and offers the customizability of a Rails engine with full WSIWYG functionality (its recommended that you stick to HTML/CSS/JS for static web hosting). Outside of this, its just Ruby on Rails -- the world is your oyster.
  • Ready to Deploy: Violet comes with a barebones App Owner UI that helps you hit the ground running by managing subdomain requests. Each subdomain has its own roster of Users and an automatically allocated email-box (eg: design@your-website.com), blog (eg: www.your-website.com/blog) and landing page (www.yourwebsite.com). Granular permissioning for users can be managed at the subdomain level.

Authorization layer

App Owners (Violet Owner Admin)

After Violet application deployment

Subdomain Owners (Web Admin)

After the subdomain request has been granted by the App/Domain owner

Deployment

The Demo of violet_rails is deployed on AWS EC2 (using Ubuntu 20.04LTS) & requires some server setup/automation with Capistrano. The steps are outlined in-detail here: https://github.com/restarone/violet_rails/wiki/Deploying-to-EC2-(with-Capistrano)

Hacking on top of Violet

The local development environment is supported by docker. After installing docker and docker-compose take a look at the development cheatsheet for setting up the development environment along with useful scripts: https://github.com/restarone/violet_rails/wiki/Getting-started-(development-cheatsheet)

Clone this wiki locally