Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1652 commits
Select commit Hold shift + click to select a range
4db728d
Merge branch 'master' of github.com:QingdaoU/OnlineJudge
zema1 Dec 6, 2017
21169bd
fix ci
zema1 Dec 6, 2017
a6f8149
fix tests
virusdefender Dec 9, 2017
032953a
migration to delete user output
virusdefender Dec 9, 2017
5d987ec
do not save user output
virusdefender Dec 9, 2017
f4000bf
Merge pull request #102 from QingdaoU/delete_user_output
zema1 Dec 10, 2017
8b1d7b3
fix admin update user real_name problem
zema1 Dec 10, 2017
6276c33
CE不计入罚时
sylxjtu Dec 10, 2017
cb3c5e3
Merge pull request #103 from xjtuacm/master
zema1 Dec 11, 2017
5fc7137
fix ValueError in a contest when ip is limited
zema1 Dec 11, 2017
5888d1c
Update issue_template.md
zema1 Dec 11, 2017
0c1a2ab
Modify README writing style (#105)
yihozhang Dec 12, 2017
501bf3b
add favicon
Dec 15, 2017
d0b7a85
修复几处visible未过滤的问题
zema1 Dec 15, 2017
b6be849
use env to force https
virusdefender Dec 15, 2017
4f6c0c3
add ssl helper
virusdefender Dec 15, 2017
3fb609e
Merge pull request #110 from QingdaoU/https
virusdefender Dec 16, 2017
d162d89
修复某些情况下泄露template的问题
virusdefender Dec 19, 2017
a6240e8
fix docker exec error
virusdefender Dec 19, 2017
a1184f8
ignore nginx conf links
virusdefender Dec 19, 2017
c45c79c
Merge pull request #111 from QingdaoU/fix
zema1 Dec 20, 2017
a492cd4
Delete .gitattributes
virusdefender Dec 20, 2017
6bb61fd
比赛管理员的提交不记入比赛rank和题目统计
zema1 Dec 23, 2017
50a5526
test_case prune api
zema1 Dec 23, 2017
2a86b91
Merge pull request #112 from QingdaoU/zemal_dev
virusdefender Dec 23, 2017
87dcff7
add sentry
virusdefender Dec 22, 2017
13dee6b
use entrypoint
virusdefender Dec 22, 2017
082646e
new throttling
virusdefender Dec 23, 2017
c90b680
new email template
virusdefender Dec 23, 2017
81ffca7
add smtp test function
virusdefender Dec 24, 2017
5b013d9
service url now is required
virusdefender Dec 24, 2017
4fe6a5c
add judge server is_disabled field
virusdefender Dec 24, 2017
f603355
update xss filter
virusdefender Dec 24, 2017
f42dbbb
add system update api
virusdefender Dec 24, 2017
cfbf2d3
Merge pull request #113 from QingdaoU/fix1
virusdefender Dec 26, 2017
378d99f
fix typo
virusdefender Dec 26, 2017
ad1bdef
adjust test_case api
zema1 Dec 27, 2017
e6afb87
add replace cdn host function
virusdefender Dec 27, 2017
6ae866b
fix permission
virusdefender Jan 4, 2018
ab938e9
add new version api
zema1 Jan 2, 2018
704fb88
add dashboard api
zema1 Jan 4, 2018
eb20268
update release note
virusdefender Jan 4, 2018
197b437
fix FORCE_HTTPS
virusdefender Jan 5, 2018
81a0911
update replace static cdn host function
virusdefender Jan 5, 2018
6437da7
redis retry
virusdefender Jan 6, 2018
aa499db
Merge pull request #118 from QingdaoU/zemal_dev
zema1 Jan 6, 2018
92925fd
fix cdn host replacement
zema1 Jan 6, 2018
7df04d6
fix ip header
virusdefender Jan 6, 2018
49dfe4d
fix rejudge bug
dianhsu Mar 14, 2018
7baff53
Merge pull request #131 from prefixai/master
virusdefender Mar 16, 2018
6d2a7b8
update compiler
virusdefender Mar 18, 2018
3971e92
fix xx object has no attribute 'smtp_error'
virusdefender Mar 18, 2018
0462dc6
support memory_limit_check_only
virusdefender Mar 23, 2018
a3a2b33
update release note
virusdefender Mar 23, 2018
74cad78
修复了 submission_number 不变的问题
virusdefender Mar 27, 2018
05b0a5e
add migration to correct database record; rejudge function now can wo…
virusdefender Mar 27, 2018
0992150
Merge pull request #134 from QingdaoU/fix_rejudge
virusdefender Mar 28, 2018
fca363f
add release note
virusdefender Mar 28, 2018
19f4c3d
fix problem statistic count error
zema1 Mar 29, 2018
f43df3e
fix start error
zema1 Mar 30, 2018
438f95e
修复编辑题目会修改作者的问题;修复权限判断时候的逻辑错误
virusdefender Apr 17, 2018
f7e087b
support fps problems import; fix qduoj problems import
virusdefender Jan 7, 2018
18b62b7
Merge pull request #117 from QingdaoU/import_export_problem
virusdefender Apr 17, 2018
04f5623
fix exception class
virusdefender Apr 23, 2018
1236a3b
strip space in qrcode
virusdefender Apr 25, 2018
33bfda6
alter to text field
virusdefender May 1, 2018
e787fe6
use secret key file
virusdefender May 5, 2018
42ccf96
update
virusdefender May 5, 2018
24d1408
fix tests
virusdefender May 5, 2018
fe21982
update update desc
virusdefender May 5, 2018
6fff1c8
disable update json cache
virusdefender May 5, 2018
c67819c
sso api
virusdefender May 5, 2018
a65ca77
管理员修改用户信息的时候,也应该不区分用户名和邮箱的大小写
virusdefender May 5, 2018
ec529a7
add export contest rank to csv
virusdefender May 5, 2018
4ee66b8
disable ip throttling
virusdefender May 13, 2018
97dd0e9
smtp账户不一定是邮箱
virusdefender May 16, 2018
dcb8476
去除部分提交限制
virusdefender May 16, 2018
7d620e7
增大编译时间限制
virusdefender May 16, 2018
9f8dc0c
忽略被封禁用户的提交
virusdefender May 20, 2018
4326917
release new version
zema1 Jun 2, 2018
39ce992
比赛相关api都需要登录
virusdefender Jun 30, 2018
8237660
修复一系列超级管理员无法操作其他用户比赛和题目的问题
virusdefender Jun 30, 2018
95b658d
Merge pull request #155 from QingdaoU/bugfix/fix_permission_check
zema1 Jul 2, 2018
f26ed94
fix requirement warning
Jul 15, 2018
4ab1685
Added: language profile
zema1 Jul 15, 2018
05b0f72
new release
zema1 Jul 15, 2018
c38984f
Merge pull request #159 from QingdaoU/language_profile
zema1 Jul 16, 2018
9e002d7
fix URL
Xeonacid Jul 29, 2018
b66db22
Merge pull request #161 from Xeonacid/master
virusdefender Jul 29, 2018
cf88225
Fixed: #164
zema1 Aug 6, 2018
d48480b
对 testcase 使用 nobody 700 的权限
virusdefender Aug 10, 2018
79d5a5b
security email
virusdefender Aug 11, 2018
b5efbcc
Merge pull request #166 from QingdaoU/bugfix/fix_permission
virusdefender Aug 14, 2018
1dc7c69
Update data.json
virusdefender Aug 15, 2018
3cbfe40
Update data.json
virusdefender Aug 15, 2018
fb9381b
fix missing output_name when import/export porblem
Creedowl Aug 16, 2018
03ed021
Merge pull request #169 from Creedowl/master
zema1 Aug 16, 2018
c792407
Fixed problems in dispatcher, fixed testcase download error
zema1 Aug 21, 2018
ac3a491
Merge pull request #171 from QingdaoU/bugfix/judge-queue
zema1 Aug 22, 2018
6c1fa57
support admin filter problems by problemID or problemDisplayID
zema1 Aug 27, 2018
1c3c7ab
Added: contest submissions download view
zema1 Aug 28, 2018
fc67318
new release
zema1 Sep 7, 2018
640ad3d
fix error path in download submissions
zema1 Sep 26, 2018
d6113ac
try to fix permission
virusdefender Oct 14, 2018
f3aebfe
Merge pull request #186 from QingdaoU/fix_permission
virusdefender Oct 14, 2018
86c01c1
fix fps
virusdefender Oct 14, 2018
80c420b
fix old files permission
virusdefender Oct 14, 2018
cb316f6
Update nginx.conf
virusdefender Nov 5, 2018
36a6dae
fix rejudge function
zema1 Nov 26, 2018
e225bfb
Merge pull request #194 from QingdaoU/fix_rejudge
virusdefender Nov 26, 2018
bd3ef74
初始化管理员用户的时候,由判断 root 用户名是否存在改为是否有用户存在
virusdefender Dec 9, 2018
11e1c06
Update data.json
virusdefender Dec 15, 2018
82e5390
remove restriction when using open api
zema1 Dec 16, 2018
4c1534e
Merge pull request #202 from QingdaoU/api
zema1 Dec 16, 2018
3b3e88f
fix a vulnerability in contest submission
zema1 Nov 29, 2018
3111500
Merge pull request #203 from QingdaoU/fix_contest_submission
virusdefender Jan 5, 2019
f33df06
增加数据库初始化脚本
virusdefender Jan 5, 2019
a2e6465
修复 ACM 类型题目导入后,无法显示测试用例信息的问题
virusdefender Jan 5, 2019
54fc360
将编译选项修改为数据库存储
virusdefender Jan 5, 2019
5a361c3
设置 gunicorn 和 celery 的 worker 数量,最小是 2
virusdefender Jan 5, 2019
9e4444f
Update demo url
virusdefender Jan 12, 2019
dcf6646
Update demo url
virusdefender Jan 12, 2019
df4e508
Merge pull request #212 from QingdaoU/bugfix/fix1
zema1 Jan 16, 2019
503be4b
update to django 2.0
virusdefender Mar 11, 2019
2d3b8cd
修复部分情况下提取 serializer 的错误信息的错误
virusdefender Mar 11, 2019
336f314
支持用户的删除
virusdefender Mar 11, 2019
8391e02
remove celery and use dramatiq
virusdefender Mar 11, 2019
c655f3d
升级为 Python 3.7
virusdefender Mar 11, 2019
dfe8546
增加部分缓存
virusdefender Mar 11, 2019
f329ec1
增加文件上传功能
virusdefender Mar 12, 2019
344a875
解决 dispatcher 中部分数据库锁的问题
virusdefender Mar 12, 2019
6eabd5e
后端增加题目 io mode 相关逻辑
virusdefender Mar 12, 2019
a1d4381
share submission
virusdefender Mar 13, 2019
bb1b942
pass io mode to judge server
virusdefender Mar 13, 2019
fa19507
尝试修复 submission 中的竞争问题
virusdefender Mar 26, 2019
63ff513
check is id
virusdefender Mar 26, 2019
fe3abf7
disable sentry in no production env
virusdefender Mar 26, 2019
88e6d68
database connection retry
virusdefender Mar 26, 2019
56b86cd
add update notes
virusdefender Mar 26, 2019
2e737f9
add sysoptions languages migrations
virusdefender Mar 26, 2019
361c7be
fix tests
virusdefender Mar 26, 2019
ff0e467
Merge pull request #233 from QingdaoU/feature/django20
virusdefender Mar 26, 2019
278b7f9
fix cpp lang seccomp rules
virusdefender Mar 28, 2019
257aa5b
bug fix
virusdefender Apr 1, 2019
c9d6a63
修复 JudgeServer task_number 并发更新的问题
virusdefender Apr 3, 2019
dd0b49c
fix fps parser
virusdefender Apr 5, 2019
c9faac3
比赛题目也可以分享
virusdefender Apr 9, 2019
b417f5b
删除题目的时候不删除测试用例
virusdefender Apr 30, 2019
2e9efa8
https://github.com/QingdaoU/OnlineJudge/issues/245
virusdefender May 18, 2019
852004a
https://github.com/QingdaoU/OnlineJudge/issues/245
virusdefender May 18, 2019
af1a9f3
https://github.com/QingdaoU/OnlineJudge/issues/245
virusdefender May 18, 2019
0b0cb9e
增大部分语言的编译时间
virusdefender Sep 22, 2019
4bc4282
删除比赛题目暂时不删除测试用例
virusdefender Sep 22, 2019
f057c91
修复比赛修改密码之后,之前保存的 session 仍然可以使用的问题
virusdefender Sep 22, 2019
c3f555e
增加 release note
virusdefender Sep 22, 2019
e746745
Update admin.py
myleosu Nov 16, 2019
0c19951
Update admin.py
myleosu Nov 16, 2019
de41d2e
Update admin.py
myleosu Nov 16, 2019
912c74e
修复 Python3 代码中中文编码报错的问题
virusdefender May 6, 2020
371ba71
Merge pull request #283 from myleosu/myleosu-patch-1
virusdefender Jul 8, 2020
4e65643
Update languages.py
virusdefender Jul 8, 2020
b3f44b5
Update languages.py
virusdefender Jul 9, 2020
21aaa64
Update data.json
virusdefender Jul 9, 2020
2818e81
Update languages.py
virusdefender Jul 11, 2020
e77bd82
fix(test): 修复错误提示
helsonxiao Nov 29, 2020
a63f651
feat(problem tag): 支持模糊搜索
helsonxiao Nov 29, 2020
1c54f3f
fix(style): code style
helsonxiao Nov 29, 2020
1ea05f4
Merge pull request #340 from helsonxiao/master
virusdefender Mar 26, 2021
80b5d7c
Update README.md
virusdefender Jul 2, 2021
9838475
Update README-CN.md
virusdefender Jul 2, 2021
b879f11
fix xss
virusdefender Aug 2, 2021
76046a5
[Add] Import real_name when Import Users
Harry-zklcdc Aug 2, 2020
b6210e6
[Fix] Test Error
Harry-zklcdc Aug 2, 2020
1f18a28
update compiler version
virusdefender Aug 7, 2021
48a8d08
Update data.json
virusdefender Aug 7, 2021
51258c9
fix go build
virusdefender Sep 14, 2021
397384c
增加 javascript 支持
virusdefender Sep 28, 2021
606b43e
Update data.json
virusdefender Sep 28, 2021
fe6cc21
Update data.json
virusdefender Sep 30, 2021
e0b4a4c
migrate health_check.py to python3
chenhongqiao Oct 26, 2021
3e099f2
upgrade build configration
Beichi-CHs Nov 18, 2021
088c128
fix flake8 standard problems
Beichi-CHs Nov 18, 2021
c55075f
resolve backward compatibility issues
Beichi-CHs Nov 18, 2021
ca87945
migrate health_check.py to python3
chenhongqiao Oct 26, 2021
c67941c
fix useless escape symbol
Beichi-CHs Nov 18, 2021
8dcc904
Merge pull request #392 from Beichi-CHs/master
virusdefender Dec 8, 2021
073b4d4
Up to date readme.md
Beichi-CHs Dec 17, 2021
e8654b7
docs: django-dramatiq 重要升级提示
helsonxiao May 8, 2022
0b8babb
fix: rundramatiq
helsonxiao May 8, 2022
cd4610d
Merge pull request #414 from helsonxiao/master
virusdefender May 9, 2022
42d2403
Merge pull request #395 from Beichi-CHs/master
virusdefender May 9, 2022
26da9c1
Merge pull request #388 from chenhongqiao/master
virusdefender May 9, 2022
0e0788f
refactor: improve Dockerfile
mikucat0309 Jan 29, 2024
58c99d4
chore: add more template
mikucat0309 Jan 29, 2024
af1ed14
feat: upgrade judge languages and remove python2
mikucat0309 Jan 29, 2024
0dbfcc9
feat: add release build CI
mikucat0309 Jan 31, 2024
e2d264c
fix: add libpq dependency
mikucat0309 Jan 31, 2024
609d333
fix: change back interval of health check
mikucat0309 Jan 31, 2024
5c0c9e4
fix(ci): change container tag
mikucat0309 Feb 3, 2024
38ab670
feat(ci): add manual trigger
mikucat0309 Feb 3, 2024
45b15a2
feat(ci): replace GHCR with Aliyun registry
mikucat0309 Feb 7, 2024
b7f1d15
fix: add Dockerfile ARGs
mikucat0309 Feb 7, 2024
eaf27c9
docs: update dashboard release note
mikucat0309 Feb 4, 2024
98a080d
feat(ci): change trigger type
mikucat0309 Feb 7, 2024
e5e4d2a
chore: update denpendencies
mikucat0309 Apr 4, 2024
f79bf8d
fix: sync UID and GID with JudgeServer
mikucat0309 Apr 7, 2024
ab99c6b
chore(submission): fix typo
hepheir Oct 14, 2024
9e69d27
Merge pull request #479 from hepheir/master
mikucat0309 Oct 23, 2024
2f71e51
测试 Git 同步
proachhh Mar 21, 2026
de08929
Add spark_demo.py
lijiatu0530 Mar 22, 2026
a1b14f5
集成星火大模型API
lijiatu0530 Mar 22, 2026
d1a3a48
完成AI功能开发
proachhh Mar 23, 2026
f7c9e5d
修改Dockerfile以构建镜像
proachhh Mar 25, 2026
a21fc4c
初试推荐功能
proachhh Mar 26, 2026
5e2ee65
测试推荐功能
proachhh Mar 26, 2026
432be81
新增用户学习情况统计app
proachhh Mar 27, 2026
2f4cf37
新增学习状况统计,新增学习建议等,
proachhh Mar 28, 2026
714a6bf
完善学习趋势逻辑
proachhh Mar 30, 2026
0137595
完善学习趋势逻辑
proachhh Mar 30, 2026
9fa70c2
新增语言掌握雷达图
proachhh Mar 31, 2026
3ba1c2e
初试ai生成题目功能
proachhh Mar 31, 2026
8a207d9
保存 entrypoint.sh 的修改
proachhh Mar 31, 2026
ac6aa96
新增ai生成题目
proachhh Mar 31, 2026
88c67fb
修复一些已知问题
proachhh Apr 7, 2026
3837efd
修复一些已知问题
proachhh Apr 7, 2026
1d65b62
Remove dist folder from repository
proachhh Apr 7, 2026
8def408
新增 knowledge_graph app;更换推荐策略为内容召回、薄弱点召回、协同过滤;改造 learning_stats.views…
proachhh Apr 8, 2026
4e863e1
新增学习路径规划
proachhh Apr 9, 2026
9a4129c
新增教案管理功能
proachhh Apr 21, 2026
80a7d83
新增教案功能,教师可上传教案并关联题目,学生可查看教案。新增数据面板,管理员可车看后台数据。新增即时编译器浮窗。修复开发环境静态资源无法访…
proachhh Apr 22, 2026
1cc754c
修改一些已知问题
proachhh Apr 23, 2026
e829051
新增recommendAPP,增加模型和数据导出脚本
proachhh Apr 26, 2026
3eab6c8
新增知识图谱自学习功能,完善上传题目更新知识图谱功能,完善深度学习模块相关功能,
proachhh Apr 27, 2026
da3e19f
修复一个小bug
proachhh Apr 27, 2026
bd4bc37
集成DS-V4p模型,新增 5 个 AI 辅助学习功能
proachhh May 4, 2026
eddbb56
修复一些已知问题
proachhh May 5, 2026
9ec19f7
“注释pytorch相关依赖”
proachhh May 21, 2026
d45372b
多模态融合推荐(5路召回+DeepFM精排)、知识图谱深度学习(TransE+RGCN+RL路径规划)、多智能体架构(ProfileAgent)
proachhh May 21, 2026
8ad45c7
修复一些已知问题
proachhh May 21, 2026
6df6205
新增agent模块
proachhh May 23, 2026
7c33644
修复一些已知问题
proachhh May 23, 2026
ba737b7
修复一些已知问题
proachhh May 24, 2026
2649839
修复entrypoint兼容性问题
proachhh May 24, 2026
f05292c
修复题目集相关功能
proachhh May 26, 2026
f213149
修复题目集相关bug,增加智能获取tag的功能
proachhh May 26, 2026
2553c13
修复一些已知问题
proachhh May 27, 2026
e7fa34d
新增自测功能
proachhh Jun 1, 2026
3474406
修复自由编辑器无法使用的问题,新增bug反馈app,新增题目集删除功能,更新admin权限,修复其他已知问题
proachhh Jun 2, 2026
d322d49
修复一些已知问题
proachhh Jun 2, 2026
08d38f8
更新readme文件,Licence
proachhh Jun 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
7 changes: 7 additions & 0 deletions .coveragerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[run]
omit = */urls/*
*/__init__.py
*/tests.py
*/migrations/*
*urls.py
utils/xss_filter.py
4 changes: 4 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
venv
.idea
.git
.DS_Store
13 changes: 13 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
# 复制此文件为 .env 并填入真实值
# cp .env.example .env

# 讯飞星火大模型
SPARKAI_APP_ID=073e07dd
SPARKAI_API_KEY=89c58c9ff806b199ebb047b5781051fe
SPARKAI_API_SECRET=YmRlMzg1ZWY3NTU0YTFmZmI1ODJiNjE4
SPARKAI_URL=wss://spark-api.xf-yun.com/chat/pro-128k
SPARKAI_DOMAIN=pro-128k

# DeepSeek
DEEPSEEK_API_KEY=your_api_key_here
DEEPSEEK_BASE_URL=https://api.deepseek.com
10 changes: 10 additions & 0 deletions .flake8
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
[flake8]
exclude =
xss_filter.py,
*/migrations/,
*settings.py
*/apps.py
venv/
max-line-length = 180
inline-quotes = "
no-accept-encodings = True
12 changes: 12 additions & 0 deletions .github/issue_template.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
在提交issue之前请

- 认真阅读文档 http://docs.onlinejudge.me/#/
- 搜索和查看历史issues
- 安全类问题请不要在 GitHub 上公布,请发送邮件到 `admin@qduoj.com`,根据漏洞危害程度发送红包感谢。

然后提交issue请写清楚下列事项

 - 进行什么操作的时候遇到了什么问题,最好能有复现步骤
 - 错误提示是什么,如果看不到错误提示,请去data文件夹查看相应log文件。大段的错误提示请包在代码块标记里面。
- 你尝试修复问题的操作
- 页面问题请写清浏览器版本,尽量有截图
54 changes: 54 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,54 @@
name: Release build

on:
push:
tags:
- v**
workflow_dispatch:

jobs:
build:
runs-on: ubuntu-latest
environment: release
permissions:
contents: read
packages: write
steps:
- name: Docker metadata
id: metadata
uses: docker/metadata-action@v5
with:
images: |
registry.cn-hongkong.aliyuncs.com/oj-image/backend
tags: |
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}},enable=${{ !startsWith(github.ref, 'refs/tags/v0.') }}

