You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
Menci 782cf4c07b Add a modal dialog to confirm restarting service 6 years ago
bin Add code format 6 years ago
libs Fix polling judge task blocking the global redis connection for randering cache 6 years ago
migrates Add mirgrate for code formatting 6 years ago
models Merge branch 'master' of github.com:syzoj/syzoj 6 years ago
modules Merge branch 'master' into socketio 6 years ago
static Add syzoj-renderer's math.css, remove unused files 6 years ago
uploads Add non-traditional problem support; add problem additional_file 8 years ago
views Add a modal dialog to confirm restarting service 6 years ago
.babelrc Initial commit 8 years ago
.editorconfig Add .editorconfig 8 years ago
.gitignore Add yarn lockfile 6 years ago
LICENSE Initial commit 8 years ago
README.en.md Update README 6 years ago
README.md Update README 6 years ago
app.js Check config judge_token 6 years ago
config-example.json Remove RabbitMQ from dependance and config 6 years ago
language-config.json Add code format 6 years ago
package.json Remove RabbitMQ from dependance and config 6 years ago
utility.js Fix missing cell borders for table with merged cells 6 years ago
yarn.lock Add yarn lockfile 6 years ago

README.md

中文 | English

一个用于算法竞赛的在线评测系统。

此项目为重写过的、原 Python/Flask 版 SYZOJ 的官方后继版本,由原作者 @Chenyao2333 授权。

目前由 LibreOJ 维护。

部署

见本项目 Wiki 中的 部署指南

加入 QQ 群 565280992 或 Telegram 群 @lojdev 以取得帮助。

升级须知

因为一些数据库结构的更新,从该 commit d5bcbe8fb79e80f9d603b764ac787295cceffa34(2018 年 4 月 21 日)前更新的用户必须在其数据库上执行以下 SQL 语句。

ALTER TABLE `judge_state` ADD `is_public` TINYINT(1) NOT NULL AFTER `compilation`;
UPDATE `judge_state` JOIN `problem` ON `problem`.`id` = `judge_state`.`problem_id` SET `judge_state`.`is_public` = `problem`.`is_public`;
ALTER TABLE `syzoj`.`judge_state` ADD INDEX `judge_state_is_public` (`id`, `is_public`, `type_info`, `type`);

从该 commit 26d66ceef24fbb35481317453bcb89ead6c69076(2018 年 11 月 5 日)前更新的用户必须在其数据库上执行以下 SQL 语句。

ALTER TABLE `contest_player` CHANGE `score_details` `score_details` JSON NOT NULL;
ALTER TABLE `contest_ranklist` CHANGE `ranking_params` `ranking_params` JSON NOT NULL;
ALTER TABLE `contest_ranklist` CHANGE `ranklist` `ranklist` JSON NOT NULL;
ALTER TABLE `custom_test` CHANGE `result` `result` JSON NOT NULL;
ALTER TABLE `judge_state` CHANGE `compilation` `compilation` JSON NOT NULL;
ALTER TABLE `judge_state` CHANGE `result` `result` JSON NOT NULL;

从该 commit 84b9e2d7b51e4ed3ab426621b66cf5ae9e1e1c23(2018 年 11 月 6 日)前更新的用户必须在其数据库上执行以下 SQL 语句。

ALTER TABLE `problem` ADD `publicize_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `type`;

从该 commit d8be150fc6b8c43af61c5e4aca4fc0fe0445aef3(2018 年 12 月 7 日)前更新的用户必须在其数据库上执行以下 SQL 语句。

ALTER TABLE `user` ADD `prefer_formatted_code` TINYINT(1) NOT NULL DEFAULT 1 AFTER `public_email`;

为使代码格式化功能正常工作,clang-format 需要被安装。migrates/format-old-codes.js 可能对格式化旧提交记录的代码有帮助。

从该 commit c192e8001ac81cab132ae033b39f09a094587633(2019 年 3 月 23 日)前更新的用户必须在网站服务器上安装 redis-serverpygments。旧的 Markdown 内容可能因切换到新渲染器被破坏,migrates/html-table-merge-cell-to-md.js 可能对迁移有所帮助。

从该 commit 7b03706821c604f59fe8263286203d57d634c421(2019 年 3 月 27 日)前更新的用户必须在其 systemd 配置文件 syzoj-web.service 中的 [Service] 中加入一行 RemainAfterExit=yes,以使得重启服务功能正常工作。

从该 commit d1d019383e5cb0c96ed2191f900970654e4055c0(2019 年 3 月 30 日)前更新的用户必须将网站服务器上的 Redis 更新到 5 或更高版本,并填写网站配置中的 judge_token 为随机密钥。评测端需要被同步更新,并填写 daemon-config.json 中的 ServerUrlServerToken(需要与 judge_token 相同)。如果评测端与网站在不同的服务器上,建议迁移 RabbitMQ 到评测服务器上。