Judge0 Versions Save

🔥 The most advanced open-source online code execution system in the world.

v1.13.1

1 month ago

v1.13.1 (2024-04-18)

Security researcher Daniel Cooper (@stacksparrow4) found three critical vulnerabilities in Judge0 versions <= 1.13.0, which this release fixes. Thank you, Daniel, for your contribution.

Security Fixes

This release fixes the following security vulnerabilities:

Deployment Procedure

Judge0 is collecting telemetry data to help improve the product and understand its use in various production environments. Read more about telemetry here.

System Requirements

Please note that Judge0 has only been tested on Linux and might not work on other systems; thus, we do not provide support for it.

We recommend using Ubuntu 22.04, on which you need to do the following update of GRUB:

  1. Use sudo to open file /etc/default/grub
  2. Add systemd.unified_cgroup_hierarchy=0 in the value of GRUB_CMDLINE_LINUX variable.
  3. Apply the changes: sudo update-grub
  4. Restart your server: sudo reboot

Additionally, make sure you have Docker and Docker Compose installed.

Deployment Steps

  1. Download and extract the release archive:
wget https://github.com/judge0/judge0/releases/download/v1.13.1/judge0-v1.13.1.zip
unzip judge0-v1.13.1.zip
  1. Visit this website to generate a random password.
  2. Use the generated password to update the variable REDIS_PASSWORD in the judge0.conf file.
  3. Visit again this website to generate another random password.
  4. Use the generated password to update the variable POSTGRES_PASSWORD in the judge0.conf file.
  5. Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.13.1
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 CE v1.13.1 is now up and running; visit docs at http://<IP ADDRESS OF YOUR SERVER>:2358/docs.

v1.13.1-extra

1 month ago

v1.13.1-extra (2024-04-18)

Security researcher Daniel Cooper (@stacksparrow4) found three critical vulnerabilities in Judge0 versions <= 1.13.0-extra, which this release fixes. Thank you, Daniel, for your contribution.

Security Fixes

This release fixes the following security vulnerabilities:

Deployment Procedure

Judge0 is collecting telemetry data to help improve the product and understand its use in various production environments. Read more about telemetry here.

System Requirements

Please note that Judge0 has only been tested on Linux and might not work on other systems; thus, we do not provide support for it.

We recommend using Ubuntu 22.04, on which you need to do the following update of GRUB:

  1. Use sudo to open file /etc/default/grub
  2. Add systemd.unified_cgroup_hierarchy=0 in the value of GRUB_CMDLINE_LINUX variable.
  3. Apply the changes: sudo update-grub
  4. Restart your server: sudo reboot

Additionally, make sure you have Docker and Docker Compose installed.

Deployment Steps

  1. Download and extract the release archive:
wget https://github.com/judge0/judge0/releases/download/v1.13.1-extra/judge0-v1.13.1-extra.zip
unzip judge0-v1.13.1-extra.zip
  1. Visit this website to generate a random password.
  2. Use the generated password to update the variable REDIS_PASSWORD in the judge0.conf file.
  3. Visit again this website to generate another random password.
  4. Use the generated password to update the variable POSTGRES_PASSWORD in the judge0.conf file.
  5. Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.13.1-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 Extra CE v1.13.1 is now up and running; visit docs at http://<IP ADDRESS OF YOUR SERVER>:2358/docs.

v1.13.0

3 years ago

v1.13.0 (2021-03-10)

Huge thanks to Filtered for sponsoring this release.

New Features

  • Added support for enable_network configuration flag. With the new ALLOW_ENABLE_NETWORK configuration variable, usage of this flag can be permitted or denied. Furthermore, with the new ENABLE_NETWORK configuration variable the default value of this flag can be set for every submission.
  • Added USE_DOCS_AS_HOMEPAGE configuration variable, which allows you to show or hide Judge0 homepage. Now, by default, Judge0 homepage is empty and does not show the API documentation. However, you can still access the API documentation via /docs.

