Commit Graph

431 Commits

Author SHA1 Message Date
Régis Behmo b557cf9b43 Simplify the release process
Instead of pushing to multiple remotes, push to just one. It will then
sync changes to the other.
2021-03-17 17:33:06 +01:00
Régis Behmo 877cf52c4c docs: tutor is a registered trademark 2021-02-19 13:47:43 +01:00
Régis Behmo 02f9d8db44 Upgrade to open-release/koa.2 2021-02-10 00:15:54 +01:00
Régis Behmo 0f1dbf0ba5 Fix troubleshooting instructions
There was an extra paragraph which should not have been there.
2021-02-01 09:10:00 +01:00
Adolfo R. Brandes d4b067483d Fix default settings on development environment
First, allow using custom Django settings on a development
environment (as documented but not implemented), setting it to the
correct value of `tutor.development`.  Prior to this, `tutor dev
runserver lms` would default to `tutor.production` when on a custom edX
branch.

Second, fix the documentation so the correct environment variable is
described, at the same time removing an option that doesn't seem to work.

See discussion: https://discuss.overhang.io/t/koa-dev-lms-doesnt-find-static-content/1250
2021-01-29 08:43:46 +01:00
Régis Behmo 8d803fb08b Get edx-platform unit tests to run
We manage to get unit tests to run in a dedicated openedx-test container. Only
35 tests are failing (out of 17k). I suspect these tests are also failing in
the devstack.
2021-01-20 14:37:10 +01:00
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
Régis Behmo b01f4d9c0e Better `dev` environment
The `dev` commands now rely on a different openedx-dev docker image.
This gives us multiple improvements:

- no more chown in base image
- faster chown in development
- mounted requirements volume in development
- fix static assets issues
- bundled ipdb/vim/... packages, which are convenient for development

Close #235
2019-10-24 20:03:36 +02:00
Régis Behmo d1f7d02470 Improve docs
- Add tutor logo
- add "edit on github" links
- modify theme colors
- and various other things...
2019-10-17 17:21:35 +02:00
Régis Behmo 8d4f335716 Fix erroneous docs on unsupported features. 2019-10-10 15:38:03 +02:00
Régis Behmo b04b9e19c1 docs: include user testimonials 2019-10-08 22:25:20 +02:00
Régis Behmo 7361c60845 Clarify init command in docs
"init" command should be run after "start".
2019-10-07 19:27:24 +02:00
Régis Behmo 617e190aed Fix upgrading title level in documentation 2019-10-07 14:44:04 +02:00
Régis Behmo 2b8c0778b2 Fix readme compilation 2019-10-07 14:40:49 +02:00
Régis Behmo 5e6ad893a6 Coolify readme 2019-10-07 14:26:17 +02:00
Régis Behmo 8659b6e7ac Added config values for #gunicorn workers 2019-09-19 15:39:18 +02:00
Régis Behmo 7790028cf7 Move tutor-minio to dedicated plugin repo 2019-08-20 17:46:53 +02:00
Régis Behmo be1ff08917 Add all plugins (with data) to binary bundle
All existing plugins are added to the binary bundle, in their latest
version, so that users don't need to pip install tutor.

Also, the tutor MANIFEST.in file was removed to simplify the management
of package data.

Close #242.
2019-08-20 17:03:46 +02:00
Omar Al-Ithawi 67ec24765a Fix tutor binary permission error on MacOSX 2019-07-24 12:53:15 +02:00
Omar Al-Ithawi 82b985d326 Fix tutor binary permission error on MacOSX 2019-07-24 12:53:15 +02:00
Régis Behmo 87cd65fe28 Document new and existing plugins 2019-07-11 14:09:39 +08:00
Régis Behmo 002d9edccc Improve plugin config documentation 2019-07-11 11:05:57 +08:00
Régis Behmo d7477ba348 Add support for SMTP SSL, in addition to TLS
Note that SSL and TLS are incompatible.

Close #231.
2019-07-08 06:24:35 +08:00
Régis Behmo a68dc4f68f Add support for external SMTP server with TLS
Note that this setting will not work with the default namshi smtp server
shipped with tutor.

