Multisite - single database w/ hub site option

I have tested Frappe/ERPNext for some time, but eventually switched to Odoo, mainly because of the lack of multisite w/ single database functionality.

With ERPNext v15, I remember it was

  • Multi-tenants on single URL
  • Multi-URL with multi-database

My use case is

  • One database w/ N possible entry URLs w/ different theme/logo/language…

For CMS and LMS, I run that structure with Drupal’s Domain module and Moodle’s IOMAD. There are hiccups, but I fix issues one by one, because I would rather sacrifice dev hours than managing N sites with N login. The central hub control with multiple URL/theme dramatically saves my management hours. I just need to login to one site and can see what’s happening in all websites.

My use case of ERP is similar to my use case of Drupal and Moodle. With ERP, I want to run different services for each URL w/ different themes and different top-level-domains. I remember Go1 CMS somewhat tried, but it does not serve what’s needed.

Despite the cost of Odoo’s Enterprise version, since the functionality is essential, I gave up working on Frappe/ERPNext. But with Odoo Enterprise, the price linearly goes up as I have more users.

Having said that, I wonder if there is any pipeline for this function in the upcoming v16 or beyond.

Your ecosystem, in particular Frappe Drive and Raven, is evolving that is very close to be ready to replace Microsoft Teams. For some people, what is now offered must be already enough. But, I need that particular functionality to actually run the ERP on ERPNext.

I even hired a dev once for this extension, but what I got was barely logo replacements, which was no better than Nginx’s location-based file swap.

Try this docker setup for multi-site, multi-bench setups (all with 1 maria DB)

@asieftejani hey thank you for the interesting case example.

So, it sounds like I run 4 docker containers with a single database.
May or may not work, depending on the use case.

For one, it will certainly consume more system resources than one docker container with proper multisite app.

For two, I am not sure how the database differentiates different docker containers.

There might be overlap in configuration. For example, the login url for OIDC may also be cumbersome. I remember adding two Microsoft login via OIDC already was a challenge. I had to manually change the endpoint URL directly on DB table. Frappe automatically creates the URLs, so it was unavoidable. Then, with N number of websites, I am not sure each website’s specific OIDC can be called without additional differentiaters.

I am no dev for Frappe framework, but given that single server w/ N docker container example, I think one can make an app for N multisite, K(!=N) multi-tenant, J (!=N, K) multi URL w/ varying themes.