- name: Set up QEMU
uses: docker/setup-qemu-action@v3

- name: Set up Docker Buildx
uses: docker/setup-buildx-action@v3

- name: Login to GitHub Container Registry
uses: docker/login-action@v3
with:
registry: ghcr.io
username: ${{ github.actor }}
password: ${{ secrets.GITHUB_TOKEN }}

- name: Login to Aliyun Container Registry
uses: docker/login-action@v3
with:
registry: registry.cn-hongkong.aliyuncs.com
username: ${{ secrets.ALIYUN_ACR_USERNAME }}
password: ${{ secrets.ALIYUN_ACR_PASSWORD }}

- name: Build and push
uses: docker/build-push-action@v5
with:
push: true
platforms: linux/amd64,linux/arm64
tags: ${{ steps.metadata.outputs.tags }}
annotations: ${{ steps.metadata.outputs.annotations }}
36 changes: 32 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,7 @@ bin/
build/
develop-eggs/
dist/
frontend_dist/
eggs/
lib64/
parts/
Expand Down Expand Up @@ -52,9 +53,36 @@ db.db
#redis dump
*.rdb
#*.out
db.sqlite3
*.sqlite3
.python-version
.DS_Store
log/
release/
build.txt
tmp/
test_case/
custom_settings.py
*.zip

