Hubs-Foundation / hubs-cloud

Resources for self hosted Hubs Cloud instances
Mozilla Public License 2.0
152 stars 95 forks source link

Multiple Hubs envs on the same apex domain #100

Open aidanhmiles opened 4 years ago

aidanhmiles commented 4 years ago

(Continuing from https://github.com/mozilla/hubs/discussions/2874)

I believe this is a feature request. I opened the above discussion hoping to find a way around some errors I encountered when setting up a 2nd CloudFormation stack, and @robin-k-wilson let me know that I'm outside the bounds of the feature spec here :grinning:

Summary

I'm specifically proposing to allow two Hubs hosted at subdomains on the same apex domain (hub-prod.a.com, hub-dev.a.com). It's mentioned in the above discussion that to support this, a migration of values related to the domain would be necessary, at least in scenes and the param store, I assume the database as well.

Additionally, I'd hope that there wouldn't be collisions when sharing the internal and link domains between environments, so my goal would be to continue to use only 3 domains total (primary one, with two hub subdomains, plus internal domain and link domain).

I don't know enough about CloudFormation or Hubs to propose specific operational aspects of this feature, but I'm happy to try or to lend more detail to my own use case. Just let me know.

Use Case

I can imagine multiple scenarios where you'd want multiple environments, but in our case, we've forked hubs-cloud and are actively developing new features on it. Additionally, starting soon we'll have real users in our Hub during the day, so we would prefer to have a dev/test environment that we can deploy to during the day while our prod environment has real users in it.

Really, this journey began when I borked my admin interface (I can access/create/manage Rooms, and use Spoke, just not /admin). At that point, I just wanted to create a clone of my previously working Hubs environment but without removing the original.

Thanks for all your hard work on this great project.

┆Issue is synchronized with this Jira Task