Multiple Sites with MFE and Tutor

I’m about to start a migration project for an install with multiple micro-sites (now just “sites”) that each have their own theme, catalog, and language.

I’m looking around for information about:

  • Are multiple sites still possible now with MFE and tutor?
  • Any guides/best practices for doing so.
  • How is it different to pre-MFE? Are there things that used to be possible but are no longer?

I have found the following threads and clues so far:

Thank you all for those threads but it leads me to think that multiple sites is very loosely supported right now. The last time we looked at this, it seemed like we were changing a lot of the MFE code to get things working, and we eventually stopped.

Interested to hear what other folks experiences have been. Thanks!

Hi,

I don’t know if this information is still current, but it seems that multisite support is no longer supported.

At least with the installation with tutor

Hi @john_curricume!

I understand that the topic is a bit old, but the challenge is not outdated :slight_smile:

We are looking to achieve a very similar goal: tutor, MFE, multi-sites with own themes.

I was curious, have you been able to achieve the desired results with tutor and MFE?
I would really appreciate any hints or directions to follow, as seems there very few information on how to do that. And most of the articles are a bit outdated.

We’ve found eox-tenant and eox-theming plugins, but haven’t figure out yet how to use them and if those are the right way to go.

Hi @alex_sh the only reasonable way to do it we found was just not use MFE. So in this case we were running Nutmeg, but without any of the new MFE front-ends. MFEs just didn’t have support for Multi-site that we needed.

There had been talk about adding more support for multi-site with MFEs. Based on my bad memory I might have talked to @kmccormick about that, but at the time it was mostly an idea.
And I vaguely remember that eventually disabling the MFE front-ends won’t be possible. There was a conversation with this client about how challenging it would be to upgrade further with micro-sites.

I’m unsure how much of that has changed and if my memory is 100%, but that’s the main gist of it.

1 Like

Since John’s original question, we’ve changed how MFEs load their configuration settings. Instead of using build-time environment variables, they now query the LMS for its MFE_CONFIG and MFE_CONFIG_OVERRIDES django settings. @mafermazu , do you happen to know whether this would allow someone to use multi-site configuration with MFEs?

1 Like

Sorry, I didn’t see this before.

I didn’t try using sites from the platform to do this. But in edunext, we use a Django plugin called eox-tenant; with that plugin, we create routes and tenants, so the plugin adds a middleware to know if the request comes from tenant-a.myplatform.com or comes from tenant-b.myplatform.com; so with that, we manage to have different configuration for multiple sites (different platform names, themes, mfe configs). We change the MFEs behavior thanks to the settings @kmccormick mentions (MFE_CONFIG and MFE_CONFIG_OVERRIDES).

With that in mind, we use another tool that is a tutor plugin, tutor-contrib-mfe-extensions; that plugin adds additional routes to caddy to enable routing each mfe through a path of the LMS (e.g., https://{LMS_HOST}/learning), so we can have tenant-a.myplatform.com/learning and tenant-b.myplatform.com/learning, taking different settings thanks to eox-tenant.

Here is an interesting post about it: How to use microfrontend in a multitenant instance.

If you have doubts, don’t hesitate to reach out to the team, open issues in GitHub, or write to me.

cc @john_curricume

References:
eox-tenant: GitHub - eduNEXT/eox-tenant: Plugin for managing multiple tenants (organizations) within a single Open edX instance.
tutor-contrib-mfe-extensions: GitHub - eduNEXT/tutor-contrib-mfe-extensions: Experimental Tutor Plugin for CDN support and extras
MFEs by path: GitHub - eduNEXT/tutor-contrib-mfe-extensions: Experimental Tutor Plugin for CDN support and extras

Thank you @mafermazu and all! I have since this post gotten fully out of hosting, so I’m no longer trying to answer the question. But glad to hear that Edunext has a strategy for this, I will keep that in mind when I talk to folks about it.

1 Like