data/log/*
!data/log/.gitkeep
data/test_case/*
!data/test_case/.gitkeep
data/ssl/*
!data/ssl/.gitkeep
data/public/upload/*
!data/public/upload/.gitkeep
data/public/avatar/*
!data/public/avatar/default.png
data/config/*
!data/config/.gitkeep

data/chromadb/*

http_locations.conf
https_locations.conf

venv/
# Environment secrets
.env
# Cookies / credentials
cookies*.txt
#test docker-compose
docker-compose.yml
17 changes: 17 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
language: python
python:
- "3.8"
services:
- docker
- postgresql
install:
- pip install -r deploy/requirements.txt
- echo `cat /dev/urandom | head -1 | md5sum | head -c 32` > data/config/secret.key
- ./init_db.sh
script:
- docker ps -a
- flake8 --config=./.flake8 .
- coverage run --include="$PWD/*" manage.py test
- coverage report
notifications:
slack: onlinejudgeteam:BzBz8UFgmS5crpiblof17K2W
47 changes: 34 additions & 13 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,13 +1,34 @@
FROM python:2.7
ENV PYTHONUNBUFFERED 1
ENV oj_env daocloud
RUN mkdir /var/oj
COPY . /var/oj/
WORKDIR /var/oj/
RUN pip install -r requirements.txt
EXPOSE 8080
RUN mkdir LOG
RUN mkdir test_case
RUN mkdir tmp
RUN python manage.py migrate
CMD python manage.py runserver 0.0.0.0:8080
FROM python:3.12-slim
ARG TARGETARCH
ARG TARGETVARIANT

ENV OJ_ENV production
WORKDIR /app

COPY ./deploy/requirements.txt /app/deploy/

RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
--mount=type=cache,target=/root/.cache/pip,sharing=locked \
<<EOS
set -ex
sed -i 's|http://deb.debian.org|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/debian.sources
sed -i 's|http://security.debian.org|https://mirrors.tuna.tsinghua.edu.cn|g' /etc/apt/sources.list.d/debian.sources
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
apt-get update
apt-get install -y --no-install-recommends \
build-essential libpq-dev libjpeg-dev zlib1g-dev libfreetype-dev \
supervisor nginx curl unzip ca-certificates
pip install -r /app/deploy/requirements.txt
pip install torch --index-url https://download.pytorch.org/whl/cpu
apt-get remove -y build-essential libpq-dev libjpeg-dev zlib1g-dev libfreetype-dev
rm -rf /var/lib/apt/lists/*
EOS

COPY ./ /app/
COPY frontend_dist /app/dist

RUN chmod -R u=rwX,go=rX ./ && chmod +x ./deploy/entrypoint.sh

HEALTHCHECK --interval=5s CMD [ "/usr/local/bin/python3", "/app/deploy/health_check.py" ]
EXPOSE 8000
ENTRYPOINT [ "/app/deploy/entrypoint.sh" ]
28 changes: 28 additions & 0 deletions Dockerfile.bak
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
# 不再需要 downloader 阶段,直接使用本地 dist
FROM python:3.12-alpine
ARG TARGETARCH
ARG TARGETVARIANT

ENV OJ_ENV production
WORKDIR /app

COPY ./deploy/requirements.txt /app/deploy/

RUN --mount=type=cache,target=/etc/apk/cache,id=apk-cache-$TARGETARCH$TARGETVARIANT-final \
--mount=type=cache,target=/root/.cache/pip,id=pip-cache-$TARGETARCH$TARGETVARIANT-final \
<<EOS
set -ex
apk add gcc libc-dev python3-dev libpq libpq-dev libjpeg-turbo libjpeg-turbo-dev zlib zlib-dev freetype freetype-dev supervisor openssl nginx curl unzip
pip install -r /app/deploy/requirements.txt
apk del gcc libc-dev python3-dev libpq-dev libjpeg-turbo-dev zlib-dev freetype-dev
EOS

COPY ./ /app/
# 关键:复制本地构建的前端静态文件(dist 目录必须存在于构建上下文中)
COPY frontend_dist /app/dist

RUN chmod -R u=rwX,go=rX ./ && chmod +x ./deploy/entrypoint.sh

HEALTHCHECK --interval=5s CMD [ "/usr/local/bin/python3", "/app/deploy/health_check.py" ]
EXPOSE 8000
ENTRYPOINT [ "/app/deploy/entrypoint.sh" ]
22 changes: 22 additions & 0 deletions LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
The MIT License (MIT)

Copyright (c) 2017-present Qingdao University OnlineJudge Contributors
Copyright (c) 2025-present Project Authors

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading