Seeking Guidance on Development Setup for Open edX on Cloud VMs

Hello Dears,

Let me start with a background story to this! As some developers in our team have infrastructure limitation(adequate laptop infrastructure, adequate network bandwidth …), we setup cloud based virtual machines(VPS) with good specification to run opened for development purposes. The general development workflow (The way I am thinking of it) is

  1. Every developer will have to fork edx-platform and clone his/her own fork to his local computer. The developers should be able to use their own preferred IDE. The developers will use their local machine(their laptop) for development purpose

  2. They should also be able to pull changes from their own forked project to the virtual machine(VM) keeping their work in sync with their local machines. The developers will use the VM to run tests and trouble shoot errors in collaboration with their mentors.(One of the advantages is that mentors and students can collaborate asynchronously as anyone can access the VM on their own preferred time!

The result of successful installation is having access to lms, cms and other endpoints with different ports as shown bellow. Having the setup made on VPS(Virtual Machine) Kindly let us know your experiences. After installing all packages on the VM, what is the experience of going forward in setting up the environment for development.

http://local.openedx.io:8000

http://studio.local.openedx.io:8001

http://meilisearch.local.openedx.io:7700

http://apps.local.openedx.io:1999/authn

http://apps.local.openedx.io:2001/authoring

http://apps.local.openedx.io:1997/account

http://apps.local.openedx.io:1984/communications

http://apps.local.openedx.io:2002/discussions

http://apps.local.openedx.io:1994/gradebook

http://apps.local.openedx.io:1996/learner-dashboard

http://apps.local.openedx.io:2000/learning

http://apps.local.openedx.io:1993/ora-grading

http://apps.local.openedx.io:1995/profile

We have successfully completed a base installation of Open edX on a VPS. Besides seeking your hands on experiences, my question for moving forward with the development environment is about network configuration: To make these services reliably accessible to developers for testing and collaboration, should we:

We would greatly appreciate hearing about your experience and recommendations on the best practice for this scenario.

I don’t think those options would be in opposition to each other—you’d need DNS records (or /etc/hosts entries) and exposed ports for direct access to work.

Bear in mind that a development server is probably fairly insecure. If your VPS is exposed to the public internet, an attacker might be able to compromise it and use it to send spam, etc. So you’d want to look into IP allowlists or similar at the networking level.

1 Like

@arbrandes would you know who I could tag on this question?

1 Like

Here is what we did working with the original post requirements

  1. Deploying Open edX on a powerful VPS that runs tutor based
  2. Using developers’ laptops as thin clients that connect via VS Code’s Remote-SSH to edit code directly on the VPS
  3. Routing traffic locally by modifying /etc/hosts to point Open edX domains to VPS IP, allowing developers to access the web interfaces from their browsers while the heavy computation happens on the server
  4. Allow ports firewall ports of the VPS and also network admins did allow the ports at a network level. (Of course all the security concerns are still there!)

We are finally able to assist a few developers to work on a limited capacity laptop.

@Tim_McCormack and @sarina thank you for being around.

1 Like