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 install
ing 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.