learning-pod is an independent implementation. It is not a fork, port, or
derivative of Tutor (https://github.com/overhangio/tutor, AGPL-3.0).
To keep this project unambiguously Apache-2.0 and free of AGPL obligations, the following rules apply to everyone who contributes:
- Do not read Tutor's source code. Not the Python, not the templates, not
the plugin internals. If you have read it in the past, that's fine — just
don't consult it while working on
learning-pod. - Permitted reference material:
- Official Open edX documentation at https://docs.openedx.org/
- The
edx-platformrepository's own configuration examples, Dockerfiles, and service definitions (AGPL-3.0, but we are reimplementing orchestration around it, not copying it into our codebase). - Tutor's public-facing documentation (user-facing commands, config schema) — interfaces, not implementation.
- Upstream project docs: Podman, docker-compose spec, MySQL, MongoDB, Redis, Elasticsearch, Caddy.
- Your own experimentation against a running Open edX instance.
- When in doubt, reimplement from first principles. If a config key name
happens to match Tutor's (e.g.
LMS_HOST), that's convergent naming from Open edX conventions, not derivation. - Attribution. This file exists precisely so the clean-room boundary is documented and defensible.
learning-pod launches, configures, and manages Open edX containers. The
Open edX software itself remains AGPL-3.0 and is not redistributed as part
of this project — we pull official container images at runtime.