Cookiecutter Open edX is a community maintained project for jumpstarting and managing production-ready installations of the Open edX:tm: online learning management system running at scale on Kubernetes cloud infrastructure.
The cookiecutter project helps you to remain focused on the blue boxes by providing you with templated solutions for everything else.
To provide a consistent onboarding experience to new Cookiecutter users we also manage a few other repositories on which the automated build and deployment workflows depend. These include:
- an Open edX Plugin that contains modifications that are needed when installing Open edX:tm: to Kubernetes.
- a collection of tutor plugins that are needed when installing Open edX:tm: to Kubernetes.
- a Github Action that automatically creates AWS Elastic Container Repositories for you if they're referenced in your workflow.
- any repositories which we've forked on an interim basis in order to facilitate Kubernetes-specific customizations, the PR's of which are pending in their respective upstream repositories.
Additionally, we maintain the following repositories that include working code samples and best practices for customizing and extending the feature set of Open edX installations:
- an example Open edX plugin that includes working, maintained code samples illustrating how to accomplish various programming and integration tasks.
- an example Open edX custom theme that provides scaffolding to help you get started with cusomizing the appearance of your Open edX:tm: platform
And finally, if you use Wordpress as your marketing site then we also maintain the following projects:
- a custom Open edX Third Party oAuth backend for Wordpress.
- an Open edX Plugin that implements a Wordpress memberpress REST API client.
We want to make it easier and more economical for small educational institutions, non-profits and ed-tech companies to leverage Open edX:tm: software. A single technology enthusiast should be able to maintain an Open edX:tm: platform on a part-time basis. Typical platforms should incur less than $500 usd in monthly cloud infrastructure costs.
Online learners are accustomed to performant, reliable and safe user experiences across the Internet, and they expect the same from your platform. But infrastructure and systems management are complex, constantly evolving matters that are hard to do well, and they don't provide any meaningful differentation for your project. Compounding matters, installing and configuring Open edX:tm: software is notoriously complex; even more so if you need to run your platform at scale. Lastly, keeping packaged software and infrastructure properly maintained is hard work. Cloud infrastructure providers evolve and the back end services they offer undergo routine updates. Open edX:tm: releases new features. New security threats surface on a regular basis.
We believe that these are problems best solved by the Open edX community and that Cookiecutter Open edX's templated infrastructure-as-code strategy is the best way to facilitate this.
The Cookiecutter Open edX project was originally conceived in 2021 by project members working on the Government Communications eLearning project for the UK Cabinet Office which they generously open-sourced. The principal project maintainer is Lawrence McDaniel, a full stack developer and Open edX community blogger.
The Government Communications eLearning platform was one of the first Docker-based Open edX:tm: platforms to launch at scale on Kubernetes-based cloud infrastructure. The devops team from this project brought a wealth of knowledge about cloud infrastructure, Kubernetes, CI/CD and infrastructure-as-code. Their efforts led to a robust set of integrated Terraform modules and fully automated CI solutions for building and deploying Open edX:tm: to Kubernetes. Moreover, they codified their extensive knowledge of CI and Kuberenetes best practices, maximizing the potential of these evolving technologies. In early 2022 this codebase was refactored into a more generalized collection of Jinja templating tools now known as "Cookiecutter Open edX" that is more suitable for community use and provides easy onboarding. Since then, the scope and feature set of Cookiecutter Open edX has grown considerably.
Contributors are welcome! Contact me here: lawrencemcdaniel.com if you're interested in becoming a contributor to this project.
Don't forget to take a look at our cousin organization Open edX Github Actions where we manage a collection of several dozen Github Actions components that are used to create our automated Build and Deploy workflows.