Close #231.
2019-07-07 10:17:49 +08:00
Régis Behmo 931dac2e68 Add pre-init hook
The 0003 migration from the certificates app of the LMS requires that
the S3-like platform is correctly setup during initialisation. To solve
this issue, we introduce a pre-init hook that is run prior to the LMS
migrations.
2019-07-05 14:19:23 +08:00
Régis Behmo c07032f826 Fix CI image building 2019-07-04 17:29:30 +08:00
Régis Behmo 11e735f4e5 Migrate notes to a dedicated plugin 2019-07-04 09:31:12 +08:00
Régis Behmo 07a0323d8e Move Xqueue to a dedicated plugin
This gives us the opportunity to develop new hooks: build-image and
remote-image.
2019-07-04 09:31:12 +08:00
Matthieu Falce 99d3dfc704 Change typo in FAQ
First / third person description mismatch.
2019-07-01 16:01:09 +02:00
Régis Behmo 18e908cebc Minor docs space formatting 2019-06-25 15:53:24 +02:00
Régis Behmo edc844fd51 Fix docs formatting 2019-06-25 14:46:43 +02:00
Régis Behmo dbab2337b6 Minord docs change: update release instructions 2019-06-24 12:41:19 +02:00
Régis Behmo b7937c8c5b Push plugin packages to pypi 2019-06-23 23:11:07 +02:00
Régis Behmo 866aae5cfe Remove references to Regis' dockerhub account 2019-06-23 23:11:07 +02:00
Régis Behmo de5b82fd63 Migrate github repo to overhangio organization 2019-06-23 23:11:07 +02:00
Régis Behmo dce234bc1e Move tasks from travis-ci to gitlab CI
We only keep travis-ci for building MacOS/Linux binaries.
2019-06-23 23:11:07 +02:00
Régis Behmo 7a89e3ae70 Fix WEB_PROXY docs in k8s quickstart
WEB_PROXY=true is not automatically setup during k8s quickstart, user
should define this configuration parameter manually.
2019-06-23 10:35:38 +02:00
Régis Behmo 3a444a2e05 Document required k8s cluster/client versions 2019-06-19 11:56:26 +02:00
Régis Behmo 84f2060d33 Working Kubernetes quickstart
The k8s quickstart command is now functional, with suppport for https,
xqueue, notes and minio. There are still a few bugs to get rid of,
though.
2019-06-17 22:38:55 +02:00
Régis Behmo d9b6895629 Pin docker image tags to tutor versions
Having an identical "ironwood" tag for all releases is not practical, in
particular for breaking changes. Thus, docker images are now pinned to
the tutor version that they were build with.
2019-06-17 20:40:46 +02:00
Régis Behmo bc21102cf4 Make configuration silent (non-interactive) by default
Thus, we remove the -y/--yes options, which were kind of unintuitive,
and we add instead `-i/--interactive`. The quickstart commands remain
interactive by default, but can be silenced with `-I/--non-interactive`.
2019-06-07 22:49:45 +02:00
Régis Behmo 18d05fcbbb Replace `databases` command by `init`.
Since initialisation does not only refer to database migrations, it
makes more sense to rename this command.
2019-06-07 22:49:45 +02:00
Régis Behmo 334f3e720e Towards a stable Kubernetes integration
Missing features:
- https certificates
- xqueue
- lms/cms workers

Moreover, we scalability issues due to the uploaded file storage in the
lms/cms. To address this issue we need to develop the MinIO plugin so
that it becomes compatible with Open edX.

Close #126 #179 #187
2019-06-07 22:49:45 +02:00
Régis Behmo 7a3c0e2f84 Upgrade from ironwood.1 to ironwood.2
Because https://github.com/edx/edx-platform/pull/20325/ was merged in
ironwood.2, we no longer need this patch.
2019-06-07 22:49:45 +02:00
Régis Behmo 3362308ad3 Improve lms/cms logging
- deduplicate stdout logs
- don't persist celery logs
- persist logs to all.log by default
2019-05-29 09:53:15 +02:00
Silvio Tomatis b79cd1799b Make it possible to persist lms/cms logs to files
By symlinking /dev/stdout to a .log file, we make it possible for users
to manually persist lms/cms logs to a file.
2019-05-29 09:53:15 +02:00
Régis Behmo ea6c276b69 Add missing quotes in documentation 2019-05-22 20:03:46 +02:00
Régis Behmo 4e98b020db Include lighting talk video in docs 2019-05-20 18:38:43 +02:00
Régis Behmo 2234510cfb Make it possible to configure the notes service hostname
This is important, in particular in development.
2019-05-15 10:52:45 +02:00
Régis Behmo 9e6a387adc Document how to migrate a local platform to a different server
Close #186.
2019-05-13 17:26:39 +02:00
Régis Behmo b4e3c43902 Better documentation
- More concise table of contents
- New intro
- Simpler make commands
- Fix a couple typos here and there
- Get rid of the default github issue template, and start using the
template created online.
2019-05-13 16:34:17 +02:00
Régis Behmo 9dd4c26706 Introduce automatic code formatting/linting
Code formatting makes sure that the python code looks decent, but it
does not check for coding errors.
https://black.readthedocs.io/en/stable/