Bug Fixes

  • Fixed the bug where the wrong number of workers would be reported via /workers.

Security Fixes

  • HIGH Fixed a security bug where certain submission configuration settings would allow the user to run a program that would run infinetly long. With this fix wall_time_limit must be at least 1 second.

Other Changes

  • Allow setting the max_file_size and stack_limit to 0 kB.
  • Allow setting the cpu_time_limit and cpu_extra_time to 0 seconds.
  • Updated to a port 2358 as a new default port for Judge0 as a online code execution service.
  • Updated the default number of Judge0 Workers, those that acutally run the user's code, to the 2*nproc. This has been shown as a good choice for general purpose use-case.
  • Updated the default number of Rails threads to nproc and Rails processes to 2. This has been shown as a good choice for general purpose use-case.
  • Updated Let's Encrypt Docker image for deployment with HTTPS.
  • Updated Nginx proxy Docker image that is used in development setup and deployment with HTTPS.
  • Fixed documentation typos. Thank you @balababa.
    • Pull Requests: #245
  • Updated base image to judge0/compilers:1.4.0 which uses updated Isolate to @ad39cc4d.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract the release archive:
wget https://github.com/judge0/judge0/releases/download/v1.13.0/judge0-v1.13.0.zip
unzip judge0-v1.13.0.zip
  1. Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.13.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 CE v1.13.0 is now available at http://<IP ADDRESS OF YOUR SERVER>:2358.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract the release archive:
wget https://github.com/judge0/judge0/releases/download/v1.13.0/judge0-v1.13.0-https.zip
unzip judge0-v1.13.0-https.zip
  1. Change directory to judge0-v1.13.0-https:
cd judge0-v1.13.0-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait a few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 CE v1.13.0 is now available at https://<YOUR DOMAIN>.

v1.13.0-extra

3 years ago

v1.13.0-extra (2021-03-10)

Huge thanks to Filtered for sponsoring this release.

New Features

  • Added 4 new languages and archived 4 languages. In total, there are 21 active languages. Archived languages cannot be used anymore.
ID Name Status
16 C# (.NET Core SDK 3.1.302) archived
17 C# (Mono 6.10.0.104) archived
18 C# Test (.NET Core SDK 3.1.302, NUnit 3.12.0) archived
19 F# (.NET Core SDK 3.1.302) archived
21 C# (.NET Core SDK 3.1.406) NEW
22 C# (Mono 6.12.0.122) NEW
23 C# Test (.NET Core SDK 3.1.406, NUnit 3.12.0) NEW
24 F# (.NET Core SDK 3.1.406) NEW
  • Added support for enable_network configuration flag. With the new ALLOW_ENABLE_NETWORK configuration variable, usage of this flag can be permitted or denied. Furthermore, with the new ENABLE_NETWORK configuration variable the default value of this flag can be set for every submission.
  • Added USE_DOCS_AS_HOMEPAGE configuration variable, which allows you to show or hide Judge0 homepage. Now, by default, Judge0 homepage is empty and does not show the API documentation. However, you can still access the API documentation via /docs.

Bug Fixes

  • Fixed the bug where the wrong number of workers would be reported via /workers.

Security Fixes

  • HIGH Fixed a security bug where certain submission configuration settings would allow the user to run a program that would run infinetly long. With this fix wall_time_limit must be at least 1 second.

Other Changes

  • Allow setting the max_file_size and stack_limit to 0 kB.
  • Allow setting the cpu_time_limit and cpu_extra_time to 0 seconds.
  • Updated to a port 2358 as a new default port for Judge0 as a online code execution service.
  • Updated the default number of Judge0 Workers, those that acutally run the user's code, to the 2*nproc. This has been shown as a good choice for general purpose use-case.
  • Updated the default number of Rails threads to nproc and Rails processes to 2. This has been shown as a good choice for general purpose use-case.
  • Updated Let's Encrypt Docker image for deployment with HTTPS.
  • Updated Nginx proxy Docker image that is used in development setup and deployment with HTTPS.
  • Fixed documentation typos. Thank you @balababa.
    • Pull Requests: #245
  • Updated base image to judge0/compilers:1.4.0 which uses updated Isolate to @ad39cc4d.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract the release archive:
