Judge0 CE

Open source API to compile and run source code.

Directory Structure

    • .env
    • docker-compose.yml

docker-compose.yml

x-logging:
  &default-logging
  logging:
    driver: json-file
    options:
      max-size: 100M
 
services:
  server:
    image: judge0/judge0:latest
    volumes:
      - ./judge0.conf:/judge0.conf:ro
    ports:
      - "2358:2358"
    privileged: true
    <<: *default-logging
    restart: always
 
  worker:
    image: judge0/judge0:latest
    command: ["./scripts/workers"]
    volumes:
      - ./judge0.conf:/judge0.conf:ro
    privileged: true
    <<: *default-logging
    restart: always
 
  db:
    image: postgres:16.2
    env_file: judge0.conf
    volumes:
      - ./data:/var/lib/postgresql/data/
    <<: *default-logging
    restart: always
 
  redis:
    image: redis:7.2.4
    command: [
      "bash", "-c",
      'docker-entrypoint.sh --appendonly no --requirepass "$$REDIS_PASSWORD"'
    ]
    env_file: judge0.conf
    <<: *default-logging
    restart: always

Resources

Website: https://judge0.com/

GitHub: https://github.com/judge0/judge0

Docker Hub: https://hub.docker.com/r/judge0/judge0

Configuration: https://github.com/judge0/judge0/blob/master/CHANGELOG.md#deployment-procedure