Skip to content
/ 10AnC Public

A multi-tenancy framework built on Devise, CanCan, Rolify and Postgres

Notifications You must be signed in to change notification settings

GrokkLab/10AnC

Repository files navigation

Tenancy : A multi-tenancy app

A-identifies tenants via subdomain (ie acme.grokklab.com)
B-implmeents tenant data seperation via Postgres schema's
C-Uses Devise, CanCan and Rolify for authentication and authorization
D-has kickass schema migration tasks!

Getting Started

  1. git clone git@github.com:GrokkLab/10AnC.git

  2. bundle install

  3. create login role Tenancy in postgres

  4. rake db:create

  5. rake db:migrate

  6. rake db:seed

  7. That’s it! Login with mgmt@example.com/please

Now for some multi-tenancy

Tenancy works just fine as a single tenant app, but maybe you need to support 2 or 3 or eleventeen different organizations. No problem. Tenancy comes with some easy-peasy rake tools to do just that.

Spose your new tenant is named ‘acme’, then…

rake tenant:reset TENANT_NAME=acme

This automatically creates the schema ‘acme’, migrates that schema to current state and then seeds that schema with data. Piece O Cake.

Tip: now that you’ve got multi-tenancy, you’ll need to add a subdomain. If you’re rockin’ some flavor of unix this will be as simple as adding entries into your /etc/hosts file. Something like this…

127.0.0.1	acme.grokklab.com
127.0.0.1	bnsf.grokklab.com
etc...

Refresh your DNS cache (for macs -> dscacheutil -flushcache) and then point your browser at acme.grokklab.com and you are now looking at ACME’s web app.

Enjoy.

About

A multi-tenancy framework built on Devise, CanCan, Rolify and Postgres

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages