2.0版部署文档

This commit is contained in:
zema1 2017-10-31 20:26:36 +08:00
parent 86b23625a0
commit 579ba4e072
3 changed files with 94 additions and 80 deletions

View File

@ -4,7 +4,7 @@
- 必要的工具 `apt-get update && apt-get install -y vim python-pip curl git` - 必要的工具 `apt-get update && apt-get install -y vim python-pip curl git`
- 安装 docker `curl -sSL https://get.daocloud.io/docker | sh` - 安装 docker `curl -sSL https://get.daocloud.io/docker | sh`
- 安装 docker-compose `LC_CTYPE= pip install docker-compose` - 安装 docker-compose `pip install docker-compose`
## Windows 系统安装基础环境 ## Windows 系统安装基础环境
@ -23,20 +23,27 @@ Windows 下面安装会有很多坑经过测试时Win10 x64下的 `PowerSh
请选择磁盘空间富余的位置,运行下面的命令 请选择磁盘空间富余的位置,运行下面的命令
`git clone https://github.com/QingdaoU/OnlineJudgeDeploy.git && cd OnlineJudgeDeploy` ```sh
git clone https://github.com/QingdaoU/OnlineJudgeFE.git
git clone -b 2.0 https://github.com/QingdaoU/OnlineJudge.git
git clone -b 2.0 https://github.com/QingdaoU/OnlineJudgeDeploy.git
cd OnlineJudgeDeploy
```
然后编辑 `docker-compose.yml` 第28行为自定义的密码比如`rpc_token=123456` 然后编辑 `docker-compose.yml` 将41行的`JUDGE_SERVER_TOKEN`和第68行的`TOKEN`修改为自定义的值, 两处值必须相同且`=`前后不能有空格
## 启动服务 ## 启动服务
运行 `docker-compose up -d` ,不需要其他的步骤,大约一分钟之后 web 界面就可以访问了默认开放80和443端口。其中443端口是自签名证书。 运行 `docker-compose up -d` 根据网速情况大约5到30分钟就可以自动搭建完成全程无需人工干预。
若想获悉安装进度,运行`docker-compose logs`查看安装日志,当显示结果中出现以下文字时
```
Congratulations, All have done without error.
```
表示安装已成功结束
注意对于非root用户请用 `sudo -E docker-compose up -d`,否则不会传递当前的 `$PWD` 环境变量。 注意对于非root用户请用 `sudo -E docker-compose up -d`,否则不会传递当前的 `$PWD` 环境变量。
## 这就结束了 ## 尽情享用吧
超级管理员用户名是root默认密码是`password@root`,请及时修改。 通过浏览器访问服务器的80端口就可以开始使用了
后台管理默认路径为`/admin`, 安装过程中自动添加的超级管理员用户名为`root`,密码为`rootroot` 请务必及时修改。
登录`/admin`,添加一个判题服务器,地址为`judger`,端口为`8080`,密码是上面自定义的`rpc_token`。
修改`custom_settings.py`可以自定义站点信息。

View File

@ -1,22 +0,0 @@
# coding=utf-8
import os
# Run `docker-compose restart` after changing this file
WEBSITE_INFO = {"website_name": u"example1大学 OnlineJudge",
"website_name_shortcut": u"example oj",
"website_footer": u"example大学foobar学院 <a href=\"http://www.miibeian.gov.cn/\">京ICP备233333号-1</a>",
# url结尾没有/
"url": u"http://your-domain-or-ip.com"}
# https://github.com/QingdaoU/OnlineJudge/wiki/SMTP
SMTP_CONFIG = {"smtp_server": "smtp.domain.com",
"email": "noreply@domain.com",
"password": "your_password",
"port": 25,
"tls": True}
# 是否显示所有人的提交, False就只显示自己的
SHOW_ALL_SUBMISSIONS_LIST = False

View File

@ -1,51 +1,80 @@
version: "2" version: "3"
services: services:
oj_redis:
image: redis:3.0-alpine
container_name: oj_redis
restart: always
volumes:
- $PWD/data/redis:/data
oj_mysql: redis:
image: registry.cn-hangzhou.aliyuncs.com/qduoj/mysql image: redis:4.0-alpine
container_name: oj_mysql container_name: oj_redis
restart: always restart: always
volumes: volumes:
- $PWD/data/mysql:/var/lib/mysql - $PWD/data/redis:/data
environment:
- MYSQL_ROOT_PASSWORD=MYSQL_PASSWORD_AAA postgres:
image: postgres:10-alpine
container_name: oj_postgres
restart: always
volumes:
- $PWD/data/postgres:/var/lib/postgresql/data
environment:
- POSTGRES_DB=onlinejudge
- POSTGRES_USER=onlinejudge
- POSTGRES_PASSWORD=onlinejudge
oj-backend:
image: registry.cn-hangzhou.aliyuncs.com/onlinejudge/oj_backend
container_name: oj_backend
depends_on:
- redis
- postgres
volumes:
- $PWD/OnlineJudge:/app
- $PWD/log:/data/log
- $PWD/data/test_case:/data/test_case
- $PWD/data/avatar:/data/avatar
environment:
- REDIS_HOST=redis
- REDIS_PORT=6379
- POSTGRES_HOST=postgres
- POSTGRES_PORT=5432
- POSTGRES_DB=onlinejudge
- POSTGRES_USER=onlinejudge
- POSTGRES_PASSWORD=onlinejudge
- JUDGE_SERVER_TOKEN=CHANGE_THIS
judger: judge-server:
image: registry.cn-hangzhou.aliyuncs.com/qduoj/judger image: registry.cn-hangzhou.aliyuncs.com/onlinejudge/judge_server
container_name: judger container_name: judge_server
restart: always read_only: true
volumes: depends_on:
- $PWD/data/test_case:/var/judger/test_case - oj-backend
- $PWD/data/log:/var/judger/code/judge/log cap_drop:
environment: - SETPCAP
- TZ=Asia/Shanghai - MKNOD
- rpc_token={YOUR_PASSWORD} - NET_BIND_SERVICE
- SYS_CHROOT
oj_web_server: - SETFCAP
image: registry.cn-hangzhou.aliyuncs.com/qduoj/oj_web_server - FSETID
container_name: oj_web_server tmpfs:
restart: always - /tmp
links: - /judger_run:exec,mode=777
- oj_mysql - /spj:exec,mode=777
- oj_redis volumes:
- judger - $PWD/data/test_case:/test_case:ro
volumes: - $PWD/log:/log
- $PWD/data/test_case:/code/test_case - $PWD/JudgeServer/server:/code:ro
- $PWD/data/upload:/code/upload environment:
- $PWD/data/log:/code/log - service_url=http://judge-server:8080
- $PWD/data/ssl:/code/ssl - OJ_WEB_SERVER_PORT_8080_TCP_ADDR=oj-backend
- $PWD/custom_settings.py:/code/oj/custom_settings.py - OJ_WEB_SERVER_PORT_8080_TCP_PORT=8080
environment: - TOKEN=CHANGE_THIS
- TZ=Asia/Shanghai
- oj_env=server oj-frontend:
- MYSQL_ENV_MYSQL_USER=root image: registry.cn-hangzhou.aliyuncs.com/onlinejudge/oj_frontend
- MYSQL_ENV_MYSQL_ROOT_PASSWORD=MYSQL_PASSWORD_AAA container_name: oj_frontend
ports: depends_on:
- "0.0.0.0:80:80" - oj-backend
- "0.0.0.0:443:443" volumes:
- $PWD/OnlineJudgeFE:/OJ_FE
- $PWD/data/avatar:/data/avatar
- $PWD/log:/var/log/nginx
ports:
- "0.0.0.0:80:80"