wget https://github.com/judge0/judge0/releases/download/v1.13.0-extra/judge0-v1.13.0-extra.zip
unzip judge0-v1.13.0-extra.zip
  1. Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.13.0-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 Extra CE v1.13.0 is now available at http://<IP ADDRESS OF YOUR SERVER>.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract the release archive:
wget https://github.com/judge0/judge0/releases/download/v1.13.0-extra/judge0-v1.13.0-extra-https.zip
unzip judge0-v1.13.0-extra-https.zip
  1. Change directory to judge0-v1.13.0-extra-https:
cd judge0-v1.13.0-extra-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait a few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 Extra CE v1.13.0 is now available at https://<YOUR DOMAIN>.

v1.12.0

3 years ago

v1.12.0 (2020-10-18)

New Features

  • Added support for invalidating statistics cache using the invalidate_cache query parameter.
  • Added rake task judge0:run_in_queue to manually run submissions that might have stuck in the In Queue state.
  • Added support for specifying CALLBACKS_MAX_TRIES and CALLBACKS_TIMEOUT. This is a global configuration that applies to all submissions that have defined webhooks (HTTP callbacks).
  • Added support for submission caching to reduce the number of unnecessary database hits. Cache duration can be controlled with the SUBMISSION_CACHE_DURATION variable which is currently set to 1 second by default. Submissions are only cached for GET /submissions/<token> route. Cache files are written to the server's file system and are automatically cleared every day at midnight. This is the first step toward more serious submission caching in the future.

Improvements

  • Update PostgreSQL to 13.0 and Redis to 6.0.
  • Reschedule failed jobs after 0.1 seconds with 100 attempts.
  • Send only submission ID to the worker and not the whole serialized submission.
  • Automatically restart Judge0 server without the need for Docker restart policies. Use the RESTART_MAX_TRIES variable to specify the maximum number of restart tries.

Bug Fixes

  • Fixed a bug in the is_project method of submission model where an exception was raised and not handled properly due to unknown language.

Other Changes

  • Use Docker volumes for storing Postgres and Redis data instead of mounting directories. This is now the new recommended setting.
  • Added Resque Web to the development stack.
  • Changed binding ports for Nginx and documentation server in the development stack. Nginx is now bound to port 80, and the development server to port 3001.
  • Removed port bindings of Postgres and Redis in the development stack.
  • Added PgBouncer to the development stack for testing and experimenting.
  • Changed recommended values for POSTGRES_DB and POSTGRES_USER. Both are now judge0.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.12.0/judge0-v1.12.0.zip
unzip judge0-v1.12.0.zip
  1. Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.12.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.12.0 is now available at http://<IP ADDRESS OF YOUR SERVER>.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.12.0/judge0-v1.12.0-https.zip
unzip judge0-v1.12.0-https.zip
  1. Change directory to judge0-v1.12.0-https:
cd judge0-v1.12.0-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait a few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.12.0 is now available at https://<YOUR DOMAIN>.

v1.12.0-extra

3 years ago

v1.12.0-extra (2020-10-18)

New Features

  • Added support for invalidating statistics cache using the invalidate_cache query parameter.
  • Added rake task judge0:run_in_queue to manually run submissions that might have stuck in the In Queue state.
  • Added support for specifying CALLBACKS_MAX_TRIES and CALLBACKS_TIMEOUT. This is a global configuration that applies to all submissions that have defined webhooks (HTTP callbacks).
  • Added support for submission caching to reduce the number of unnecessary database hits. Cache duration can be controlled with the SUBMISSION_CACHE_DURATION variable which is currently set to 1 second by default. Submissions are only cached for GET /submissions/<token> route. Cache files are written to the server's file system and are automatically cleared every day at midnight. This is the first step toward more serious submission caching in the future.

