3.1 KiB
SYZOJ 2
中文 | English
An online judge system for algorithm competition.
This project is the official successor and rewritten version of the original Python/Flask version of SYZOJ, which is authorized by the original author @Chenyao2333.
Currently maintained by LibreOJ.
Upgrading
Because of updates to the database structure, users who upgrade from a commit BEFORE d5bcbe8fb79e80f9d603b764ac787295cceffa34 (Feb 21, 2018) MUST perform the following SQL on the database.
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`);
Who upgrade from a commit BEFORE 26d66ceef24fbb35481317453bcb89ead6c69076 (Nov 5, 2018) MUST perform the following SQL on the database.
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;
Who upgraded from a commit BEFORE 84b9e2d7b51e4ed3ab426621b66cf5ae9e1e1c23 (Nov 6, 2018) MUST perform the following SQL on the database.
ALTER TABLE `problem` ADD `publicize_time` DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP AFTER `type`;
Deploying
Currently, the tutorial for deploying is only available in Chinese. It's SYZOJ 部署指南 in this project's wiki.
Join QQ group 565280992 or Telegram group @lojdev for help.
Email Configuration
register_mail
Whether to enable register mail verification.
email_jwt_secret
Secret used for email token, for security please fill with random string.
Sendmail(often fail, not recommended)
"email": {
"method": "sendmail",
"options": {
"address": "sender@address.domain",
}
},
Aliyun Direct Mail(recommended)
"email": {
"method": "aliyundm",
"options": {
"AccessKeyId": "xxxx",
"AccessKeySecret": "xxxx",
"AccountName": "sender@address.domain"
}
},
SMTP
"email": {
"method": "smtp",
"options": {
"host": "smtp.163.com",
"port": 465,
"username": "xxx@163.com",
"password": "xxx",
"allowUnauthorizedTls": false
}
},