edX is a popular online learning platform that offers online courses from top universities and institutions worldwide. In this tutorial, we are going to learn how to install and run edX on Arch Linux.
Before you start, ensure that your system meets the following requirements:
To install the package required by edX, run the following commands in the terminal:
$ sudo pacman -S gcc nodejs npm mongodb redis openssl
To install Python3 and pip3, you can run the following command:
$ sudo pacman -S python python-pip
Next, we need to clone the Open edX Git repository. You can do this using the following commands:
$ git clone https://github.com/edx/edx-platform
$ cd edx-platform
Run the following command to install the required Python libraries:
$ pip3 install -r requirements/edx/base.txt
$ pip3 install -r requirements/edx/github.txt
Now we need to set up MongoDB. Follow these steps:
Step 1: Start the MongoDB service:
$ sudo systemctl start mongodb
Step 2: Add the MongoDB service to the system startup:
$ sudo systemctl enable mongodb
Next, we need to install and set up Redis. Follow these steps:
Step 1: Install Redis using the following command:
$ sudo pacman -S redis
Step 2: Start the Redis service:
$ sudo systemctl start redis
Step 3: Add the Redis service to the system startup:
$ sudo systemctl enable redis
Now we need to configure LMS and Studio. Follow these steps:
Step 1: Create the following files in edx-platform
folder and add the following content:
lms.env.json
:
{
"ENABLE_NOTIFICATIONS": false,
"PREVIEW_LMS_BASE": "http://localhost:8000",
"PREVIEW_LMS_COURSE_ID": "course-v1:edX+DemoX+Demo_Course",
"PREVIEW_LMS_USER_ID": "preview@example.com",
"PREVIEW_PASSWORD": "password",
"PREVIEW_USERNAME": "preview@example.com",
"RELEASE_BRANCH": null,
"WEBSERVER_WORKERS": 2,
"WSGI_WORKERS": 2,
"PORT": 8000,
"MKTG_URL_LINK": "",
"MKTG_URL_TEXT": "",
"SPARKPOST_API_KEY": null,
"SSL": false,
"FORCE_SCRIPT_NAME": "",
"OSQA_DEFAULT_SKIN": "edX",
"ENABLE_COMPREHENSIVE_THEMING": true,
"THEME_NAME": "edx",
"CONTACT_EMAIL": "edx@example.com",
"SECURE_PROXY_SSL_HEADER": null,
"DEFAULT_FROM_EMAIL": "edx@example.com",
"SERVER_EMAIL": "edx@example.com",
"BYPASS_SERVICE_VOLUMES": true,
"EDXAPP_DEBUG": true,
"EDXAPP_XQUEUE_URL": "http://localhost:8005",
"EDX_MEDIA_ROOT": "/edx/var/edxapp/media/",
"EDX_PLATFORM_VERSION": "release",
"EDX_PLATFORM_REPOSITORY": "git://github.com/edx/edx-platform.git",
"EDXAPP_PLATFORM_NAME": "open_edx",
"LMS_ROOT_URL": "http://localhost:8000",
"EDXAPP_LMS_BASE": "http://localhost:8000",
"EDXAPP_LMS_ROOT_URL_SCHEME": "http",
"EDXAPP_LOGIN_BASE": "/login",
"EDXAPP_COURSE_URL_NAME": "course",
"EDXAPP_ADMIN_API_KEY": "",
"COMPONENTSTORE_STORE_PATH": "/edx/var/edxapp/component_store",
"FEATURES": {
"ENABLE_DISCUSSION_SERVICE": false,
"ENABLE_TUTORIALS": false,
"ENABLE_EXPERT_SEARCH": false,
"ENABLE_CSRF_PROTECTION": false,
"ENABLE_COMBINED_LOGIN_REGISTRATION": false
}
}
cms.env.json
:
{
"RELEASE_BRANCH": null,
"ENABLE_COMPREHENSIVE_THEMING": true,
"THEME_NAME": "edx",
"ENABLE_NOTIFICATIONS": false,
"PORT": 8001,
"WEBSERVER_WORKERS": 2,
"WSGI_WORKERS": 2,
"BYPASS_SERVICE_VOLUMES": true,
"EDXAPP_XQUEUE_URL": "http://localhost:8005",
"EDX_MEDIA_ROOT": "/edx/var/edxapp/media/",
"EDX_PLATFORM_VERSION": "release",
"EDX_PLATFORM_REPOSITORY": "git://github.com/edx/edx-platform.git",
"EDXAPP_PLATFORM_NAME": "open_edx",
"CMS_ROOT_URL": "http://localhost:8001",
"EDXAPP_CMS_BASE": "http://localhost:8001",
"EDXAPP_CMS_ROOT_URL_SCHEME": "http",
"EDXAPP_CMS_URL_NAME": "cms",
"REGISTRATION_EXTENSION_FORMS": [],
"CONTACT_EMAIL": "edx@example.com",
"SECURE_PROXY_SSL_HEADER": null,
"DEFAULT_FROM_EMAIL": "edx@example.com",
"SERVER_EMAIL": "edx@example.com",
"SPARKPOST_API_KEY": null
}
Step 2: Run the following command to create a LMS database:
$ cd /edx-platform
$ sudo -u postgres createdb edxapp
$ paver update_db
Step 3: Start the LMS and CMS servers:
$ screen
$ source /edx/app/edxapp/edxapp_env
$ cd /edx/app/edxapp/edx-platform
$ python3 ./manage.py cms runserver 0.0.0.0:8001
Press CTRL+A
then D
to detach the screen.
On another screen, run:
$ screen
$ source /edx/app/edxapp/edxapp_env
$ cd /edx/app/edxapp/edx-platform
$ python3 ./manage.py lms runserver 0.0.0.0:8000
Press CTRL+A
then D
to detach the screen.
You can now access eDX on your browser by navigating to http://localhost:8000/
.
That's it! You have successfully installed edX on your Arch Linux system. You can now start creating online courses and taking online courses on this platform.
If you want to self-host in an easy, hands free way, need an external IP address, or simply want your data in your own hands, give IPv6.rs a try!
Alternatively, for the best virtual desktop, try Shells!