Code linting runs static error detection on the python code, but does
not bother about formatting: https://pylint.readthedocs.io/en/latest/
2019-05-05 12:30:20 +02:00
Régis Behmo 52c80631c6 Document CLI auto-complete 2019-05-03 07:55:21 +02:00
Régis Behmo e25982ed20 Improve docs wording and de-duplicate from readme
The sphinx `include` directive is great!
2019-04-25 09:36:18 +02:00
Régis Behmo 555845474d v3.3.5 (2019-04-22)
- [Feature] Pluggable LMS/CMS/forum
- [Improvement] Safer environment overwrite. Thanks @silviot! 👐
- [Security] Fix Jinja2 vulnerability
- [Improvement] Improve CLI cold start performance
- [Improvement] Allow uppercase "Y" and "N" as answers to boolean
questions
2019-04-22 16:50:09 +02:00
Régis Behmo 1a94b05188 Better release descriptions
By using `github-releases`, we can now generate much better release
description blurbs.
2019-04-22 15:15:47 +02:00
Régis Behmo 847678bb07 Get rid of the "latest" release tag
The "latest" tag is a pain to maintain: it's a tag that we delete and
re-create at every release. Whenever we delete it, the binaries become
unavailable on Github until they are re-generated. Thus, from now on, we
conform to good practices (as examplified by the
github.com/docker/compose) project and distribute only pinned release.

The "nightly" tag remains, for now, as it allows us to distribute beta
features. It may disappear in the future.
2019-04-22 13:36:40 +02:00
Régis Behmo d1f386c149 Pluggable lms/cms/forum
LMS, CMS and forum can now be independently (de)activated. This will be
useful to deploy Tutor on multiple servers.
2019-04-22 11:59:53 +02:00
Régis Behmo 11a0c082ce Document the stop/start restart procedure on new image 2019-04-20 00:43:29 +02:00
Régis Behmo 1a706889b2 Minor docs improvement for k8s 2019-04-09 13:53:42 -07:00
Régis Behmo 3b9880ec74 Rename `--silent` option to `-y/--yes` 2019-04-09 11:17:19 -07:00
WeJie 7a8ecbabec Add quotes for command `$(tutor config printroot)`
https://github.com/regisb/tutor/issues/192
2019-04-09 10:54:08 -07:00
Régis Behmo 1e956b9398 Better source installation instructions
Installing from "python setup.py develop" was causing a strange error:

        error: The 'requests' distribution was not found and is required
        by kubernetes
2019-03-29 06:33:07 -07:00
Régis Behmo 6e6dbed749 Fix remaining references to hawthorn in the docs 2019-03-27 07:56:24 -07:00
Régis Behmo 2f9acb79d9 Fix install from source docs 2019-03-27 07:55:09 -07:00
Régis Behmo 6c44406ba4 use `update_assets` instead of the custom `openedx-assets` script
Now that the correct webpack settings are loaded by the `update_assets`
command in Ironwood, we can stop relying on the `openedx-assets` script.
Actually, we could probably remove it.
2019-03-25 07:41:17 -07:00
Régis Behmo 6889f6fa90 Add unit tests! yay!
Now, that was seriously missing.
2019-03-23 16:16:44 -07:00
Régis Behmo 949761aa29 Introduce the concept of "nightly" release 2019-03-22 23:37:59 +01:00
Régis Behmo 7462f208de Upgrade to Ironwood
Here, we upgrade all images from Ironwood to Hawthorn, except for the
locales, which we did not generate yet.
2019-03-22 23:37:59 +01:00
Régis Behmo 34ca3319a3 Minor doc typo 2019-03-21 19:09:34 +01:00
Régis Behmo a70d48c6bb Easily launch multiple platforms on a single server
By using a web proxy on the host, it's now extremely easy to launch
multiple platforms on a single server.
2019-03-21 19:06:08 +01:00
Régis Behmo f45a24caea Easily configurable web proxy
A web proxy is a web server on the host that will forward request to the
tutor web server. We support Apache2 and Nginx.
2019-03-21 17:38:01 +01:00
Régis Behmo 566fca3c34 Fix missing minor config params in documentation 2019-03-21 14:15:25 +01:00
Régis Behmo 23cb45e3c4 Fix nginx command doc typo 2019-03-21 08:45:58 +01:00
Régis Behmo a85ee37682 Configurable mongodb username/password/port 2019-03-21 00:47:42 +01:00
Régis Behmo e35efa3302 Configurable Rabbitmq authentication 2019-03-20 19:02:39 +01:00
Régis Behmo 0a02d65760 Configurable SMTP server authentication
We can now define non-empty username/password for sending email.
2019-03-20 18:52:57 +01:00
Régis Behmo 7e2bfaf217 Harmonize mysql usernames and passwords
We were using the same password both for the root and the openedx user.
This used to be fine, but alas it is so no longer.
2019-03-20 18:45:20 +01:00
Régis Behmo 259b8961c8 Pluggable SMTP service
This is part of #114
2019-03-20 18:45:09 +01:00
Régis Behmo f6d6fb642d Make it possible to (de)activate individual data services
Close #114
2019-03-20 18:59:09 +01:00
Régis Behmo c6ad8ad7a6 Document newly-created AWS AMI 2019-03-20 08:32:04 +01:00
Régis Behmo bccbd58e20 Easily customise the docker registry
As a consequence, `images` commands lose the `--namespace/--version`
arguments, which were confusing anyway.
2019-03-18 21:53:18 +01:00
Régis Behmo e3b10b72f2 Load configuration values from environment
Configuration values can be loaded from the system environment by adding
a "TUTOR_" prefix.

