Skip to content
/ hustoj Public
forked from zhblue/hustoj

Popular Open Source Online Judge based on PHP/C++/MySQL/Linux for ACM/ICPC and NOIP training, with easy installation. 开源OJ系统

License

Notifications You must be signed in to change notification settings

SDadudu/hustoj

This branch is 1 commit ahead of, 578 commits behind zhblue/hustoj:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

accd456 · Jan 27, 2025
Sep 19, 2024
Oct 17, 2024
Nov 22, 2024
Oct 25, 2019
Dec 7, 2024
Nov 22, 2024
Apr 13, 2021
Oct 14, 2019
Sep 18, 2024
Feb 13, 2023
Jan 27, 2025
Feb 20, 2020
Sep 20, 2024
Mar 11, 2017

Repository files navigation

HUSTOJ

流行的开源在线评测系统(OJ)- 跨平台、易安装、有题库、开发门槛低

🚀 快速开始

常见问题

重要链接

💻 安装指南
📚 使用指南

更多资源

获取帮助

  • 💬 官方QQ群: 23361372(验证问题:学校或单位+姓名)
  • 💰 付费服务微信: hustoj
  • 🔧 远程协助请安装向日葵或准备SSH账号

🎨 模板演示

模板名称 预览链接 贡献者
SYZOJ 预览 @renbaoshuo
Sidebar 预览 -
BS3原版 预览 -
Sweet 预览 -
Bshark 预览 @yemaster
MDUI 预览 @renbaoshuo

💡 修改 /home/judge/src/web/include/db_info.inc.php 中的 $OJ_TEMPLATE 值即可切换模板

💻 安装说明

📹 视频教程

Ubuntu 安装教程

推荐使用最新 Ubuntu LTS 版本(如 24.04、22.04),而不是视频中的 18.04。

⚠️ 重要提示

  1. 请选择适合的安装脚本,根据您的发行版从下面选择一个。
  2. 不要使用过时教程,特别是百度上的长篇教程,可能导致:
    • 不能判题
    • 界面不显示
    • 无法升级
  3. 避免使用以下环境:
    • 🚫 不要安装 Apache
    • 🚫 不要使用 LNMP/LAMP/Cpanel
    • 🚫 不要使用面板程序提供的环境

🔧 安装方法

Ubuntu 22.04/24.04 安装(推荐)

适用于各类公有云,安装最容易,成功率最高

wget http://dl.hustoj.com/install.sh
sudo bash install.sh

Debian 12 安装

支持各类虚拟机、云服务、物理机

wget http://dl.hustoj.com/install.sh
sudo bash install.sh

校园网环境安装

由于 Github 的 SVN 访问缓慢,建议:

  1. Releases 下载 tar.gz 版本
  2. 使用 install 目录下的 *-bytgz.sh 脚本安装
sudo bash install-ubuntu18-bytgz.sh 19.06.04.tar.gz

⚠️ 注意:这种方式安装的实例将来只能手工升级

Deepin/UOS 20+ 安装

# Deepin 20+ 安装
wget http://dl.hustoj.com/install-deepin20+.sh
sudo bash install-deepin20+.sh

# UOS 20+ 安装
wget http://dl.hustoj.com/install-uos20.sh
sudo bash install-uos20.sh

内置QQ、微信、WPS,方便出题人本地测试

CentOS 7 安装

wget https://raw.githubusercontent.com/zhblue/hustoj/master/trunk/install/install-centos7.sh
sudo bash install-centos7.sh

⚠️ 注意:CentOS发行策略改变,未来前景不确定,不推荐使用

Docker 方式安装

请参考 Docker安装说明

其他发行版安装

  • Debian 10+ (Debian10/11)
  • 树莓派 raspbian8/9
  • Ubuntu 14.04

安装脚本在 install 目录下,可能需要部分手工调整

Ubuntu 更换软件源

提供两个可选脚本(二选一):

# 脚本一
wget http://dl.hustoj.com/sources.list.sh
sudo bash sources.list.sh

# 脚本二(推荐腾讯云镜像和Ubuntu原版镜像用户使用)
wget http://dl.hustoj.com/update-sources-ubuntu.sh
sudo bash update-sources-ubuntu.sh

卸载阿里云盾

阿里云的 Ubuntu 20.04 预装了 apparmor,可能造成 systemdumount 进程卡CPU 100% 解决方案:

  1. 安装docker并启用OJ_USE_DOCKER=1
  2. 或执行卸载阿里云盾脚本

📀 LiveCD 安装

  • 家宽下载
  • 获取百度云下载链接:发送 "livecd" 到微信公众号 onlinejudge

适用场景:

  • Linux 不熟悉的用户
  • 内网用户
  • 无网络环境用户

🔍 安装后检查

  1. 浏览器访问服务器IP地址
  2. 如果无法访问,请检查:
    • 访问策略
    • 防火墙设置(80端口)
    • 云服务安全组

