Open edX - Part 1: Quick start
Tags: openedx, lms, sideprojects
Published: 2020-03-18 03:43:43

Hi everyone,
Long story short, I need to setup an Open edX LMS for my side project, this is my journal.

****
#### Some notes ####
This is my research, not the fully working tutorial.
Hope you find it useful, somehow...

This post also contains many questions, if you know how to do it, please leave it in the comment - thank you so much for helping me 🍾🍾🍾
****

# Quick view
In general Open edX is a lms platform which allows people to teach and to learn (sort of Udemy or Udacity), but you can set it up by yourself (**Open edX** stands for Opensource Educational Platform *which is supposed to be really awesome - the X* 😏)

Check out the home page of [Open edX](https://open.edx.org) for more info.

### In this post
- Setting up a Virtual environment so I don't freak up the real system
- Install Open edX
- Access the Open edX from the real devices

### Getting Started
#### 1.Setting up a virtual env
I am a simple man, I saw virtual env, I think of Virtual Box. Yes, Virtual Box.
Download it here [Virtual Box download page](https://www.virtualbox.org/wiki/Downloads)
You will also need **Ubuntu 16.04 amd64**, so here is the [download link](http://releases.ubuntu.com/xenial/), you can choose either the Desktop image (with GUI) or Server image.
Install Ubuntu in a Virtual Machine, please take a look at the requirements for a Open edX server.
Requirements:
- Ubuntu 16.04 amd64 (oraclejdk required). It may seem like other versions of Ubuntu will be fine, but they are not.  Only 16.04 is known to work.
- Minimum 8GB of memory
- At least one 2.00GHz CPU or EC2 compute unit
- Minimum 25GB of free disk, 50GB recommended for production servers

Your Ubuntu is up and running, great 👏👏👏! Let's move to the next step.

#### 2.Install Open edX
*Make sure your virtual Ubuntu machine's Network is attached to Bridge NAT*
![Network is attached to Bridge NAT](https://dev-to-uploads.s3.amazonaws.com/i/hjo6hfw6ce3tkxpx6yot.png)

Power on your Ubuntu instance and login as root user
Run the commands
#### 1.Make sure we have the latest packages from apt
```sudo apt-get update -y```
```sudo apt-get upgrade -y```
#### 2.Reboot the machine
```sudo reboot```

#### 3.After reboot, it's time to install Open edX
- Choose a version, check out all the versions [here](https://edx.readthedocs.io/projects/edx-developer-docs/en/latest/named_releases.html). For this tutorial I will choose the latest Ironwood release (tag name: open-release/ironwood.master). Define it to a variable:
```export OPENEDX_RELEASE=open-release/ironwood.master```
**Notes**: The command above will need to be re-run after reboot because it is not a permanent variable
#### 4.Create config.yml file
```cd <path/to/store/config.yml>```
```vim config.yml```
Insert:
```EDXAPP_LMS_BASE: "online.myeducation.org"```
```EDXAPP_CMS_BASE: "studio.online.myeducation.org"```
Save it

#### 5.Short cut: Run all scripts 
```wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo bash &&  wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/generate-passwords.sh -O - | bash && wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/native.sh -O - | bash```

5.1 For a more detail view:
**Notes**: All the scripts is available at https://github.com/edx/configuration/tree/open-release/ironwood.master/util/install

5.1.1: Bootstrap to ansible
```wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/ansible-bootstrap.sh -O - | sudo bash```

5.1.2: Generate passwords for demo users/accounts
```wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/generate-passwords.sh -O - | bash```

5.1.3: Install and start Open edX to local machine
```wget https://raw.githubusercontent.com/edx/configuration/$OPENEDX_RELEASE/util/install/native.sh -O - | bash```

After all of that, your Open edX is available to access via your VM Ubuntu IP

#### 3.Access the Open edX from the real devices
1. Get the IP using ```ifconfig```
![IP Address](https://dev-to-uploads.s3.amazonaws.com/i/2iru77e6kqc4oxbtuk7i.png)

2. Now open your browser on the main machine and access it
![Access via browser](https://dev-to-uploads.s3.amazonaws.com/i/qhun027ew1v2hlo0tqo9.png)

3. Navigate to other page:
LMS Page: `<IP address>`
CMS Page: `<IP address>:18010`
Admin Page: `<IP address>/admin/`

4. Demo accounts:
You can find the list of the default accounts here:
https://edx.readthedocs.io/projects/edx-installing-configuring-and-running/en/latest/installation/start_devstack.html#default-accounts

You have done it! 🎉🎉🎉

### Next part: Customize the look of Open edX