Environment values supersede values from the user configuration file, so
that we can set values from the command line with "KEY=VAL tutor config
save --silent" even when KEY is already present in the user
configuration file.
2019-03-18 21:47:59 +01:00
Régis Behmo 07b3d113d4 Simplify environment generation
Environment is no longer generated separately for each target, but only
once the configuration is saved.

Note that the environment is automatically updated during
re-configuration, based on a "version" file stored in the environment.
2019-03-18 18:34:42 +01:00
Régis Behmo 3e5e494bd8 Install python requirements in venv in docker image
Installing the requirements in a virtualenv is necessary to run "pip
install ..." commands in development mode, when the USERID is != 0.
2019-03-09 17:51:25 +01:00
Régis Behmo 970ab607b5 Rename "config [non]interactive" command to "config save [--silent]" 2019-03-09 11:27:51 +01:00
Régis Behmo 6d19b99b66 Configurable docker images
Docker images for each service can now be configured one by one.

Close #122.
2019-03-09 11:17:48 +01:00
Régis Behmo 9d6874fc0e Fix USERID setting in development mode
USERID environment variable was no longer passed to docker image in
development mode.

We take the opportunity to improve the documentation regarding the dev
environment.

Close #177.
2019-03-09 11:16:12 +01:00
Régis Behmo ee9f2788e4 Add `make version` command
This makes tagging simpler.
2019-02-24 20:15:36 +01:00
Régis Behmo 1e2166dacf Fix android app build/auth
We had to backtrack from the latest release of the
android app, which is not compatible with the mobile api v0.5 available
in Hawthorn. This should change in ironwood.

Also, we included the correct oauth client ID in the app, which
prevented communication with the LMS.

The android app is now out of beta \o/

Close #89
2019-02-20 19:17:20 +01:00
Régis Behmo 6a5527458f Docs are now hosted with https 2019-02-20 13:53:22 +01:00
Régis Behmo f417fbf4f9 Document cloud deployment 2019-02-20 10:52:54 +01:00
Régis Behmo e7f82b5465 Fix http link to docs 2019-02-19 22:39:04 +01:00
Régis Behmo aa53524f70 Add documentation status badge 2019-02-19 22:37:59 +01:00
Régis Behmo 45703b73b6 Add links to tutor forums 2019-02-19 22:26:43 +01:00
Régis Behmo b05eed92d5 Update installation instructions 2019-02-18 09:53:54 +01:00
Régis Behmo b1d748b119 Add instructions to download the "latest" binaries 2019-02-18 09:45:09 +01:00
Régis Behmo a988b28cfe Fix sphinx html_static_path warning 2019-02-18 09:42:24 +01:00
Régis Behmo 65f7b0f14d Push "latest" binaries to github releases 2019-02-18 09:22:41 +01:00
Régis Behmo b643a87190 Improve documentation on running a local edx-platform
Close #173.
2019-02-17 14:01:43 +01:00
Régis Behmo b266178784 Add draft logo
Logo is based on Exo font. This draft logo will be used until a better
logo is created.
2019-02-17 13:48:02 +01:00
Régis Behmo 877a2239f7 Make tutor ready for the AWS cloud 2019-02-13 23:55:15 +01:00
Régis Behmo 2e2dfc73a6 Clarify dev docs on theming
Close #140
2019-02-13 08:54:10 +01:00
Régis Behmo 3f105a0ef3 Fix local createuser documentation
Close #169.
2019-02-12 17:40:59 +01:00
Régis Behmo 1781e6e3c3 Gif animation for quickstart
Animation created with Terminalizer: https://terminalizer.com/
Try it! It's awesome :)
2019-02-10 19:29:37 +01:00
Régis Behmo 4331bc5712 Tutor v3 complete rewrite
Replace all make commands by a single "tutor" binary. Environment and
data are all moved to ~/.tutor/local/share/tutor. We take the
opportunity to add a web UI and revamp the documentation.

