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.
Before we start, ensure that you have the following prerequisites:
edX requires Python and MongoDB to run. Run the following command to install them:
sudo pacman -S python mongodb
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.
Run the following command to install additional required libraries:
sudo pacman -S gcc openssl
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
Run the following command to configure the edX Platform:
cd /edx/app/edxapp/edx-platform
sudo ./configure
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.
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.
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!