💡 建议配置

  • 服务器:双核2G内存以上
  • 最低配置:1核1G内存
  • 建议系统:Ubuntu 最新 LTS 版本

📜 版权说明

HUSTOJ 是采用 GPL 的自由软件。

注:仅限原创部分代码,其中使用的其他开源项目组件请遵循原组件的协议。

🙏 致谢清单

感谢以下开源项目的贡献者,这些项目的代码及衍生代码遵循其原有开源协议:

评测系统

基础环境

  • Linux, Apache, Nginx, PHP, MySQL, MariaDB, Memcached

前端组件

  • Bootstrap, KindEditor, ACEeditor
  • Blockly, CodeMirror, KaTeX
  • PHPFileManager, MDUI

编程语言

  • GCC, Clang, OpenJDK
  • FreePascal, Mono
  • Docker, SyntaxHighlighter

📝 更新日志

2025年更新
日期 类型 更新内容 预览
01-23 ✨ 优化 优化用户列表显示 image
01-20 ✨ 新增 增加比赛禁止选项 image
01-07 ✨ 新增 增加矩阵转置按钮 image
01-06 ✨ 新增 增加全局题单班组统计显示页 image
01-04 ✨ 新增 增加题单班组统计显示页 image
01-02 ✨ 优化 允许新闻用importance字段排序 image
01-01 🎉 预告 新年好! image
2024年更新
日期 类型 更新内容
12-20 🔧 补丁 改善用户导入功能,支持带BOM的UTF8编码csv文件。优化用户删除功能的界面提示
12-10 ✨ 更新 远程调用客户端remote_service.php
12-09 ✨ 更新 远程调用接口service.php
12-07 ✨ 更新 导入用户可以设置有效期
11-30 ✨ 更新 初步增加仓颉语言支持
11-26 ✨ 更新 增加用户账户有效期,管理员手工添加的账户有从当前日期开始365天的过期时间
11-25 ✨ 更新 增加upj类型特判流程,返回值为百分制分数
11-24 ✨ 更新 增加单例部分分开关OJ_INTERNAL_MARK,对比输出中给首个不同的位置加红色
11-23 ✨ 更新 允许测试数据目录中存在judge.conf,对单题覆盖系统部分判题设置
11-15 ✨ 更新 更友善的对比输出,对单个测试数据提供部分分计算
10-19 ✨ 更新 默认安装memcached,开启缓存,Docker环境在Ubuntu24.04中同步更新到24.04
2023年更新
日期 类型 更新内容
12-06 ✨ 更新 syzoj增加月度之星,改善排名效率和页码,修复bing壁纸
11-24 ✨ 更新 syzoj模板中的比赛榜单提供下载链接
10-09 ✨ 更新 私有比赛结束后,比赛创建者可以看到比赛中正在被其他私有比赛使用的题目的标题和链接
09-29 ✨ 更新 支持导入HOJ导出的json+in/out的zip文件
09-17 ✨ 更新 当增加用户权限时,给管理员email发送提醒邮件
09-06 ✨ 更新 增加邮件激活账号功能
08-25 ✨ 更新 选择题题面用span class=auto_select标记的范围,自动生成单选框控件

🔄 备份与迁移

备份

# 使用 bak.sh 进行备份
sudo bash /home/judge/src/install/bak.sh

# 备份文件位置:/var/backups/hustoj_日期.tar.bz2

迁移

  1. 在新服务器上完成全新安装和测试
  2. 将备份文件复制到新服务器的 /home/judge/src/install 目录
  3. 执行还原脚本:
sudo su
cd /home/judge/src/install/
bash restore.sh hustoj_备份日期.tar.bz2

更新升级

# 使用 fixing.sh 进行更新
sudo bash /home/judge/src/install/fixing.sh

升级后可能需要登录管理后台执行一次数据库更新

💝 支持与社区

加入社区

  • 📱 用户交流QQ群:23361372
  • ✅ 验证问题:学校或单位+姓名
  • 📚 群共享:题库、安装盘、文档
  • ⚠️ 群规:禁止人身攻击、侮辱他人

支持项目

  1. 领取支付宝红包
  2. TK题库充值下载题目
  3. 为项目点亮 Star ⭐
  4. 保留系统页脚的公众号和红包码
  5. 在论文中引用本项目
  6. 向他人推荐本项目

🎯 系统演示

📦 免费题库

☁️ 推荐云服务商

🛠️ 推荐开源IDE

About

Popular Open Source Online Judge based on PHP/C++/MySQL/Linux for ACM/ICPC and NOIP training, with easy installation. 开源OJ系统

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 70.8%
  • PHP 19.8%
  • CSS 5.0%
  • Shell 1.1%
  • C 0.9%
  • C++ 0.8%
  • Other 1.6%