Multi-Tenancy in mojoPortal

Overview

mojoPortal content management system can easily host multiple sites using 1 web installation and 1 database.

Each site is completely independent, having separate users, roles, content, and skinning. The first site is considered the master site and all additional sites are considered child sites, but this is only in terms of global administration. The master site can manage the Site Settings and configure which features are available for child sites and is the site used to create the child sites, but no content, and by default no users, are shared across the sites. Child sites can also manage their own Site Settings but cannot install features or manage other child sites.

Related Topics

Advantages

One of the primary advantages of hosting multiple sites using mojoPortal CMS is that all the sites run in a single application domain and therefore consume less server resources than if you setup separate IIS or Apache web sites. Each web site gets its own application instance and this carries some overhead in terms of server resources.

How Many Tenants?

Generally the only limits are based on the available server resources vs the aggregate traffic of all the sites and the load produced by the traffic.

You may bump up against a "soft limit" due to default mojoPortal configuration in the mojoSiteMap.config file located in the root of the site install. Tt must have an entry for each site id, as of the version 2.5, we have it configured for up to 500 sites which is probably more than most people will ever need (and most likely far more than could be hosted from a shared hosting account) but it can be configured for more by adding more more entries. So, if you need 501 sites you just copy this:

<add name="mojosite500" type="mojoPortal.Web.mojoSiteMapProvider" securityTrimmingEnabled="false" />

and add another one below it as 501 like this:

<add name="mojosite501" type="mojoPortal.Web.mojoSiteMapProvider" securityTrimmingEnabled="false" />

and so on for as many sites as you care to try and host from a single installation.

Assigning Features to Sites

By default, new sites only have one feature available, the HTML Content Feature. To assign additional features to your sites:

  1. Login to the Master site (the first one installed) as an administrator.
  2. Click Administration > Site List.
  3. Select the site to which you want to assign features.
  4. Click the Features tab and you should see a screen like this:
  5. Select the features you want to assign and click the right arrow (->) button at the top.
  6. Click the Save button.

Deleting Sites

You can't delete the root site, but it is possible to delete secondary child sites. It's disabled by default to prevent accidental deleting a site. Once you delete it there is no way to get it back, so it seems wise in most cases to keep it disabled and just enable it when you need to delete sites.

To enable deleting sites, set this to 'true' in your user.config:

<add key="AllowDeletingChildSites" value="false" />

Last Modified by Joe Davis on Jan 28, 2021