How to Install edX on Manjaro

edX is an open-source online platform that offers massive open online courses (MOOCs). In this tutorial, we will learn how to install edX on Manjaro.

Prerequisites

Before we start, ensure that you have the following prerequisites:

Step 1: Install Python and MongoDB

edX requires Python and MongoDB to run. Run the following command to install them:

sudo pacman -S python mongodb

Step 2: Install the edX Platform

Run the following commands to install the edX Platform:

git clone -b release https://github.com/edx/edx-platform.git
cd edx-platform
sudo -H pip install -r requirements/edx/base.txt

These commands will clone the edX Platform repository, switch to the release branch, and install the required Python packages.

Step 3: Install Additional Libraries

Run the following command to install additional required libraries:

sudo pacman -S gcc openssl

Step 4: Install edX Dependencies

edX requires several dependencies to run, including the following:

Run the following command to install these dependencies:

sudo pacman -S nodejs rabbitmq elasticsearch sass memcached

Step 5: Configure the edX Platform

Run the following command to configure the edX Platform:

cd /edx/app/edxapp/edx-platform
sudo ./configure

Step 6: Install and Configure Nginx

Run the following command to install Nginx:

sudo pacman -S nginx

After installing Nginx, edit the configuration file at /etc/nginx/nginx.conf and make the following changes:

http {
    ...
    server {
        listen       80;
        server_name  localhost;

        location /static/ {
            root   /edx/app/edxapp/;
            expires 1d;
            add_header Cache-Control "public";
        }

        location / {
            proxy_pass       http://localhost:18010;
            proxy_set_header Host      $host;
            proxy_set_header X-Real-IP $remote_addr;
        }
    }
    ...
}

This configuration will proxy all requests to port 18010 where the edX Platform is running.

Step 7: Start edX Services

Run the following commands to start edX services:

sudo /edx/bin/supervisorctl start edxapp:
sudo /edx/bin/supervisorctl start edxapp_worker:
sudo /edx/bin/supervisorctl start edxapp_worker_all:
sudo /edx/bin/supervisorctl start edxapp_celery:
sudo /edx/bin/supervisorctl start edxapp_celerybeat:

These commands will start the edX app, worker, and celery services.

Conclusion

In this tutorial, we learned how to install edX on Manjaro. Now that edX is up and running, you can start creating and managing courses. For more information, refer to the edX documentation.

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!