Commit Graph

171 Commits

Author SHA1 Message Date
Régis Behmo d454cfd72d Add openedx-assets command
This is great for running a local webserver and watching theme changes
in just two commands.
2018-12-25 19:25:23 +01:00
Régis Behmo 22aa54d88f Automatically build themes from openedx/themes
No need for the THEMES variable.
2018-12-25 19:25:23 +01:00
Régis Behmo 14b1047424 Upgrade demo course 2018-12-25 19:25:23 +01:00
Régis Behmo 3b215c9f88 Package static assets inside the openedx image
This allows us to deploy much faster: all we have to do is to copy the
assets from the container to the shared volume.

We also changed the way themes are managed: similarly to static assets,
they are now packaged inside the docker image.
2018-12-25 19:25:23 +01:00
Frank Anderson beabe6c0cf Update Makefile
Moved the Comments to the beginning of the so `make` doesn't attempt to run the comments as commands.
2018-12-18 18:35:53 +01:00
Régis Behmo e94fee1767 Document how to run forked edx-platform 2018-11-26 12:07:58 +01:00
Régis Behmo 1d8fd232a5 Accelerate container bootstrapping
We don't need to run "chmod" on openedx files outside of development
mode. So, there is no need to set the USERID environment variable in
most cases. This should considerably accelerate pretty much all commands
that involve the openedx container.

For discussion consult PR #98.
2018-11-23 13:48:02 +01:00
Silvio Tomatis d9f7ff830a Add missing line continuation in `assets-development-[cl]ms` 2018-11-23 12:00:51 +01:00
Régis Behmo 23ce23e76d No need for dependent containers in assets tasks 2018-11-20 19:06:43 +01:00
Régis Behmo 274432436f Fix assets generation in development
webpack requires the NODE_ENV environment variable which is incorrectly
set "paver update_assets" in development mode. To avoid this issue, we
split update_assets into its subparts.
2018-11-20 17:55:00 +01:00
Frank Anderson b949a44a78 Add "restart-openedx" make command
Close #91
2018-11-17 08:42:59 +01:00
Régis Behmo 1dab77178d Fix Android apk path
Close #70
2018-10-03 15:43:21 +02:00
Régis Behmo b78d285779 Fix 'dorum' typo 2018-10-02 18:14:39 +02:00
Régis Behmo e60e0071c4 Make feature flags interactive
Feature flags are now asked to the user interactively, as part of the
configuration step. This makes defining feature flags much more simple.
2018-09-30 14:37:49 +02:00
Régis Behmo 96ab171f1c Revert "By default, don't push android image to dockerhub"
This reverts commit 8392f4a2d3.

Actually, no personal data is included in the Android image, so it's
perfectly fine to push it to docker hub.
2018-09-30 13:49:07 +02:00
Régis Behmo 8392f4a2d3 By default, don't push android image to dockerhub 2018-09-30 13:29:38 +02:00
Régis Behmo 1357311be7 Add logging commands 2018-09-29 18:29:10 +02:00
Régis Behmo 6307a1888e Better naming for shell commands 2018-09-29 18:24:35 +02:00
Régis Behmo 050dfc9b23 Better naming for db make targets 2018-09-29 18:24:35 +02:00
Régis Behmo 4f3117f81b Better naming of android make targets 2018-09-29 18:24:33 +02:00
Régis Behmo 0d96033e1f Provide better names for help sections 2018-09-29 18:23:11 +02:00
Régis Behmo 500d690074 Add a self-documenting Make help
Picked from https://github.com/openfun/fun-platform, which itself picked
it from https://marmelab.com/blog/2016/02/29/auto-documented-makefile.html

