6
0
mirror of https://github.com/ChristianLight/tutor.git synced 2024-12-04 19:03:39 +00:00
Go to file
Régis Behmo 18ce1f2fe4 feat: persistent bind-mounts
This is an important change, where we get remove the previous `--mount`
option, and instead opt for persistent bind-mounts.

Persistent bind mounts have several advantages:
- They make it easier to remember which folders need to be bind-mounted.
- Code is *much* less clunky, as we no longer need to generate temporary
  docker-compose files.
- They allow us to bind-mount host directories *at build time* using the
  buildx `--build-context` option.
- The transition from development to production becomes much easier, as
  images will automatically be built using the host repo.

The only drawback is that persistent bind-mounts are slightly less
portable: when a config.yml file is moved to a different folder, many
things will break if the repo is not checked out in the same path.

For instance, this is how to start working on a local fork of
edx-platform:

    tutor config save --append MOUNTS=/path/to/edx-platform

And that's all there is to it. No, this fork will be used whenever we
run:

    tutor images build openedx
    tutor local start
    tutor dev start

This change is made possible by huge improvements in the build time
performance. These improvements make it convenient to re-build Docker
images often.

Related issues:
https://github.com/openedx/wg-developer-experience/issues/71
https://github.com/openedx/wg-developer-experience/issues/66
https://github.com/openedx/wg-developer-experience/issues/166
2023-06-14 21:08:49 +02:00
.github depr: halt compatibility with python 3.7 2023-06-14 19:40:58 +02:00
bin feat: migrate to plugins.v1 with filters & actions 2022-04-15 15:30:54 +02:00
changelog.d feat: persistent bind-mounts 2023-06-14 21:08:49 +02:00
docs feat: persistent bind-mounts 2023-06-14 21:08:49 +02:00
requirements depr: halt compatibility with python 3.7 2023-06-14 19:40:58 +02:00
tests feat: persistent bind-mounts 2023-06-14 21:08:49 +02:00
tutor feat: persistent bind-mounts 2023-06-14 21:08:49 +02:00
.coveragerc refactor: add code coverage, cover CLI commands with tests 2022-01-04 13:40:33 +01:00
.gitignore ci: modernize github release script 2022-11-29 15:11:47 +01:00
.gitlab-ci.yml Move to an included CI configuration file 2020-10-02 15:22:30 +02:00
CHANGELOG.md v15.3.7 2023-06-13 10:21:55 +02:00
CONTRIBUTING.rst Clarify contributing/troubleshooting instructions 2020-11-30 15:32:43 +01:00
Dockerfile depr: halt compatibility with python 3.7 2023-06-14 19:40:58 +02:00
LICENSE.txt gpl -> agpl 2019-01-18 15:19:18 +01:00
Makefile depr: halt compatibility with python 3.7 2023-06-14 19:40:58 +02:00
MANIFEST.in feat: add py.typed for typing extensions 2022-10-26 12:28:16 +02:00
pyproject.toml fix: build-time warning 2023-05-17 10:29:32 +02:00
README.rst docs: add license to readme 2023-02-22 11:00:22 +01:00
setup.py depr: halt compatibility with python 3.7 2023-06-14 19:40:58 +02:00
tutor.spec fix: v1 plugins in binary bundle 2022-04-24 15:09:16 +02:00

.. _readme_intro_start:

Tutor: the Docker-based Open edX distribution designed for peace of mind
========================================================================

.. image:: https://overhang.io/static/img/tutor-logo.svg
  :alt: Tutor logo
  :width: 500px
  :align: center

|

.. image:: https://img.shields.io/static/v1?logo=github&label=Git&style=flat-square&color=brightgreen&message=Source%20code
  :alt: Source code
  :target: https://github.com/overhangio/tutor

.. image:: https://img.shields.io/static/v1?logo=discourse&label=Forums&style=flat-square&color=ff0080&message=discuss.openedx.org
  :alt: Forums
  :target: https://discuss.openedx.org/tag/tutor

