Issue with Multiple Open edX Instances on Single Server Using TVM

Hi Everyone,

I am currently deploying multiple instances of Open edX for different clients on a single AWS server using the TVM tool developed by eduNEXT. TVM is designed to manage several Tutor development environments in isolation, allowing for independent Tutor versions and configurations for different projects.

I successfully set up a staging environment for Client 1 and Client 2 following the TVM documentation. Each client’s environment was initiated with identical steps and configurations under separate TVM projects, and both were accessible initially at their respective domains (https://client1.mydomain.com and https://client2.mydomain.com).

Steps I followed:

pip install git+https://github.com/eduNEXT/tvm.git

Client 1 environment setup:

tvm project init client-1 v17.0.5
cd client-1
source .tvm/bin/activate
tutor plugins list
tutor config save --interactive
tutor plugins update
tutor plugins install android forum mfe notes webui xqueue
tutor plugins enable android forum mfe notes webui xqueue
tutor local launch

Client 2 environment setup:

tvm project init client-2 v17.0.5
cd client-2
source .tvm/bin/activate
tutor plugins list
tutor config save --interactive
tutor plugins update
tutor plugins install android forum mfe notes webui xqueue
tutor plugins enable android forum mfe notes webui xqueue
tutor local launch

Problem: After setting up the environment for Client 2, the LMS for Client 1 (https://client1.mydomain.com) became inaccessible, although it was previously working. It appears that only one environment is accessible at a time.

I am seeking guidance on how to configure the TVM setup so that both environments can be accessed simultaneously without interfering with each other. Is there a specific configuration or step that I might be missing to ensure both instances remain accessible independently?

Thank you for any insights or suggestions you can provide!

2 Likes

hi @Mahendra ,
This may be happening because of the same container names and ports. Please check and try to change that.

Thank you for your suggestion.

I also suspect that the issue might be related to conflicting container names and ports. Is there a more streamlined method to manage this configuration within TVM, so that I can avoid manually modifying and debugging each container’s settings?

I’m looking for a more straightforward approach that can be consistently applied across multiple projects. Any guidance or best practices on this would be greatly appreciated!

Hey Mahendra,

This is quite an interesting use case for production grade instances. However TVM was designed for development purposes where one developer can have many projects using tutor in one workstation. For example one development environment per customer. In an scenario such as this there will only be one tutor install at the same time. This is what you are describing.

For multiple production grade instances running in the same server I think a different tool is a much better fit. You can use a single node k8s cluster and in there install openedx-k8s-harmony.