diff --git a/README.md b/README.md index fe4be93..bd32900 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,144 @@ +### 1. CodePedia相关 -## 导入工程 -1.这个页面应该有权限控制,只允许特定的人访问 -2.最好在页面做一个提示(方便以后的人接手): -在submit时,提示:正在导入工程,请勿关闭页面(问:如果关闭页面会有什么后果....) -3.导入其实是在2个表中中insert,一个是Source Project,这是这个工程的大概介绍 -一个是Source File,这个表包含了工程对应的文件的具体路径,投票数,观看数等具体信息. -4.最好选择的时候能够提供一个选择框,这样不会容易出错 +1. 进入服务器:ssh root@120.132.101.149 -p 22011 密码: code123! +2. 进入mysql服务器: mysql -uroot -pcodepedia123 -## 通过邮箱激活: -1.django中已经有发送邮件的模块了:django.core.mail:https://docs.djangoproject.com/en/2.0/topics/email/ + - CodePedia的数据库为codepedia -问题: +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小节启动服务的步骤,才能正常使用系统。 \ No newline at end of file