Running `make help` or simply `make` now produces a beautiful colored
help.
2018-09-29 18:22:06 +02:00
Régis Behmo 7f5e91a0db ACTIVATE_* env vars are only necessary during configuration 2018-09-29 17:36:25 +02:00
Régis Behmo f85b0abac4 Add portainer as an optional feature 2018-09-29 15:10:25 +02:00
Régis Behmo 22872412c3 Collect some usage stats 2018-09-18 20:25:58 +02:00
Régis Behmo 30bc6df091 Improve wait for mysql db to be ready 2018-09-16 13:24:17 +02:00
Régis Behmo 75d86252bc Push notes to docker hub on 'make push' 2018-09-15 20:31:49 +02:00
Régis Behmo 4964f12725 Rename provision and oauth2 make targets 2018-09-15 20:25:13 +02:00
Régis Behmo 5ca9cec888 Add optional Student Notes service
With notes, students can annotate sections of the courseware.
2018-09-15 18:11:15 +02:00
Régis Behmo 04a0fb5902 Simplify configurator
Template files are now directly loaded in the configurator container, so
that it is possible to run the configurator container directly, outside
of this project.
2018-09-15 17:22:02 +02:00
Régis Behmo b0f2adb931 Read default settings from environment variables
Moreover, ACTIVATE_* variables are now made permanent. It is no longer
necessary to re-declare them at each call of `make configure`.
2018-09-15 15:51:41 +02:00
Régis Behmo 509bb91ef3 Split make assets command in two 2018-09-15 15:13:37 +02:00
Régis Behmo e1d73660d2 Rename up & daemon make commands
The new commands are "run" and "daemonize". Older commands are
preserved, although they are undocumented.
2018-09-15 12:20:35 +02:00
Régis Behmo f9a202083f Enable course search and discovery
Also, improved openedx logging, so that logs are not emitted twice.
2018-09-15 12:17:24 +02:00
Régis Behmo 7e5dda28f0 Make sure configurator is pushed on 'make push'
Close #61.
2018-09-06 07:35:26 +02:00
Régis Behmo 3587a187cd Get PWD to work with "sudo"
The PWD environment variable is not available in the Makefile when a
"make" command is run with "sudo".

Close #50
Close #60
2018-09-04 12:13:18 +02:00
Régis Behmo 161de4629a Print out git version in "make info" 2018-09-03 07:53:34 +02:00
Régis Behmo 21608386de Fix "pull access denied for certbot_image"
Close #52
2018-08-28 15:53:26 +02:00
Régis Behmo 8e46b4ca2b Make Xqueue an optional feature
Xqueue is no longer run by default. Instead, add the ACTIVATE_XQUEUE
environment variable to add it to the platform.
2018-08-19 14:49:14 +02:00
Régis Behmo c883af35f7 Add HTTPS support
HTTPS is now fully supported. The ACTIVATE_HTTPS feature flag needs to
be set. Required domain names are LMS_HOST, preview.LMS_HOST and
CMS_HOST.

