Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

While Tutor deployment instructions are well documented, I figured it would be worth documenting the process I went through to do it for Palm.1 with the new Learner Dashboard MFE, Blockstore, and the Library Authoring MFE, all on a smallish AWS VM.

Prerequisites

This howto was tested on a VM in AWS with the following characteristics:

...

And if you want activation emails (or any kind of email) to be properly sent out, it is a good idea for your VM to be configured with IPv6 in dual-stack mode. Here’s the AWS VPC guide on how to do it.

Initial update

Connect to the VM via SSH, using the ubuntu user.

...

Code Block
sudo apt update && sudo apt full-upgrade -y
sudo reboot
sudo apt autoremove --purge

Add other SSH keys

If you have other team members, add their SSH keys from, for instance, Github:

Code Block
user=exampleuser
wget -O - https://github.com/${user}.keys  >> ~/.ssh/authorized_keys

Install docker

Because Tutor 16 now supports Docker’s new BuildKit, which does more intelligent caching and more efficient builds (which will come in handy when rebuilding the tutor-mfe image), we'll be installing it directly from upstream (as opposed to just apt installing it.) This process is documented elsewhere, but here are the actual steps that were used.

...

Code Block
sudo usermod -aG docker ubuntu
exit

Install Tutor

After reconnecting, install Tutor as follows:

...

If this is the first time running pip, exit the SSH session and reconnect. This is so the PATH environment variable is updated to include pip-installed binaries:

Code Block
exit

Configure

At this point, create the base Tutor environment via:

...

Code Block
Are you configuring a production platform? [Y]
Your website domain name for students (LMS) [https://openedx.example.org]
Your website domain name for teachers (CMS) [https://studio.openedx.example.org ]
Your platform name/title [Open edX Palm]
Your public contact email address [admin@example.org]
The default language code for the platform [en]
Activate SSL/TLS certificates for HTTPS access? [Y]

Plugins

Install the tutor plugins you need. In this case, we’ll install tutor-mfe, tutor-forum, and the (at time of writing) experimental tutor-contrib-learner-dashboard-mfe.

...

Then proceed with the experimental plugin plugins for the Learner Dashboard MFE, Blockstore, and the Library Authoring MFE:

Code Block
pip install git+https://github.com/openedx/openedx-tutor-plugins.git#subdirectory=plugins/tutor-contrib-learner-dashboard-mfe
pip install git+https://github.com/openedx/openedx-tutor-plugins.git#subdirectory=plugins/tutor-contrib-blockstore-filesystem
pip install git+https://github.com/openedx/openedx-tutor-plugins.git#subdirectory=plugins/tutor-contrib-library-authoring-mfe

If you need to alter LMS configuration - a common practice - create a local site-config plugin (the name is arbitrary) to contain it.

...

Code Block
tutor plugins enable forum blockstore-filesystem library-authoring-mfe learner-dashboard-mfe site-config
tutor config save

Rebuild MFE image

Because we installed a custom MFE plugin, we won’t be able to use the pre-built MFE image provided by the Tutor team. Here we’ll build a new one.

...

Code Block
tutor images build mfe --no-cache

On an instance of this type, the process takes around 40 minutes.

Launch!

Finally, it’s time to launch! Run the following command. Feel free to take the default values, as you already filled them in earlier:

...

This will take a little while, as the Docker images need to be fetched and the MySQL migrations to be r un.

Further configuration

You’ll likely want to create an administrator user for yourself. Do so as follows:

...

Code Block
tutor local do importdemocourse

Finally, if you’re going to try out Libraries v2 you should also create a default organization in the admin dashboard. Log in as your admin user, then head on to https://openedx.example.org/admin/organizations/organization/ and add at least one. It will be needed when creating a library.