diff --git a/provision/code_ocean.vagrant.yml b/provision/code_ocean.vagrant.yml new file mode 100644 index 00000000..8b840614 --- /dev/null +++ b/provision/code_ocean.vagrant.yml @@ -0,0 +1,73 @@ +default: &default + flowr: + # When enabled, flowr can assist learners with related search results from + # StackOverflow.com regarding exceptions that occurred during code execution. + # The search is initiated through the learners' browser and displayed in the output pane. + enabled: false + # The number of search results to be displayed + answers_per_query: 3 + + code_pilot: + # When enabled, CodePilot can be used by learners to request individual help by a tutor + # through a video conferencing system. Optionally, it also provides access to recordings + # of previous sessions. Support for CodePilot is currently in beta. + enabled: false + # The root URL of CodePilot + url: //localhost:3000 + + codeharbor: + # When enabled, CodeHarbor is integrated in the teachers' view and allows importing + # and exporting exercises from CodeOcean using the ProFormA XML format to CodeHarbor. + enabled: false + # The root URL of CodeHarbor + url: https://codeharbor.openhpi.de + + codeocean_events: + # When enabled, learner-specific events within the editor are stored and can be used + # as part of learning analytics. This setting enables the JavaScript event handlers. + enabled: false + + prometheus_exporter: + # When enabled, a dedicated endpoint using the Prometheus format is offered and might + # be used by a Prometheus-compatible monitoring system. Exported metrics include absolute + # counters of all relations with specific support for Request-for-Comments. + enabled: false + + runner_management: + # When enabled, CodeOcean delegates the handling and management of (containerized) runners + # to a dedicated runner management. Otherwise, code executions are performed locally using + # Docker and without pre-warming support (one container per execution). + enabled: true + # The strategy to use. Possible values are: poseidon, docker_container_pool + strategy: docker_container_pool + # The root URL of the runner management to use + # If a hostname is specified and the target host is reachable via IPv6, the WebSocket + # connection might not use the IPv6-to-IPv4 fallback but rather fail unexpectedly. + url: http://127.0.0.1:7100 + # The root certificate authority to trust for TLS connections to the runner management (Poseidon only) + # ca_file: /example/certificates/ca.crt + # The authorization token for connections to the runner management (Poseidon only) + # If TLS support is not enabled, this token is transmitted in clear text! + # token: SECRET + # The maximum time in seconds a runner may idle at the runner management before it is removed. + # Each begin of an interaction with the runner resets this time. Thus, this value should + # be truly greater than any permitted execution time of an execution environment. + unused_runner_expiration_time: 180 + + +development: + <<: *default + flowr: + enabled: true + codeharbor: + enabled: true + + +production: + <<: *default + prometheus_exporter: + enabled: true + + +test: + <<: *default diff --git a/provision/provision.vagrant.sh b/provision/provision.vagrant.sh index ef8d9d14..30f55971 100644 --- a/provision/provision.vagrant.sh +++ b/provision/provision.vagrant.sh @@ -4,7 +4,7 @@ postgres_version=14 node_version=14 -ruby_version=2.7.5 +ruby_version=2.7.6 ########## INSTALL SCRIPT ########### @@ -92,7 +92,7 @@ gem install bundler cd /home/vagrant/codeocean # config -for f in action_mailer.yml database.yml secrets.yml code_ocean.yml docker.yml.erb mnemosyne.yml +for f in action_mailer.yml database.yml secrets.yml docker.yml.erb mnemosyne.yml do if [ ! -f config/$f ] then @@ -100,6 +100,12 @@ do fi done +# We want to use a preconfigured code_ocean.yml file which is using the DockerContainerPool +if [ ! -f config/code_ocean.yml ] +then + cp provision/code_ocean.vagrant.yml config/code_ocean.yml +fi + # install dependencies bundle install yarn install