This is a complete rewrite.

Close #121.
Close #147.
2019-02-09 20:30:01 +01:00
Régis Behmo 731ff7fb15 Docs typo 2019-01-22 21:25:41 +01:00
Régis Behmo 6d70dedce0 Make it easy for users to override production settings
Close #131.
2019-01-20 09:24:44 +01:00
Régis Behmo 61e3064c12 Improve theme development docs
This addresses part of issue #121.
2019-01-19 15:17:55 +01:00
Régis Behmo 49317ac3df Open edX requires 4 Gb of RAM
After testing on a 2Gb server, Open edX can be run, but it's unbearably
slow.
2019-01-17 16:48:34 +01:00
Régis Behmo 537b42865f Add "make" to the tutor requirements 2019-01-17 10:42:15 +01:00
Régis Behmo c9314e196d Switch license to AGPL 2019-01-16 17:24:42 +01:00
Régis Behmo 772e8257c3 It is no longer necessary to run "make assets" manually
Instead, assets are copied to nginx automatically on run.
2019-01-15 09:29:27 +01:00
Régis Behmo 422e6c100c Document upgrade to tutor
Close #109
Close #118
2019-01-07 08:22:29 +01:00
Régis Behmo dcd868d30f Rename "import-demo-course" make command 2019-01-07 08:13:47 +01:00
Régis Behmo f38f153c56 Rename "create-staff-user" command to "staff-user" 2019-01-07 08:12:37 +01:00
Régis Behmo 3433a7c046 Improve make commands documentation 2019-01-07 08:10:30 +01:00
Régis Behmo 3b7c1c25c5 Working Kubernetes instakk
This deployment of Kubernetes does not support all features.

Close #116.
2019-01-06 23:09:08 +01:00
Régis Behmo 65fd2114f8 Fix docs demo course external link 2018-12-30 15:13:36 +01:00
Régis Behmo fee0956a5e Better doc titles wording in local install 2018-12-30 15:12:59 +01:00
Régis Behmo 91be239ca1 Update asciinema link 2018-12-27 02:49:12 +01:00
Régis Behmo 13d1baa6b6 Fix quickstart instructions 2018-12-27 01:28:40 +01:00
Régis Behmo 30105610e4 Missing feature wording 2018-12-27 01:27:19 +01:00
Régis Behmo 5937d757fb In quickstart, suggest "make all" and not "local" 2018-12-27 01:17:12 +01:00
Régis Behmo 615cb72921 Attempt to fix doc encoding errors 2018-12-26 19:38:03 +01:00
Régis Behmo 8f7814cad3 Change "openedx-docker" github urls to tutor 2018-12-26 19:29:32 +01:00
Régis Behmo bb5f10fc16 First steps with kubernetes
Kubernetes is currently *not* functional, but it will be, soon!
2018-12-26 19:27:08 +01:00
Régis Behmo eab812b63d Move portainer to a dedicated make command
Portainer is no longer a global activation flag, because it does not
make much sense in the context of kubernetes. Instead, we use a simpler
"make" command.
2018-12-26 19:27:08 +01:00
Régis Behmo a81593f6a8 Rename "singleserver" with "local" deployment 2018-12-26 19:27:08 +01:00
Régis Behmo f2c476f954 Improve documentation 2018-12-26 19:27:08 +01:00
Régis Behmo 87980f484b Rename custom settings from "universal" to "tutor" 2018-12-26 19:27:08 +01:00
Régis Behmo c903ab2b12 Migrate openedx-docker project to Tutor 👩‍🏫
The project gets a new name and some proper documentation. Build/Deploy
are now properly separated.
2018-12-26 19:27:08 +01:00