6
0
mirror of https://github.com/ChristianLight/tutor.git synced 2024-12-13 06:37:46 +00:00
Commit Graph

275 Commits

Author SHA1 Message Date
Régis Behmo
75080cc7db Fix dev command to update assets in docs 2021-01-19 11:37:13 +01:00
Régis Behmo
1c927c6e96 Automatically bind-mount volumes from volumes/
This introduces a new dev/local command:

    tutor dev bindmount CONTAINER PATH

And a new volume syntax:

    tutor dev run --volume=PATH CONTAINER

This syntax automatically bind-mounts folders from the tutorroot/volumes
directory, which is pretty nifty.
2021-01-12 22:43:06 +01:00
Régis Behmo
a185898977 Clarify DNS records in installation 2020-12-18 09:19:36 +01:00
Régis Behmo
4b3aa15e78 Fix web proxy docs 2020-12-15 10:35:32 +01:00
Régis Behmo
728ef966dc v11.0.0 (2020-12-09)
- 💥[Improvement] Upgrade Open edX to Koa
- 💥 Setting changes:
    - The ``ACTIVATE_HTTPS`` setting was renamed to ``ENABLE_HTTPS``.
    - Other ``ACTIVATE_*`` variables were all renamed to ``RUN_*``.
    - The ``WEB_PROXY`` setting was removed and ``RUN_CADDY`` was added.
    - The ``NGINX_HTTPS_PORT`` setting is deprecated.
- Architectural changes:
    - Use Caddy as a web proxy for automated SSL/TLS certificate generation:
	- Nginx no longer listens to port 443 for https traffic
	- The Caddy configuration file comes with a new ``caddyfile`` patch for much simpler SSL/TLS management.
	- Configuration files for web proxies are no longer provided.
	- Kubernetes deployment no longer requires setting up a custom Ingress resource or custom manager.
    - Gunicorn and Whitenoise are replaced by uwsgi: this increases boostrap performance and makes it no longer necessary to mount media folders in the Nginx container.
    - Replace memcached and rabbitmq by redis.
- Additional features:
    - Make it possible to disable all plugins at once with ``plugins disable all``.
    - Add ``tutor k8s wait`` command to wait for a pod to become ready
    - Faster, more reliable static assets with local memory caching
- Deprecation: proxy files for Apache and Nginx are no longer provided out of the box.
- Removed plugin `{{ patch (...) }}` statements:
    - "https-create", "k8s-ingress-rules", "k8s-ingress-tls-hosts": these are no longer necessary. Instead, declare your app in the "caddyfile" patch.
    - "local-docker-compose-nginx-volumes": this patch was primarily used to serve media assets. The recommended is now to serve assets with uwsgi.
2020-12-10 01:05:02 +01:00
Régis Behmo
fc3d44bc7e Update demo website deploy schedule 2020-12-09 18:44:28 +01:00
redaready
f334dc47fb Update install.rst
Gb -> GB
2020-12-09 12:33:05 +01:00
Maarten
2b8ac7102e Advice people to run npm install before running openedx-assets build
When I tried running `openedx-assets build` on my `tutor dev lms` machine, I got an error: 