Improvements

  • Update PostgreSQL to 13.0 and Redis to 6.0.
  • Reschedule failed jobs after 0.1 seconds with 100 attempts.
  • Send only submission ID to the worker and not the whole serialized submission.
  • Automatically restart Judge0 server without the need for Docker restart policies. Use the RESTART_MAX_TRIES variable to specify the maximum number of restart tries.

Bug Fixes

  • Fixed a bug in the is_project method of submission model where an exception was raised and not handled properly due to unknown language.

Other Changes

  • Use Docker volumes for storing Postgres and Redis data instead of mounting directories. This is now the new recommended setting.
  • Added Resque Web to the development stack.
  • Changed binding ports for Nginx and documentation server in the development stack. Nginx is now bound to port 80, and the development server to port 3001.
  • Removed port bindings of Postgres and Redis in the development stack.
  • Added PgBouncer to the development stack for testing and experimenting.
  • Changed recommended values for POSTGRES_DB and POSTGRES_USER. Both are now judge0.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

Please note that Judge0 has only been tested on Linux and macOS, and might not work on Windows, thus we do not provide support for it.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.12.0-extra/judge0-v1.12.0-extra.zip
unzip judge0-v1.12.0-extra.zip
  1. Run all services and wait a few seconds until everything is initialized:
cd judge0-v1.12.0-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.12.0-extra is now available at http://<IP ADDRESS OF YOUR SERVER>.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.12.0-extra/judge0-v1.12.0-extra-https.zip
unzip judge0-v1.12.0-extra-https.zip
  1. Change directory to judge0-v1.12.0-extra-https:
cd judge0-v1.12.0-extra-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait a few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.12.0-extra is now available at https://<YOUR DOMAIN>.

v1.11.0

3 years ago

v1.11.0 (2020-09-09)

New Features

  • Added queue size into response of /workers.

Improvements

  • Set configuration defaults even if judge0.conf is not present. Thank you @vvalchev.

Other Changes

  • Updated documentation with some better explanation on the use of base64_encoded query parameter. Thank you @mejibyte.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

Please note that Judge0 has only been tested on Linux and might not work on Windows or macOS, thus we do not provide support for these systems.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.11.0/judge0-v1.11.0.zip
unzip judge0-v1.11.0.zip
  1. Run all services and wait few seconds until everything is initialized:
cd judge0-v1.11.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.11.0 is now available at http://<IP ADDRESS OF YOUR SERVER>.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.11.0/judge0-v1.11.0-https.zip
unzip judge0-v1.11.0-https.zip
  1. Change directory to judge0-v1.11.0-https:
cd judge0-v1.11.0-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.11.0 is now available at https://<YOUR DOMAIN>.

v1.11.0-extra

3 years ago

v1.11.0-extra (2020-09-09)

Huge thanks to AlgoDaily for sponsoring this release.

New Features

  • Added 8 new languages, and in total there are now 21 active languages.
ID Name Note
13 C (Clang 9.0.1)
14 C++ (Clang 9.0.1)
15 C++ Test (Clang 10.0.1, Google Test 1.8.1)
16 C# (.NET Core SDK 3.1.302) Sponsored by AlgoDaily.
17 C# (Mono 6.10.0.104) Sponsored by AlgoDaily.
18 C# Test (.NET Core SDK 3.1.302, NUnit 3.12.0) Sponsored by AlgoDaily.
19 F# (.NET Core SDK 3.1.302)
20 Visual Basic.Net (vbnc 0.0.0.5943)
  • Added queue size into response of /workers.

Improvements

  • Set configuration defaults even if judge0.conf is not present. Thank you @vvalchev.

Other Changes

  • Updated documentation with some better explanation on the use of base64_encoded query parameter. Thank you @mejibyte.
  • Increased default CPU_TIME_LIMIT to 15 s, MAX_CPU_TIME_LIMIT to 20 s, WALL_TIME_LIMIT to 20 s and MAX_WALL_TIME_LIMIT to 25 s.
  • Increased default MAX_MAX_FILE_SIZE to 20480 KB.
  • Increased default MAX_PROCESSES_AND_OR_THREADS to 100.
  • Mount additional folders /files and /NuGet/packages in compilation step.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

