Deploying Tutor in Open edX can be straightforward, yet it often hinges on having the right expertise. The most detailed process for setting up Tutor in Open edX, particularly for those of technical background, involves running a sequence of commands—a clear-cut process that requires a certain level of skill and appropriate technical resources. Such an approach fits very well with teams of experienced professionals who can install and manage the system effectively.
However, not all feel comfortable dealing with the subtleties of installing Tutor and managing subsequent operations. Always remember that alternatives exist if you have doubts about your team’s capacity or infrastructure. You do not have to go it alone and try to run Tutor Open edX yourself. There are alternatives for those looking to branch out on different avenues of using this educational platform.
Table of contents
What is Tutor Open edX?
Tutor Open edX is an open-source platform purpose-built for deploying, managing, and upgrading Open edX instances. It is recognized as the official Docker-based Open edX distribution and is designed for production and local development.
Tutor stands out for its reliability, speed, and flexibility. It’s already the backbone for hundreds of Open edX platforms worldwide.
Key solutions offered by Tutor include:
- Ease of Deployment: Tutor simplifies deploying Open edX, making it accessible even for non-technical users. The simplicity becomes attractive to organizations needing an easy solution to set up, manage, and handle their platforms.
- Streamlined Upgrades: Upgrading Open edX is often challenging due to limited documentation and error-prone processes. Tutor handles all this in a friendly way to take on new versions to keep your platform going for years.
Adopted as the primary installation method with the Maple release in December 2021, Tutor has become a favored development platform in the wider OpenEdX community.
It effectively replaces dev stack, offering a more streamlined and efficient development environment. Such adoption profoundly provides a testimony about the capability of Tutor to take a paradigm shift in the manner educational platforms have been implemented and maintained to be highly scalable, easily manageable, and always up-to-date.
Common Tutor Tasks
Tutor Open edX is a versatile platform, enabling a range of common tasks essential for managing and scaling an Open edX environment:
- Running at Scale: Efficiently handles the scaling of Open edX to accommodate growing users.
- Docker Container Web UI with Portainer: Manages Docker containers through a user-friendly Portainer web interface.
- Running Tutor with Podman: Offers compatibility with Podman for container management.
- Behind a Web Proxy: Supports running Open edX behind a web proxy for enhanced security and control.
- Backups and Data Migration: Facilitates making regular backups and migrating data securely.
- Database Dumps: Allows for creating database dumps for data management and recovery.
- Multiple Platforms on a Single Server: Manages running multiple Open edX platforms on a single server efficiently.
- Upgrading from Older Releases: Streamlines the upgrade process from previous Open edX versions.
- Running on ARM-based Systems: Supports deployment on ARM-based systems, expanding hardware compatibility.
How to Set Up Tutor – The First-Time Setup
Setting up Tutor Open edX for the first time is a pivotal step in creating your online learning platform. It might appear challenging at first, but with the proper guidance, the process becomes manageable.
Here are the easy steps on setting up Tutor, where there will be detailed instructions to ensure your initial setup is efficient and straightforward.
Ensuring your system meets the requirements before setting up Tutor Open edX is important. Tutor functions on any 64-bit, UNIX-based OS and is compatible with Windows using WSL 2. Tutor also supports both AMD64 and ARM64 architectures.
The software prerequisites include Docker version 24.0.5 or newer, BuildKit 0.11 or higher, and Docker Compose version 2.0.0 or above. Be cautious with older Ubuntu versions, such as 16.04 (Xenial). Using ‘apt-get install docker docker-compose’ on these platforms results in outdated versions.
Your system should have ports 80 and 443 open. If existing web services use these ports, our tutorial on setting up a web proxy can guide you.
For hardware, the minimum setup to run Tutor Open edX effectively is 4 GB RAM, 2 CPUs, and 8 GB of disk space. However, we recommend 8 GB RAM, 4 CPUs, and 25 GB of disk space for a smoother operation.
Choose An Installation Method
Installing Tutor using multiple methods leads to confusion, resulting in several tutor executables. To avoid this, choose a single method. To confirm the installation location of Tutor on your system, execute the command “which tutor” in your terminal.
Installing Via Python Package
Installing Tutor Open edX via a Python package is a simple process. Begin by executing the following command to install Tutor:
|pip install “tutor[full]”
This command installs the full version of Tutor. To ensure a successful installation, verify your Python version is 3.6 or higher and you have pip available. Additionally, the libyaml development headers are necessary. If you’re using Ubuntu, these prerequisites can be met by executing:
|sudo apt install python3 python3-pip libyaml-dev
The command sets up the necessary environment on your Ubuntu system. Installing via Python provides a reliable and efficient way to install Tutor Open edX. You can check the “tutor” package on Pypi for more details.
Installing Via Binary Release
For those without Python 3, installing Tutor Open edX via a binary release is the simplest and most recommended method. You can download the latest binaries from the Tutor GitHub page. Here’s how to install from the command line:
|sudo curl -L “https://github.com/overhangio/tutor/releases/download/v17.0.1/tutor-$(uname -s)_$(uname -m)” -o /usr/local/bin/tutorsudo chmod 0755 /usr/local/bin/tutor
The method fetches the latest Tutor binary and sets the appropriate permissions. One thing to note: when you install using the binary release, you won’t be able to use custom plugins.
However, the binary includes a selection of bundled plugins, which you can view at Tutor Plugins Documentation. Installing via binary release offers a streamlined installation process for Tutor Open edX, especially for users without a Python background.
Installing Via Source
If you prefer to inspect and work directly with the source code, installing Tutor Open edX from the GitHub repository is your best option. Follow these commands to clone the repository and install Tutor:
|git clone https://github.com/overhangio/tutorcd tutorpip install -e .
Installing via source ensures you’re working with the most recent version of Tutor, making it an ideal approach for those who want a deeper understanding or need to make custom modifications to Tutor Open edX.
Configure Your DNS Records
Configuring DNS records for Tutor Open edX allows users to access your platform by name in a web browser. The specific method to set up DNS records varies depending on your DNS provider, requiring individual research and a solid understanding of your chosen platform.
To start, create an A record with the name matching your LMS hostname, which you can find by running tutor config printvalue LMS_HOST. The value for this record should be the IP address of your server.
Additionally, since applications like the studio, ecommerce, and others typically reside in subdomains of the LMS, it’s important to create a CNAME record. This record will direct all subdomains of the LMS to the LMS_HOST.
For example, to set up a Tutor Open edX server at https://learn.mydomain.com with the server IP address 18.104.22.168, configure the DNS records as follows:
|learn 1800 IN A 22.214.171.124*.learn 1800 IN CNAME learn.mydomain.com.
Configuring your DNS records ensures your Tutor Open edX platform is accessible and operates smoothly under your custom domain.
Zero Click AWS Platform
Launching Tutor Open edX on Amazon Web Services (AWS) is efficient with the official Tutor AMI (Amazon Machine Image), eliminating the need for shell access, as configuration occurs entirely through the Tutor web interface.
An AMI is essentially a pre-configured AWS server image, as all necessary software comes pre-installed and ready to run with Tutor AMI. The convenience costs about seven cents per hour, around $50 monthly.
There’s also an option for a yearly subscription, which is 18% cheaper. The image includes a 30-day free trial, allowing for cancellation within this period without any charge, except for the server running costs. When setting up, choose a server location close to your primary user base to minimize latency. For optimal performance, especially with many expected users, select a server with a minimum of 4 GB of RAM. A T3a medium instance is suitable for smaller platforms, while a T3a large instance caters to more significant user traffic.
During the setup, choose the correct security group for proper access, meaning if you don’t have a key pair, generate a new one and save the private key securely. Once these steps are complete, you’re all set to launch your server on AWS, and your Tutor Open edX platform will be up and running in no time.
Stopping and Starting the Platform
Managing Tutor Open edX often involves starting and stopping the platform, which is beneficial for system updates, maintenance, and troubleshooting.
Efficiently stopping and restarting Tutor ensures minimal user disruption and maintains the platform’s stability and security.
There are several reasons you might need to stop your Tutor Open edX platform:
- Maintenance: To perform updates or system maintenance without affecting users.
- Troubleshooting: To resolve technical issues or perform diagnostics.
- Resource Management: To conserve resources when the platform is unavailable.
The process to stop the Tutor Open edX platform is straightforward. Simply execute the command tutor dev stop in your terminal.
The command shuts down the platform safely, ensuring all processes are terminated properly. It helps maintain the platform’s integrity and should be part of your regular maintenance routine or when addressing system-related issues.
Starting The Platform Again
Restarting your Tutor Open edX platform can be accomplished in three ways, each catering to different needs and scenarios. Whether it’s a routine start-up, a response to maintenance work, or a recovery from troubleshooting, your chosen method impacts how the platform resumes operation.
Here are the three ways to restart the platform:
Tutor dev start-d
For a swift and efficient restart of Tutor Open edX, especially after the initial setup, the tutor dev start -d command is ideal. It runs them in the background without engaging in any initialization tasks and brings up containers detached. It’s a practical choice for routine startups focusing on getting the platform up and running quickly:
tutor dev start -d
Tutor dev start
Another method to start Tutor Open edX involves running containers attached, meaning they operate in the foreground directly within the current terminal. To do this, simply omit the “—d” flag:
|tutor dev start
When running in this mode, you can stop the platform using Ctrl+C. Alternatively, to switch to a detached mode without stopping the platform, use Ctrl+Z. The approach offers more immediate interaction with the running containers of your Tutor Open edX platform.
Tutor dev launch — pull images
The final method to start Tutor Open edX is using the tutor dev launch –pullimages command. The approach takes longer than the start command but is more thorough. It ensures the application of configurations and provisions, migrates databases, fully initializes plugins and sets up the bind—mounted edx—platform, if applicable.
A key advantage of this method is its idempotency, meaning it’s safe to run multiple times without risking data loss. Including the –pullimages flag also guarantees that your container images are the latest versions:
|tutor dev launch –pullimages
Deploying Tutor Open edX in a local environment for the first time involves meeting several key requirements. Ensuring these are in place will facilitate a smooth setup:
- Operating System: A UNIX—based system or Windows with WSL 2. Choosing the right operating system ensures Tutor Open edX works seamlessly. UNIX-based systems offer stability, while WSL 2 allows Windows users to run Linux apps, making the platform accessible to a wider audience.
- Hardware Specs: Minimum of 4 GB RAM and 8 GB disk space. For optimal performance, 8 GB RAM and 25 GB disk space are preferable. The right hardware ensures a smooth experience. While the minimum specs are enough to get started, the recommended specs offer faster performance and support more users, enhancing the learning experience.
- Software Requirements: Python version 3.6 or higher, Docker v24.0.5 or newer, and Docker Compose v2.0.0+. This essential software enables Tutor Open edX to function properly, offering a secure and efficient environment for deployment and operation.
- Network Settings: Open ports 80 and 443 for web traffic. These are key for web access, allowing secure and reliable communication over the internet, which is crucial for both administrators and learners.
- Permissions: Adequate user permissions to install and run Docker and Docker Compose. Having the right permissions to install and manage Docker and Docker Compose avoids technical hitches, ensuring a smooth setup and secure operation of the platform.
Meeting these requirements ensures your local Tutor Open edX deployment will be deployed effectively for a reliable and efficient learning platform.
Deploying Tutor Open edX on Kubernetes for the first time requires a thorough understanding of your environment and the right resources. Here are the essentials you need:
- Version: Ensure your server runs on version 1.14.1 and the client on 1.14.3.
- Memory: Access to a functional Kubernetes cluster is necessary. For local clusters, Minikube is recommended. Follow its official installation instructions. Remember, your Kubernetes cluster should have at least 4 GB of RAM on each node.
- Load Balancer: By default, Tutor deploys a LoadBalancer service that exposes the Caddy deployment externally. The service is key for SSL/TLS certificate generation. Point your DNS records to this LoadBalancer to ensure proper functioning.
- SSL/TLS Certificates: Essential for secure communication, the Caddy load balancer generates these.
- S3-like Object Storage with MinIO: For persisting data like files uploaded by students and course designers since Kubernetes makes it challenging to share filesystems across pods.
- Kubernetes Dashboard: While not mandatory, a visual interface like the official Kubernetes dashboard can be incredibly helpful.
Managing Tutor Open edX on Kubernetes is complex and assumes familiarity with Kubernetes. Unlike local installations designed for novices, Kubernetes deployment requires advanced knowledge. For instance, you’ll start the Caddy load balancer with tutor k8s start caddy, then point your DNS records to the external IP obtained from kubectl —namespace opened get services/caddy.
For object storage, enabling the MinIO plugin with tutor plugins enable minio is necessary. The setup emulates AWS S3, storing files on—premises.
For a smoother management experience, accessing the Kubernetes dashboard can provide valuable insights, which can be easily accessed on Minikube with the Minikube dashboard. For AWS users, specific instructions are provided, while Tutor also offers a basic status overview with tutor k8s status.
Debugging Tutor Open edX can be efficiently managed using Python breakpoints. Start the development in detached mode using the -d flag. Next, insert a Python breakpoint in your code wherever you need to investigate.
You can do this by adding breakpoint() in the code. After setting the breakpoint, attach it to the relevant service’s container. Do this by running start followed by the name of the service you want to debug:
|# Start in detached mode:tutor dev start -d# Debugging LMS:tutor dev start lms# Or, debugging CMS:tutor dev start cms
Run Your Tutor Environment With Appsembler
While running Tutor Open edX independently or with an internal team is possible, partnering with Appsembler offers a compelling alternative. Shifting your focus from management of the technical aspects to developing courses is essential, and this is where Appsembler comes in. The transition frees up valuable resources and ensures that your team focuses on providing educational excellence.
Appsembler lets you focus on what matters: creating potent learning experiences. That’s all about improving an educational channel for teachers and learners. Appsembler deals with the technical side, letting you make all your efforts to change the education process.
The standout feature of Appsembler is our white-glove migration service that makes moving to Appsembler a breeze and your Tutor Open edX environment’s migration seamless and stress-free. The approach ensures minimal process disruptions while keeping your data and user experience intact.
Choosing Appsembler for your Tutor Open edX platform means entrusting the technical aspects to experts. With 24/7 uptime with zero downtime for end-to-end security and continued support, our systems ensure smooth operations of your LMS. The level of reliability and expertise means you don’t have to worry about the complexities of running an LMS.
Learn how the leading platform from Appsembler unlocks the potential of experiential learning and revolutionizes your learning experience. Take the first step towards accelerating your business by requesting a custom product demo today. Let the Appsembler team show you how to achieve your educational goals with a tailored solution.