{"id":27303500,"url":"https://github.com/ryanlee2014/cup-online-judge","last_synced_at":"2025-04-12T02:53:33.873Z","repository":{"id":47353582,"uuid":"245602886","full_name":"ryanlee2014/CUP-Online-Judge","owner":"ryanlee2014","description":"Open source online judge based on Vue, Express.js and Docker. | CUP ACM/ICPC Online Judge | 中国石油大学(北京) Online Judge","archived":false,"fork":false,"pushed_at":"2024-01-09T17:08:39.000Z","size":133,"stargazers_count":17,"open_issues_count":12,"forks_count":6,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-01-09T18:32:04.068Z","etag":null,"topics":["docker","docker-compose","icpc-online-judge","node-js","online-judge","vue"],"latest_commit_sha":null,"homepage":"https://oj.cupacm.com","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ryanlee2014.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-03-07T09:22:56.000Z","updated_at":"2023-12-12T03:26:06.000Z","dependencies_parsed_at":"2023-01-23T11:31:35.499Z","dependency_job_id":null,"html_url":"https://github.com/ryanlee2014/CUP-Online-Judge","commit_stats":null,"previous_names":[],"tags_count":60,"template":null,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanlee2014%2FCUP-Online-Judge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanlee2014%2FCUP-Online-Judge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanlee2014%2FCUP-Online-Judge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ryanlee2014%2FCUP-Online-Judge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ryanlee2014","download_url":"https://codeload.github.com/ryanlee2014/CUP-Online-Judge/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248509816,"owners_count":21116124,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["docker","docker-compose","icpc-online-judge","node-js","online-judge","vue"],"created_at":"2025-04-12T02:53:33.334Z","updated_at":"2025-04-12T02:53:33.857Z","avatar_url":"https://github.com/ryanlee2014.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# CUP Online Judge\n\n![License](https://img.shields.io/github/license/ryanlee2014/CUP-Online-Judge)\n![GitHub package.json version (branch)](https://img.shields.io/github/package-json/v/ryanlee2014/CUP-Online-Judge-Frontend/typescript?label=Frontend)\n![GitHub package.json version (branch)](https://img.shields.io/github/package-json/v/CUP-ACM-Programming-Club/CUP-Online-Judge-Express/typescript?label=Backend)\n![jsDelivr hits (GitHub)](https://img.shields.io/jsdelivr/gh/hm/ryanlee2014/CUP-Online-Judge-CDN)\n\n|name|pulls|version|layers|image size|\n|:---:|:---:|:---:|:---:|:---:|\n|[ryanlee2014/cupoj-backend](https://hub.docker.com/r/ryanlee2014/cupoj-backend)|![Pulls Count](https://img.shields.io/docker/pulls/ryanlee2014/cupoj-backend)|![GitHub release (latest by date)](https://img.shields.io/github/v/tag/CUP-ACM-Programming-Club/CUP-Online-Judge-Express)|![Layers](https://shields.beevelop.com/docker/image/layers/ryanlee2014/cupoj-backend/latest.svg)|![image size](https://img.shields.io/docker/image-size/ryanlee2014/cupoj-backend)|\n|[ryanlee2014/cupoj-websocket](https://hub.docker.com/r/ryanlee2014/cupoj-websocket)|![Pulls Count](https://img.shields.io/docker/pulls/ryanlee2014/cupoj-websocket)|![GitHub release (latest by date)](https://img.shields.io/github/v/tag/CUP-ACM-Programming-Club/CUP-Online-Judge-Express)|![Layers](https://shields.beevelop.com/docker/image/layers/ryanlee2014/cupoj-websocket/latest.svg)|![image size](https://img.shields.io/docker/image-size/ryanlee2014/cupoj-websocket)|\n|[ryanlee2014/cupoj-judger](https://hub.docker.com/r/ryanlee2014/cupoj-judger)|![Pulls Count](https://img.shields.io/docker/pulls/ryanlee2014/cupoj-judger)|![GitHub release (latest by date)](https://img.shields.io/github/v/tag/CUP-ACM-Programming-Club/CUP-Online-Judge-Judger)|![Layers](https://shields.beevelop.com/docker/image/layers/ryanlee2014/cupoj-judger/latest.svg)|![image size](https://img.shields.io/docker/image-size/ryanlee2014/cupoj-judger)|\n|[ryanlee2014/cupoj-language-server](https://hub.docker.com/r/ryanlee2014/cupoj-language-server)|![Pulls Count](https://img.shields.io/docker/pulls/ryanlee2014/cupoj-language-server)|![GitHub release (latest by date)](https://img.shields.io/github/v/tag/ryanlee2014/CUPOJ-Language-Server)|![Layers](https://shields.beevelop.com/docker/image/layers/ryanlee2014/cupoj-language-server/latest.svg)|![image size](https://img.shields.io/docker/image-size/ryanlee2014/cupoj-language-server)|\n|[ryanlee2014/cupoj-frontend](https://github.com/ryanlee2014/CUP-Online-Judge-Frontend)|![GitHub commit activity](https://img.shields.io/github/commit-activity/w/ryanlee2014/CUP-Online-Judge-Frontend)|![GitHub release (latest by date)](https://img.shields.io/github/v/tag/ryanlee2014/CUP-Online-Judge-Frontend)||![GitHub repo size](https://img.shields.io/github/repo-size/ryanlee2014/CUP-Online-Judge-CDN)|\n|[metowolf/nginx](https://hub.docker.com/r/metowolf/nginx)|![Pulls Count](https://img.shields.io/docker/pulls/metowolf/nginx.svg)|![GitHub release (latest by date)](https://img.shields.io/github/v/tag/metowolf/docker-nginx)|![](https://shields.beevelop.com/docker/image/layers/metowolf/nginx/latest.svg)|![](https://shields.beevelop.com/docker/image/image-size/metowolf/nginx/latest.svg)|\n|[mysql/mysql-server](https://hub.docker.com/r/mysql/mysql-server)|![Pulls Count](https://img.shields.io/docker/pulls/mysql/mysql-server.svg)||![](https://shields.beevelop.com/docker/image/layers/mysql/mysql-server/latest.svg)|![](https://shields.beevelop.com/docker/image/image-size/mysql/mysql-server/latest.svg)|\n|[library/redis](https://hub.docker.com/_/redis)|![Pulls Count](https://img.shields.io/docker/pulls/library/redis.svg)||![](https://shields.beevelop.com/docker/image/layers/library/redis/alpine.svg)|![](https://shields.beevelop.com/docker/image/image-size/library/redis/alpine.svg)|\n\n## Translation\n[中文](/README.zh-cn.md)\n\n## Requirements\nInstall [Docker](https://get.docker.com/) and [Docker Compose](https://docs.docker.com/compose/install/)\n\n[Manual](/docs/INSTALL_DOCKER.md)\n\n## Usage(all in one)\n```bash\n./init-env.sh\n```\n\n## Update(all in one)\n```bash\n./update.sh\n```\n\n## Usage(Manual Installation Guide)\n1. Clone repo inside your project\n```bash\ngit clone --recursive https://github.com/ryanlee2014/CUP-Online-Judge-NG-Docker-Judger.git docker-judger\n```\n\n2. Enter the folder and rename .env.example to .env, docker-compose.example.yml to docker-compose.yml\n```bash\ncd docker-judger\ncp .env.example .env\ncp docker-compose.example.xml docker.compose.yml\n```\n\n3. Enter the backend folder and rename config.sample.json to config.json\n```bash\ncd etc/backend\ncp config.sample.json config.json\n```\n\n4. Enter the judge folder and rename config.sample.json to config.json\nEdit judger/etc/config.json and compile.json to your environment settings\n```text\n# judge.conf\ncd judge/etc\ncp config.sample.json config.json\n```\n\n5. Make `data` foler and move files into the folder or link `data` folder to `judge/data`\n```bash\n# make dir\nmkdir -p ./judger/data\n# link\nln -s path/to/data ./judger/data\n```\n\n6. Run your containers:\n```bash\ndocker-compose up -d\n```\n\n## Supporting CUP Online Judge\n[Become a sponsor on afdian](https://afdian.net/@ryanlee) (Alipay only)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanlee2014%2Fcup-online-judge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fryanlee2014%2Fcup-online-judge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fryanlee2014%2Fcup-online-judge/lists"}