Please note that Judge0 has only been tested on Linux and might not work on Windows or macOS, thus we do not provide support for these systems.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.11.0-extra/judge0-v1.11.0-extra.zip
unzip judge0-v1.11.0-extra.zip
  1. Run all services and wait few seconds until everything is initialized:
cd judge0-v1.11.0-extra
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.11.0-extra is now available at http://<IP ADDRESS OF YOUR SERVER>.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/judge0/releases/download/v1.11.0-extra/judge0-v1.11.0-extra-https.zip
unzip judge0-v1.11.0-extra-https.zip
  1. Change directory to judge0-v1.11.0-extra-https:
cd judge0-v1.11.0-extra-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.11.0-extra is now available at https://<YOUR DOMAIN>.

v1.10.0

3 years ago

v1.10.0 (2020-07-27)

New Features

  • Added support for multi-file programs in the terms of adding a new special language called Multi-file program. In total there are now 47 active languages.
ID Name Note
89 Multi-file program

Multi-file programs allow you specify your own compilation and execution scripts that Judge0 will use.

To use multi-file program feature you need to choose a language called Multi-file program whoose ID is 89. Moreover, you need to send all program files with additional_files attribute. With multi-file programs attribute source_code cannot be used, i.e. all files should be sent with additional_files attribute.

For the Judge0 to know how to compile and execute your multi-file program you need to provide two special files that should be available in the root of the .zip archive that you are sending with additional_files attribute. These files should be named compile and run, and are expected to be Bash scripts that know how to compile and execute your multi-file program. If your multi-file program does not need compilation step, then you don't need to provide compile script. Take a look at this example to learn how to use this feature to compile and run multi-file C++ project that uses CMake.

Other Changes

  • Updated gems.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.10.0/judge0-v1.10.0-https.zip
unzip judge0-v1.10.0-https.zip
  1. Change directory to judge0-v1.10.0-https:
cd judge0-v1.10.0-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.10.0 is now available at https://<YOUR DOMAIN>.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.10.0/judge0-v1.10.0.zip
unzip judge0-v1.10.0.zip
  1. Run all services and wait few seconds until everything is initialized:
cd judge0-v1.10.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.10.0 is now available at http://<IP ADDRESS OF YOUR SERVER>.

v1.9.0

3 years ago

v1.9.0 (2020-06-10)

Huge thanks to Filtered for sponsoring this release.

New Features

  • Added support for configuration variable RAILS_SERVER_PROCESSES which allows to create multiple processes for handling requests.

Other Changes

  • Updated gems.

Deployment Procedure

Judge0 is collecting telemetry data to help understand how to improve the product and to better understand how Judge0 is used in various production environments. Read more about telemetry here.

With HTTPS (SSL/TLS)

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.9.0/judge0-v1.9.0-https.zip
unzip judge0-v1.9.0-https.zip
  1. Change directory to judge0-v1.9.0-https:
cd judge0-v1.9.0-https
  1. Edit docker-compose.yml and change variables VIRTUAL_HOST, LETSENCRYPT_HOST and LETSENCRYPT_EMAIL.
  2. Run all services and wait few seconds until everything is initialized:
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.9.0 is now available at https://<YOUR DOMAIN>.

With HTTP

  1. Install Docker and Docker Compose.
  2. Download and extract release archive:
wget https://github.com/judge0/api/releases/download/v1.9.0/judge0-v1.9.0.zip
unzip judge0-v1.9.0.zip
  1. Run all services and wait few seconds until everything is initialized:
cd judge0-v1.9.0
docker-compose up -d db redis
sleep 10s
docker-compose up -d
sleep 5s
  1. Your instance of Judge0 v1.9.0 is now available at http://<IP ADDRESS OF YOUR SERVER>.