.. image:: https://img.shields.io/static/v1?logo=readthedocs&label=Documentation&style=flat-square&color=blue&message=docs.tutor.overhang.io
  :alt: Documentation
  :target: https://docs.tutor.overhang.io

.. image:: https://img.shields.io/pypi/v/tutor?logo=python&logoColor=white
  :alt: PyPI releases
  :target: https://pypi.org/project/tutor

.. image:: https://img.shields.io/github/license/overhangio/tutor.svg?style=flat-square
  :alt: AGPL License
  :target: https://www.gnu.org/licenses/agpl-3.0.en.html

.. image:: https://img.shields.io/static/v1?logo=twitter&label=Twitter&style=flat-square&color=1d9bf0&message=@overhangio
  :alt: Follow us on Twitter
  :target: https://twitter.com/overhangio/

.. image:: https://img.shields.io/static/v1?logo=youtube&label=YouTube&style=flat-square&color=ff0000&message=@overhangio
    :alt: Follow us on Youtube
    :target: https://www.youtube.com/c/OverhangIO

**Tutor** is the official Docker-based `Open edX <https://openedx.org>`_ distribution, both for production and local development. The goal of Tutor is to make it easy to deploy, customise, upgrade and scale Open edX. Tutor is reliable, fast, extensible, and it is already used to deploy hundreds of Open edX platforms around the world.

Do you need professional assistance setting up or managing your Open edX platform? Overhang.IO provides online support as part of its `Long Term Support (LTS) offering <https://overhang.io/tutor/pricing>`__.

Features
--------

* 100% `open source <https://github.com/overhangio/tutor>`__
* Runs entirely on Docker
* World-famous 1-click `installation and upgrades <https://docs.tutor.overhang.io/install.html>`__
* Comes with batteries included: `theming <https://github.com/overhangio/indigo>`__, `SCORM <https://github.com/overhangio/openedx-scorm-xblock>`__, `HTTPS <https://docs.tutor.overhang.io/configuration.html#ssl-tls-certificates-for-https-access>`__, `web-based administration interface <https://github.com/overhangio/tutor-webui>`__, `mobile app <https://github.com/overhangio/tutor-android>`__, `custom translations <https://docs.tutor.overhang.io/configuration.html#adding-custom-translations>`__...
* Extensible architecture with `plugins <https://docs.tutor.overhang.io/plugins/index.html>`__
* Works with `Kubernetes <https://docs.tutor.overhang.io/k8s.html>`__
* Amazing premium plugins available in the `Tutor Wizard Edition <https://overhang.io/tutor/wizardedition>`__, including `Cairn <https://overhang.io/tutor/plugin/cairn>`__ the next-generation analytics solution for Open edX.
* No technical skill required with the `zero-click Tutor AWS image <https://docs.tutor.overhang.io/install.html#zero-click-aws-installation>`__

.. _readme_intro_end:

.. image:: ./docs/img/launch.webp
    :alt: Tutor local launch
    :target: https://www.terminalizer.com/view/3a8d55835686

Quickstart
----------

1. Install the `latest stable release <https://github.com/overhangio/tutor/releases>`_ of Tutor
2. Run ``tutor local launch``
3. You're done!

Documentation
-------------

Extensive documentation is available: https://docs.tutor.overhang.io/

Is there a problem?
-------------------

Please follow the instructions from the `troubleshooting section <https://docs.tutor.overhang.io/troubleshooting.html>`__ in the docs.

.. _readme_support_start:

Support
-------

To get community support, go to the official Open edX discussion forum: https://discuss.openedx.org. For official support, please subscribe to a Long Term Support (LTS) license at https://overhang.io/tutor/pricing.

.. _readme_support_end:

.. _readme_contributing_start:

Contributing
------------

We welcome contributions to Tutor! To learn how you can contribute, please check the relevant section of the Tutor docs: `https://docs.tutor.overhang.io/tutor.html#contributing <https://docs.tutor.overhang.io/tutor.html#contributing>`__.

.. _readme_contributing_end:

License
-------

This work is licensed under the terms of the `GNU Affero General Public License (AGPL) <https://github.com/overhangio/tutor/blob/master/LICENSE.txt>`_.