-
Notifications
You must be signed in to change notification settings - Fork 259
Multisite Proposal
peakpg edited this page Sep 6, 2013
·
5 revisions
This page to details the requirements/concepts for making BrowserCMS multisite.
- Should assume a single site by default.
- Configuration (code level) should enable multisite capabilities (i.e. config.bcms.multisite = true)
- Only subdomains or top level domains will be used to distinguish between sites (i.e. site-a.client.com, site-b.client.com or site-c.com would all be valid)
- Might need a global configuration store to enable/disable this?
- Pages, content, templates and modules need to (potentially) separate across sites.
- Need 'cross site' admin role. I.e. adding users to one site shouldn't necessarily give you permission to add users to another site.
- Users need to be tied to a specific site.
- Caching will need to be reexamined. Each subsite will need its own cache, so it may be easier to move to a non-static file caching system.
- Should probably reexamine how cms vs www subdomains work.
- Admin logins will need to persist across multiple subdomains.
Here are some of the features Wordpress Multisite has:
- Super Admin - A user with superadmin privileges can manage content/everything across sites.
- Network Management - There is a new UI to manage networks (i.e. a collection of sites)
- Plugins/themes can be 'network enabled' meaning they are available within specific networks. Plugins can be enforced for all sites, or enabled for specific sites. Themes are network only.
- Allows for site creation on the fly using either subdomains/subsections. I.e. new network might be wordpress.com, allowing users to create new sites as ruby.wordpress.com and php.wordpress.com.
- Uploaded files are placed /wp-content/uploads/sites/
- Requires extensive and pretty detailed Apache mod rewrite to function.
Both Wordpress and Drupal have multisite capabilities, though they do things differently. Here are some reference articles on how they work for general concepts and patterns.