Close #46.
2018-08-19 14:49:14 +02:00
Régis Behmo af6e62b069 Migrate templating to jinja2
In the future, jinja2 templates will allow us to create more complex
configuration templates.
2018-08-18 07:48:30 +02:00
Régis Behmo ea2dd7c4fb Generate configuration from Docker
We no longer run the `configure` script on the host. Instead, we run a
container that generates the configuration files. This opens the way for
more complex configuration templates that would be written in jinja2.
More complex templates are required for feature flags, such as SSL,
XQUEUE, etc.
2018-08-16 14:42:10 +02:00
Régis Behmo ac7fe77280 hawthorn.1 release
From a deployment perspective, this release comes with an upgrade of the
cs_comments_service (forums) and a change to the logging configuration.
2018-08-08 15:02:49 +02:00
Régis Behmo 245655908a Document the LMS/CMS urls
This closes issue #42.
2018-07-16 19:42:39 +02:00
Régis Behmo 5e45e80c50 Improve docs regarding opening issues 2018-06-18 14:58:34 +02:00
Régis Behmo 61bcc2aa29 Add convenient `make debug` command
This command will certainly be used for github issue templating.
2018-06-18 14:20:08 +02:00
Régis Behmo 9d4743f00e Give mysql more time
On Travis CI, provisioning may fail if mysql hass less than 10s to
bootstrap.
2018-06-08 19:18:17 -04:00
Régis Behmo 560f520af1 REALLY stop the containers on "make stop" 2018-06-08 18:50:12 -04:00
Régis Behmo 85e7e45067 Wait more smartly for mysql DB to be ready
We replace the custom script wait-for-greenlight by dockerize: it is a
generic tool that allows for different services to be up. Also, on day,
it will allow us to generate config files dynamically (maybe).
2018-06-08 18:31:26 -04:00
Régis Behmo 8366376bd0 Run provision command faster
By not setting the USERID environment variable, we don't have to chown
the /openedx folder, which makes the "provision" command much faster.
2018-06-08 17:19:12 -04:00
Régis Behmo 43a97e5fe3 Add xqueue services
Xqueue containers consist of two services: a gunicorn service, that
receives requests from LMS/CMS, and a worker service. I guess the worker
service receives orders from the gunicorn service, through rabbitmq.
(but I'm less than certain about that).

While adding xqueue containers, we refactored the way mysql databases
are created, and how the root password is loaded. Also, we silenced some
options from the configure script.
2018-06-04 23:41:22 -04:00
Régis Behmo 71912293a1 🤖 1-click android app building
TODO: README
2018-05-28 00:25:56 -04:00
Régis Behmo f5a407cae7 🤡 Activate discussion forums 2018-05-28 00:25:56 -04:00
Régis Behmo a213d2698e Build images with docker and not docker-compose
Otherwise, for some reason, it is not the right image that is uploaded
to dockerhub.
2018-05-24 15:56:27 +02:00
Régis Behmo bfbc0c2b5b Switch docker hub username 2018-05-16 19:35:18 +02:00
Régis Behmo 9143413a7a Run migrations without opening port 2018-05-16 19:18:27 +02:00
Régis Behmo b488bcf8ec Download, don't build
Images are no longer built locally, Instead, they are downloaded from
docker hub. This completely changes config file organisation. In
particular, we no longer copy configuration files to the original docker
image.
2018-05-16 19:07:31 +02:00
Régis Behmo 7189ea90bf USER_ID -> USERID for coherence 2018-04-30 09:01:40 +02:00
Régis Behmo 6bdc34e560 Fix "bash: /root/.bashrc: Permission denied" error
Closes #20.
2018-04-25 21:48:15 +02:00
Régis Behmo 419aa27501 Make sure default settings are respected
Closes #20
2018-04-24 08:19:39 +02:00
Régis Behmo 93a8fa0cba Collect assets with user-specified settings
This allows the user to easily collect assets in development
2018-04-21 12:41:34 +02:00
Régis Behmo 723836cc03 Fix unavailable demo course about pages
Demo course about pages were not available (and probably many other
pages as well) because the preview url was the same as the real url.

Kudos to @dannielarriola for solving this!

Close issues #11 #7.
2018-04-20 09:36:38 +02:00
Régis Behmo 9ddc11a47b Collect assets for production
If we don't do this, assets are collected with the devstack settings by
default, which will fail.
2018-04-19 21:14:58 +02:00
Régis Behmo 1f7e68c662 Working devstack
This allows the user to run their own devstack inside the containers.
Yay!

Also, we handle file permissions cleanly: in docker-entrypoint.sh we
chmod the data and edx-platform files to the same UID of the user on the
host machine. No more permission headaches!
2018-04-12 11:36:14 +02:00
Régis Behmo 1f0509be2b Add note to Makefile 2018-03-26 19:26:04 +02:00
Régis Behmo 6361b9ad58 Fix SQL race condition
When running "wait-for-mysql.sh", the "echo 'show tables' | manage.py
dbshell" command is always considered a success, even if the database is
unreachable ($? == 0). So we replace this command by a global system
check.

This closes #3.
2018-02-10 18:38:17 +01:00
Régis Behmo 81af46fbe9 Create staff user, fix studio nginx static assets 2018-01-29 17:21:47 +01:00
Régis Behmo 0ff97197d0 Working stack: still some bugs to fix 2018-01-29 17:21:32 +01:00
Régis Behmo 61abe7691b Add import-demo-course make command 2017-09-19 10:54:45 +02:00
Régis Behmo e357e763d7 Multiple improvements, including Ginkgo compatibility
Docker stack now includes a studio, smtp server, rabbitmq container and
an LMS worker. There are still a couple things to do, though. (see
TODOs)
2017-07-25 23:24:36 +02:00
Régis Behmo 12e08d7c5d Simplify migrations and static collection
Migrations and static assets collection are no longer performed every
time we build an image. Instead, they are run on command.
2017-07-23 19:27:25 +02:00