```
openedx@1dfe0ece7805:~/edx-platform$ openedx-assets build --env=dev

mkdir_p path('common/static/common/js/vendor')
mkdir_p path('common/static/common/css')
mkdir_p path('common/static/common/css/vendor')
Copying vendor files into static directory
Traceback (most recent call last):
  File "/openedx/bin/openedx-assets", line 218, in <module>
    main()
  File "/openedx/bin/openedx-assets", line 89, in main
    args.func(args)
  File "/openedx/bin/openedx-assets", line 94, in run_build
    run_npm(args)
  File "/openedx/bin/openedx-assets", line 117, in run_npm
    assets.process_npm_assets()
  File "/openedx/edx-platform/pavelib/assets.py", line 643, in process_npm_assets
    copy_vendor_library(library)
  File "/openedx/edx-platform/pavelib/assets.py", line 614, in copy_vendor_library
    raise Exception(u'Missing vendor file {library_path}'.format(library_path=library_path))
Exception: Missing vendor file node_modules/backbone.paginator/lib/backbone.paginator.js
```
As suggested in [this topic](https://discuss.overhang.io/t/issue-with-paver-update-assets/641) I had to run `npm install` to get the packages it tries to copy from. That makes sense, so I think it should be part of the instructions here.
2020-12-08 12:26:44 +01:00
Régis Behmo
e6176e293c Clarify contributing/troubleshooting instructions 2020-11-30 15:32:43 +01:00
Régis Behmo
cacb4f4cfd Remove dev/local pullimages command
Now that we have the `dc` command this can be simplified to `dc pull`.
2020-11-16 12:50:01 +01:00
Régis Behmo
37a0576934 Fix logging instructions in troubleshooting docs 2020-11-02 08:58:20 +01:00
Régis Behmo
d2d5532386 Clarify forking instructions 2020-10-16 13:10:00 +02:00
Régis Behmo
c3052aa34c Fix WEB_PROXY default value in docs 2020-10-06 11:04:42 +02:00
Régis Behmo
a11f803af5 Fix SAML plugin example in docs
See https://discuss.overhang.io/t/saml-authentication-not-working/975
2020-10-06 09:56:51 +02:00
Régis Behmo
82b06034f9 Add big fat warning about podman-compose 2020-09-21 10:35:36 +02:00
Florian Haas
0f50300ad6 doc: Add warning about docker-compose/podman-compose compatibility issues
Users appear to run into compatibility issues where podman-compose
does not behave exactly as docker-compose. Add a warning that those
issues exist, and that reports about them are welcome on the
Tutor Discourse.

Reference:
https://discuss.overhang.io/t/tutor-with-podman-not-working/905/2
2020-09-21 10:20:37 +02:00
Régis Behmo
ea3839eb74 Introduce the OPENEDX_COMMON_VERSION setting 2020-09-03 17:33:25 +02:00
Régis Behmo
0b4619ff90 Upgrade to juniper.3
Close #365.
2020-08-27 17:48:07 +02:00
Régis Behmo
6980550b7c Clarify image downloading in k8s docs
Close #362
2020-08-16 16:05:06 +02:00
Régis Behmo
70872dfa9b Fix instructions for running "openedx-assets" 2020-08-04 09:24:58 +02:00
Régis Behmo
8e2a06dc6f Apply edx-platform upstream xss security fixes 2020-07-23 16:18:40 +02:00
Régis Behmo
00573d69d6 Fix asset collection docs in dev mode
`paver update_assets` generates errors.

See
https://discuss.overhang.io/t/local-edx-platform-paver-and-juniper/773/2
2020-07-21 11:27:50 +02:00
Régis Behmo
bbd92223ee Make it possible to override the docker registry for individual services
Previously, it was not possible to override the docker registry for just
one or a few services. Setting the DOCKER_REGISTRY configuration
parameter would apply to all images. This was inconvenient. To resolve
this, we include the docker registry value in the DOCKER_IMAGE_*
configuration parameters. This allows users to override the docker
registry individually by defining the DOCKER_IMAGE_SERVICENAME
configuration parameter.

See https://discuss.overhang.io/t/kubernetes-ci-cd-pipeline/765/3
2020-07-21 09:16:51 +02:00
Régis Behmo
ef6b1c3433 Upgrade to open-release/juniper.2 2020-07-16 11:57:35 +02:00
Régis Behmo
27d74c1343 Fix pip install instructions
Close #352.
2020-07-16 09:21:10 +02:00
Régis Behmo
3956abb9aa Clarify instructions to manually upgrade from ironwood 2020-06-17 14:38:54 +02:00
Régis Behmo
c88ffd2994 Fix theme installation instructions
Close #339.
2020-06-17 11:53:41 +02:00
Régis Behmo
4d6de0138a v10.0.0 Upgrade to Juniper (2020-06-15)
Here, we upgrade the Open edX platform from Ironwood to Juniper. This
upgrade does not come with many feature changes, but there are many
technical improvements under the hood:

- Upgrade from Python 2.7 to 3.5
- Upgrade from Mongodb v3.2 to v3.6
- Upgrade Ruby to 2.5.7

We took the opportunity to completely rething the way locally running
platforms should be accessed for testing purposes. It is no longer
possible to access a running platform from http://localhost and
http://studio.localhost. Instead, users should access
http://local.overhang.io and https://studio.local.overhang.io. This
drastically simplifies internal communication between Docker containers.

To upgrade, users should simply run:

    tutor local quickstart

For Kubernetes platform, the upgrade process is outlined when running:

    tutor k8s upgrade --from=ironwood
2020-06-15 10:19:07 +02:00
antoine
5bbc196259 docs: fix typo 2020-06-14 22:38:58 +02:00
Régis Behmo
ca39b87ab6 Fix docs on restarting platform after custom openedx image build
Close #338
2020-06-07 17:52:03 +02:00
Régis Behmo
7f7ded0680 Add SK GM testimonial 2020-06-07 15:32:16 +02:00
Régis Behmo
3831e2e53d Make the mysql root username a configuration parameter
This allows users who connect to an external database to customise the
root username. Indeed, quite often the "root" username is reserved.

Close #328
2020-06-01 17:11:10 +02:00
Régis Behmo
8b8e27a781 Fix android app custom build instructions 2020-05-18 20:30:36 +02:00
Régis Behmo
687066e598 Better documentation of simple yaml plugins 2020-05-18 11:31:29 +02:00
Régis Behmo
ca98507542 Add link to mobile android app in docs 2020-05-11 15:42:54 +02:00
Claudio Acciaresi
be195d5162 Finishing sentence.
Fixing spacing.
2020-05-06 16:52:17 +02:00
Régis Behmo
a52884a311 Remove ingress/issuer from default k8s deployment
There are too many different ways to deploy an Ingress resource and to
generate SSL/TLS certificates: it's too much responsibility to make that
decision for the end user.
2020-04-25 23:12:42 +02:00
Régis Behmo
bce6432d85 Improve job running in local and k8s
Running jobs was previously done with "exec". This was because it
allowed us to avoid copying too much container specification information
from the docker-compose/deployments files to the jobs files. However,
this was limiting:

- In order to run a job, the corresponding container had to be running.
This was particularly painful in Kubernetes, where containers are
crashing as long as migrations are not correctly run.
- Containers in which we need to run jobs needed to be present in the
docker-compose/deployments files. This is unnecessary, for example when
mysql is disabled, or in the case of the certbot container.

Now, we create dedicated jobs files, both for local and k8s deployment.
This introduces a little redundancy, but not too much. Note that
dependent containers are not listed in the docker-compose.jobs.yml file,
so an actual platform is still supposed to be running when we launch the
jobs.

This also introduces a subtle change: now, jobs go through the container
entrypoint prior to running. This is probably a good thing, as it will
avoid forgetting about incorrect environment variables.

In k8s, we find ourselves interacting way too much with the kubectl
utility. Parsing output from the CLI is a pain. So we need to switch to
the native kubernetes client library.
2020-04-25 23:12:42 +02:00
Régis Behmo
091e45fe63 Fix tls certificate generation in k8s
The "Certificate" objects are no longer required. As a consequence, the
"k8s-ingress-certificates" has become useless and should be removed from
plugins.
2020-04-25 14:40:48 +02:00
Régis Behmo
e4ca99b237 Upgrade cert-manager installation in k8s
Note that the spec has changed for v1alpha2.
2020-04-25 14:40:48 +02:00
Régis Behmo
d1f1a33f51 Fix nginx ingress installation instructions in k8s 2020-04-25 14:39:57 +02:00
Régis Behmo
49c71f8af2 Add scorm xblock to the openedx docker image 2020-04-25 14:20:13 +02:00
Régis Behmo
33ab52bfeb Make it easy to add custom translation strings to edx-platform
Users can now add custom translation strings to a locale folder at build
time, very much in the same way as custom themes or requirements. This
is quite convenient, although is does require quite a bit of time to
rebuild the docker images.
2020-04-16 19:30:08 +02:00
Régis Behmo
76d1078382 Make it possible to pull nodejs packages from custom npm registry
During an incident at npmjs.org it was extremely difficult to pull
nodejs packages -- so we made it possible to pull from a custom
registry, deployed for instance with Verdaccio (https://verdaccio.org/).
2020-04-16 19:26:02 +02:00
Régis Behmo
38d6644ef2 Fix docs on waffle switch creation 2020-04-16 11:31:33 +02:00
Régis Behmo
48ca6eb4b0 Fix updates to the course structure in the LMS
When we were changing unit titles in the CMS, the changes were taking a
long time to be reflected in the LMS. That's because the cache key that
corresponds to the course structure was not being updated. It was the
responsibility of an asynchronous LMS celery worker to update this cache
entry. However, this was impossible in most cases because tasks
triggered in the CMS were only processed by CMS workers. That is, unless
we are using a custom celery router:
https://celery.readthedocs.io/en/latest/userguide/routing.html#routers

This is what edx-platform does in the devstack: certain CMS tasks are
forwarded both to CMS and to LMS workers. This is achieved by defining
the ALTERNATE_WORKER_QUEUES="lms" django setting in the CMS.

Adding this setting to Tutor solves the problem in production. However,
in development mode Open edX runs without workers
(`CELERY_ALWAYS_EAGER=True`). This means that the course structure will
not be automatically updated when running `tutor dev` commands, which is
a shame. The alternative is to define the
"block_structure.invalidate_cache_on_publish" waffle switch. This can be
done from the UI (in /admin/waffle/switch/add/) or by running:

    tutor dev run lms ./manage.py lms waffle_switch block_structure.invalidate_cache_on_publish on --create

However, this flag seems to slow down access to the LMS for the first
user who tries to access the course after it has been updated.

Close #302
2020-04-14 19:16:52 +02:00
Régis Behmo
1d8c8e9d53 Improve "what's next instructions" 2020-04-06 09:56:04 +02:00
Régis Behmo
411327662e Add encrypt template filter
This is convenient for htpasswd-based authentication to nginx, for
instance.
2020-04-04 18:22:15 +02:00
Régis Behmo
11fdbaf874 Add uninstallation docs
See
https://discuss.overhang.io/t/how-can-i-completely-uninstall-tutor/370
2020-03-27 09:49:08 +01:00
Régis Behmo
ae2af6b1f8 Fix minor docs issues 2020-03-16 22:33:56 +01:00
Régis Behmo
328e70b8b5 Various docs improvements
There is still a lot of work to do. In particular, local.rst and
configuration.rst are a mess. But that's a job for another time.
2020-03-16 22:27:04 +01:00
Régis Behmo
390c39fa19 Better installation docs 2020-03-16 22:14:36 +01:00
Régis Behmo
325deb4210 Better docs on logs 2020-03-16 21:30:26 +01:00
Régis Behmo
41f14d528b Better explanation of how templates work
Close #273
2020-03-16 21:24:40 +01:00
Régis Behmo
6f2589d7fa Clarify custom theme compilation in dev mode
Close #280
2020-03-16 18:26:14 +01:00
Régis Behmo
244c9d2913 Clarify the RAM requirements, especially for Mac OS.
Close #299.
2020-03-16 18:12:57 +01:00
Régis Behmo
43e841b1cb Add instructions for xblock development
As per
https://discuss.overhang.io/t/best-practice-xblock-development-in-tutor-dev-mode/345
2020-03-16 17:56:09 +01:00
Régis Behmo
cf041568d0 Add a big fat warning against "sudo"
Also, the permission error that is frequently encountered is added at
the top of the list of frequent issues in the docs.
2020-03-16 17:43:55 +01:00
Régis Behmo
28c761fe76 Better docs organization
With this reoreganization, we have a cleaner TOC and more intuitive
content navigation.
2020-03-16 12:07:58 +01:00
Régis Behmo
797167d48a Do not include too many themes to avoid long image build time
To minimize image build time and size, we do not build non-default
themes.
2020-03-13 19:27:01 +01:00
Régis Behmo
5c43d6ee25 Add "settheme" command
This makes it much easier to switch to a new theme.
2020-03-13 19:27:01 +01:00
Régis Behmo
16819bd697 Rename *_PROTOCOL to *_SCHEME 2020-03-12 09:37:22 +01:00
Régis Behmo
00ec6930ae Add simple gunicorn reload script to openedx image 2020-03-10 10:37:14 +01:00
Régis Behmo
0325e7ad95 Rename worker containers from x_worker to x-worker
This is more coherent with k8s.
2020-03-10 10:37:14 +01:00
Régis Behmo
702e8cca7d Make it possible to run an Elasticsearch service on https
This is useful when running elasticsearch from 3rd-party vendors.
2020-03-10 10:37:14 +01:00
Régis Behmo
ef2ae1a9b2 Clarify database dumps 2020-02-27 18:08:04 +01:00
Régis Behmo
872883e36f Switch edx-platform from ironwood.2 to ironwood.master
There are too many patches on top of ironwood.2, and it's not practical
to pull them all one by one. We still want to build on top of a specific
version, and not a branch, so we use a dirty hack to guarantee that the
docker image is properly rebuilt by CI when we change it.
2020-02-27 17:42:43 +01:00
Régis Behmo
83459d43d5 Fix broken elasticsearch configuration
Because we are running a version of elasticsearch older than Methusalem,
the docker environment variables were not properly taken into account.
For instance, the cluster name and "mlockall" settings were incorrect,
as we could see by running:

    $ tutor local run lms curl elasticsearch:9200 | grep cluster_name
    ...
      "cluster_name" : "elasticsearch",
    $ tutor local run lms curl elasticsearch:9200/_nodes/process?pretty | grep mlock
      ...
     "mlockall" : false

See
https://discuss.overhang.io/t/elastic-container-is-not-being-removed/312/3
for discussion.

This fix also introduces a new tutor configuration setting to adjust the
elasticsearch heap size.
2020-02-26 11:47:43 +01:00
Régis Behmo
ff3fea6930 Restore more recent Android app tagged release
A prior change used the ironwood.1 tag to build the Android app in an
attempt to solve #289. Turns out that this change was unnecessary. So
here we revert to a more recent release of the Android app. Instead of
building from the master branch (which might create suprises) we build
from a fixed release tag.

The source repo and version are customisable via build arguments.
2020-02-25 17:29:53 +01:00
Régis Behmo
de57812c2c Minor docs improvements 2020-02-25 17:11:11 +01:00
Régis Behmo
38a49e2ca7 Remove useless docs configuration
We don't need epub/htmlhelp/latgex output.
2020-02-25 17:03:11 +01:00
Régis Behmo
fffc90442e Add youtube videos to docs
This is possible thanks to a custom youtube tag. See
https://jasonstitt.com/youtube-in-restructured-text
2020-02-25 17:02:39 +01:00
Régis Behmo
a35f35f77e Fix "those that are" docs typo 2020-02-25 11:35:36 +01:00
ToddLichty
4c4865cc1b Add instructions for database dumps
Changes proposed in https://github.com/overhangio/tutor/issues/290
2020-02-12 17:05:48 +01:00
Claudio Acciaresi
313f7172ed Updating documentation on how to renew certificates. 2020-01-29 17:52:00 +01:00
Régis Behmo
8dcb2d50a9 Minor doc improvement in theme installation 2020-01-16 10:44:43 +01:00
Régis Behmo
e3444d668c Add support for simple, yaml-based plugins
Those plugins are stored as yaml files in ~/.local/share/tutor-plugins
and follow the same specifications as entrypoint plugins.
2020-01-14 17:35:51 +01:00
Régis Behmo
9b10c1b470 Fix link to cloud install on doc landing page 2020-01-13 22:52:28 +01:00
Régis Behmo
460a7dfc79 Minor docs improvements 2020-01-10 19:03:53 +01:00
Florian Haas
d073481385 doc: Add instructions for running Tutor on Podman
https://podman.io/ is meant to be a drop-in replacement for Docker.
Thus, with some tweaking to the installation environment, it appears
to be perfectly feasible to run Tutor in a Docker-less environment
that only has Podman and podman-compose installed.

Add installation instructions for doing just that.
2020-01-10 18:45:48 +01:00
Régis Behmo
e8248b26d6 Tutor docker images should point to docker.io, too 2020-01-10 17:22:01 +01:00
Régis Behmo
461b0f5746 Remove comment related to cloud install 2020-01-10 16:44:47 +01:00
Régis Behmo
4078c380db Add more links to tutor lts 2020-01-10 15:46:56 +01:00
Régis Behmo
cd0ec8c22a Clarify that tutor runs ironwood 2020-01-10 15:15:56 +01:00
Régis Behmo
899e4dfb9a Upgrade to v3.7 for docker-compose service definition
We were encountering issues when overriding service definitions with
"x-...". These were solved by upgrading docker-compose and switching to
3.7 service definition. As a consequence, the minimum supported docker
version is 18.06.0, as specified by
https://docs.docker.com/compose/compose-file/#compose-and-docker-compatibility-matrix
2020-01-10 11:10:54 +01:00
Régis Behmo
52f094937c Improve troubleshooting instructions
Close #274.
2020-01-10 11:10:54 +01:00
Régis Behmo
d17fdaa658 More feature-complete dev/local docker-compose commands
By de-duplicating the code between dev.py and local.py, we are able to
support more docker-compose run/up/stop options passed from tutor. To do
so, we had to disable some features, such as automatically mounting the
edx-platform repo when the TUTOR_EDX_PLATFORM_PATH environment variable
was defined.
2020-01-10 11:10:54 +01:00
Régis Behmo
9620447a4d Add the lts plugin to the tutor binary 2019-12-25 01:09:53 +01:00
Régis Behmo
0b1cac5134 Make it possible to run plugin subcommands 2019-12-15 18:52:58 +01:00
Régis Behmo
13de3c8adc Move "-r/--root" option to parent command level 2019-12-15 18:52:58 +01:00
Claudio Acciaresi
e9f200a102 Adding missing plugin reference. 2019-12-13 10:00:59 +01:00
Régis Behmo
302e1fc986 Get rid of the local portainer command
It makes more sense to document this command instead of adding it to the
`local` commands. If need be, in the future we should be able to re-add
it as a plugin.
2019-12-05 11:54:44 +01:00
Régis Behmo
0fb9bfe008 Get rid of the indexcourses command
This command adds a burden on the `local` and `k8s` command. It does not
make sense to provide this command out of the box, and not other
administration commands. Instead, we should better document how to run
regular `manage.py` commands from tutor.

Close #269.
2019-12-05 11:49:53 +01:00
Régis Behmo
f66ad1ca32 Docs: install -> installation
"install" is a verb and "installation" is a noun.
2019-11-22 09:32:50 +01:00
Régis Behmo
cac7e947b6 Fix minor internal ref issue in config docs 2019-11-19 21:08:35 +01:00
Régis Behmo
9b6afa20c2 Improve soft link note in dev docs 2019-11-14 11:36:22 +01:00
teruun
c7fba15e00 note softlink not work in theme 2019-11-14 11:32:18 +01:00
Régis Behmo
b1d0039d66 Clarify binary download compatibility with plugins 2019-11-08 10:38:50 +01:00
Régis Behmo
6d419bc8b5 Add favicon to docs 2019-10-25 10:53:59 +02:00
Régis Behmo
85769715a4 Document plugin cookiecutter 2019-10-24 20:28:20 +02:00