update README.md

This commit is contained in:
renmin 2020-01-18 19:59:19 +08:00
parent 3526fc9944
commit 3952dd53d5
1 changed files with 140 additions and 10 deletions

150
README.md
View File

@ -1,14 +1,144 @@
### 1. CodePedia相关
## 导入工程 1. 进入服务器ssh root@120.132.101.149 -p 22011 密码: code123!
1.这个页面应该有权限控制,只允许特定的人访问 2. 进入mysql服务器: mysql -uroot -pcodepedia123
2.最好在页面做一个提示(方便以后的人接手):
在submit时,提示:正在导入工程,请勿关闭页面(问:如果关闭页面会有什么后果....)
3.导入其实是在2个表中中insert,一个是Source Project,这是这个工程的大概介绍
一个是Source File,这个表包含了工程对应的文件的具体路径,投票数,观看数等具体信息.
4.最好选择的时候能够提供一个选择框,这样不会容易出错
## 通过邮箱激活: - CodePedia的数据库为codepedia
1.django中已经有发送邮件的模块了:django.core.mail:https://docs.djangoproject.com/en/2.0/topics/email/
问题: 3. CodePedia项目在线地址https://www.trustie.net/projects/4418/repository/codepedia2/revisions/master/show
4. CodePedia项目服务器地址/projects/codepedia/codepedia2
### 2. 启动服务
CodePedia的服务主要分为三个部分
1. 主要服务CodePedia主系统
2. 跟标注竞赛用户排名相关: Redis服务
3. 跟代码跳转、文件结构树相关的OpenGrok服务
#### 2.1 CodePedia主系统启动
- 启动步骤:
1. `codepediahome` #进入codepedia项目根目录
2. `service nginx start` #启动nginx
3. `codepediarun` #启动codepedia
如果暂时关闭codepedia系统执行 `service nginx stop`
- 校验方法
打开http://codepedia.trustie.net如果能正常打开则为启动成功。
#### 2.2 Redis服务启动
默认情况下Redis应该是已经启动了的建议先校验
- 启动步骤:
1. `cd /redis-stable` #进入Redis根目录
2. `nohup redis-server &`#后台运行Redis服务
- 校验方法
在终端输入: `redis-cli` ,如果进入了`127.0.0.1:6379>`则表示启动成功。
#### 2.3 OpenGrok服务启动
OpenGrok服务是借助Tomcat部署的启动OpenGrok实际上是启动Tomcat
- 启动步骤:
1. `cd /opt/tomcat/bin/` #进入Tomcat的bin目录
2. `./startup.sh` #启动Tomcat服务
- 校验方法
在浏览器打开: `http://codepedia.trustie.net:8080` 如果正常进入现实Tomcat则表示启动成功
### 3. 上传新的开源项目到CodePedia平台
1. 在服务器上克隆开源项目: 登录服务器,在`/opt/opengrok/source/`下将项目clone下来
2. 使用OpenGrok构建索引: `cd /opt/opengrok/ && java -Xmx524m -jar lib/opengrok.jar -W "/opt/opengrok/data/configuration.xml" -P -S -v -s "/opt/opengrok/source" -d "/opt/opengrok/data"`
3. 将开源项目的信息写入数据库:
- 打开浏览器进入 http://codepedia.trustie.net/projects/new/
- 填写表格,然后提交。请注意:
1. 工程名字请务必保持与/opt/opengrok/source的项目名字保持一致
2. 工程路径和工程名字一致(建议自己优化一下)
3. 描述可以填写Github上项目自己的描述
- 提交后,**不要关闭页面**, 等待直到页面完成跳转(此间会在后台一直开源项目的信息写入数据库,不要关闭的原因是防止表单重复提交)
### 4. 设置竞赛项目和竞赛文件
#### 4.1 竞赛策略说明:
| 策略 | 说明 |
| ---- | ------------------ |
| 0 | 注释所有人可见 |
| 1 | 注释仅用户自己可见 |
| 2 | 注释仅组内用户可见 |
一般而言我们只会用到0和2
#### 4.2 竞赛项目、竞赛文件、竞赛策略设置
这个方式建议在上传新的竞赛开源项目后就设置完毕。示例:
http://codepedia.trustie.net/projects/set_competition_project?project_name=tensorflow&strategy=2&path=/tensorflow/core/kernels/rnn
上例将项目名为`tensorflow`下的`/tensorflow/core/kernels/rnn`下的所有文件设置为竞赛文件也就是对应了
http://codepedia.trustie.net/projects/tensorflow/tensorflow/core/kernels/rnn.
并且该竞赛项目的策略为2也就是组内用户可见。
**注意path设置为http://codepedia.trustie.net/projects/project-name后面的部分哟要以`/`开始。**
而一般我们需要修改`project_name`、`strategy`以及`path`这三个参数。
#### 4.3 竞赛策略改变之数据库操作
初始化时还是使用4.2的方式,但是可能由于随着比赛的进行,竞赛策略会发生变化,建议直接修改数据库。(也可以写一个定时脚本定时修改,这个更方便)
对应数据库为: AnotationStrategy
### 5. 服务器迁移
#### 1. 迁移开发环境
- anaconda 环境迁移
建议直接将所有包迁移过去而不要在线安装但是直接拷贝肯定不行因为有些包直接通过pip install -r requirement会安装不成功
- 可能有用的链接: https://blog.csdn.net/qq_30006593/article/details/89647937
- 部分包的安装间项目根目录下的`安装文档.md`
- tomcat环境迁移
建议直接将tomcat整个文件夹全部拷贝过去因为里面有调用的OpenGrok的Java服务
- redis环境迁移
建议直接将redis整个文件夹全部拷贝过去因为直接就能用
- opengrok环境迁移
建议直接将opengrok直接拷贝过去并也放在/opt/opengrok目录下。因为CodePedia项目中依赖当前的/opt/opengrok这个绝对路径
- mysql环境迁移
建议迁移时保持原来的数据库用户和密码否则需要修改CodePedia项目中数据库的配置
- nginx和uwsgi迁移
暂时保留(有点不记得了)
将所有开发环境迁移之后需要按照第2小节启动服务的步骤才能正常使用系统。