How to Deploy Open edX on Ubuntu

Hello everyone,

I have an assignment to install Open edX for online learning purposes. I have successfully installed it on a virtual machine using VMware Workstation 17, and the website is running. However, I don’t know how to expose the website to Windows so that other people can access it, register, and study.

Is there a way to allow users to sign up, watch videos, and participate in discussions just like on the internal local website, or is it mandatory to purchase a VPS?

Hi @Vu_M_nh_Tu
I’ve reassigned your post into the Site Operators category for better visibility.

As you mentioned that you have it running I’m going to assume that the deployment in Ubuntu is not necessarily the issue here, rather that you need it to be accessible in your network.

Being a VMWare Workstation deployment I’ll assume further that you are hosting this on a device that exists within your corporate network (rather than a cloud/vps deployment)

In that respect, I think the most likely component you need to configure next is the DNS (see Installing Tutor - Configuring DNS records:

  1. being locally hosted and accessible on your network means you’ll need to configure DNS on your internal network, eg if your VM is 192.168.1.10 then you set up a DNS record for yourservername.yourdomain.com and *.yourservername.yourdomain.com pointing back to that IP.
  2. to access your server externally from your network, eg users operating from home or other external location, then you’ll need those same DNS entries at your domain’s Name Server (eg CloudFlare, GoDaddy, etc, wherever you bought your domain usually) but instead of pointing to your internal IP you’ll use the external IP of your internet connection and set up port forwarding on your firewall/router so the connection can NAT to your internal server.

As you can see, purchasing a VPS is not strictly required, if you have the resources to run it internally then it’s just the DNS and firewall/router that needs to be configured.

If you make the website accessible externally then be cautioned that in the default config anyone will be able to register an account on your platform, even users outside your organisation. If this is not desirable then you may want to restrict registrations. For example if you want to limit only your org’s users to registration there’s plugins you can use to configure this behaviour, specifically the openedx-common-settings patch for REGISTRATION_EMAIL_PATTERNS_ALLOWED something like this:

from tutor import hooks

hooks.Filters.ENV_PATCHES.add_items([
    (
        "openedx-common-settings",
"""
REGISTRATION_EMAIL_PATTERNS_ALLOWED = [
    "^.*@(.*\\.)?maindomain\\.com$"
]
"""
    )
])

This example permits addresses like user@maindomain.com and user@subdomain.maindomain.com

thanks you joel, but i have a new trouble “The studio is having trouble saving your work” error

I’m currently setting up Open edX on Ubuntu 22.04 running on VMware. I installed it using Docker (Tutor + Docker Compose), and I was able to successfully launch the LMS and access the web interface.

However, I’m running into an issue when interacting with problems (e.g., selecting an answer in a quiz). After choosing an answer, I get the following error message:

“The studio is having trouble saving your work”

As a result, the answer is not saved and no feedback/result is shown.

I checked the browser console and saw multiple errors like:

  • 403 (Forbidden) on some API requests

  • Studio AJAX Error

  • Unhandled message type: VIDEO_XHR_CANDIDATE

I’m not very familiar with Ubuntu or backend configuration, so I’m not sure where the problem is coming from.

My setup:

  • Ubuntu 22.04 (on VMware)

  • Open edX via Tutor (Docker + Docker Compose)

Has anyone experienced this issue before or knows what might be causing it? Any guidance would be greatly appreciated.

Thank you!