Update README.md
This commit is contained in:
parent
3c6b35f83c
commit
c4746215d1
106
README.md
106
README.md
|
@ -1,2 +1,106 @@
|
|||
# OSCH
|
||||
# OSCH_server
|
||||
OSCH (open source clone hunter)
|
||||
|
||||
## How to use this
|
||||
First of all, you need to clone this repository into your own server.
|
||||
|
||||
As all the dependent parts are based on docker. So install docker on your server first. Here is a [guide](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-on-ubuntu-20-04) for ubuntu 20.04.
|
||||
Then install docker-compose by running `sudo apt install docker-compose`.
|
||||
|
||||
Add priviledge for the user.
|
||||
```
|
||||
sudo groupadd docker
|
||||
sudo gpasswd -a $USER docker
|
||||
newgrp docker
|
||||
docker ps # test whether docker command can be used
|
||||
```
|
||||
|
||||
Install docker-compose following this [guide](https://www.digitalocean.com/community/tutorials/how-to-install-and-use-docker-compose-on-ubuntu-20-04).
|
||||
|
||||
Install the dependencies using the following steps:
|
||||
|
||||
1. `docker network create OSCH` to create the network.
|
||||
2. `cd dependencies`
|
||||
3. `docker-compose up -d` to install all the dependent services, including gitea (the dependent mysql), rabbitmq, elasticsearch, kibana.
|
||||
- Error may occur when installing elasticsearch and kibana, you need to:
|
||||
- `sudo chmod 777 -R elasticsearch`
|
||||
- `sudo chmod 777 -R kibana`
|
||||
- `docker-compose up -d`
|
||||
4. Configure the gitea settings for initialization. See the figure below.
|
||||
|
||||
<details>
|
||||
<summary>Click to present.</summary>
|
||||
|
||||
You need to change the IP address and the administrator account by yourself.
|
||||
|
||||

|
||||
</details>
|
||||
|
||||
5. Configure the gitea system webhook for the incremental perception service. See the figure below.
|
||||
|
||||
<details>
|
||||
<summary>Click to present.</summary>
|
||||
|
||||
You need to change the IP address and the administrator account by yourself.
|
||||
|
||||

|
||||
</details>
|
||||
|
||||
6. Create python virtual environment using command `conda create -n OSCH python=3.7.11` based on conda. (Before this you need to install conda following this [guide](https://linuxize.com/post/how-to-install-anaconda-on-ubuntu-20-04/#:~:text=Complete%20the%20following%20steps%20to%20install%20Anaconda%20on,In%20order%20to%20continue%20the%20installation%20process%2C%20).)
|
||||
|
||||
|
||||
7. Activate the python virtual environment using command `conda activate OSCH`.
|
||||
|
||||
8. Install dependent python packages using command `pip install -r requirements.txt`.
|
||||
|
||||
9. Change the working directory to the `services` directory using command: `cd ../services`.
|
||||
|
||||
10. Change the configuration:
|
||||
- Copy the configuration file from the template using command: `cp config-template.yml config.yml`;
|
||||
- Change `gitea/repositories_path`;
|
||||
- Change `elasticsearch/urls` and the names of indexes, including `elasticsearch/index_ngram` and `elasticsearch/index_handled_commits` as you want;
|
||||
- Change `mysql`;
|
||||
- Change `rabbitmq`;
|
||||
- Change the number of threads for running `coldstart_service` and `incremental_service`;
|
||||
- Change the absolute base path of `nil`;
|
||||
- Change `client_service`:
|
||||
- `gitea_url` is the address of your local gitea service;
|
||||
- `token` is personal account token in which you installed the client service.
|
||||
|
||||
11. Change the python path in `restart_services.sh` file.
|
||||
|
||||
12. Run the service using command: `bash restart_services.sh`.
|
||||
|
||||
## The tree of this project
|
||||
```
|
||||
.
|
||||
├── dependencies -- the dir for dependencies of OSCH
|
||||
│ ├── docker-compose.yml -- the docker-compose starting the dependencies
|
||||
├── LICENSE -- the license file
|
||||
├── pics -- the pictures in README.md file
|
||||
│ ├── gitea-setting.jpeg
|
||||
│ └── gitea-system-webhook-setting.png
|
||||
├── pyproject.toml
|
||||
├── README.md
|
||||
├── requirements.txt -- the requirements of python packages
|
||||
└── services -- the services of OSCH
|
||||
├── ChangedMethodExtractor.py -- the class for extracting changes in source code file
|
||||
├── CloneDetectionAPI.py -- the Clone Detection and Search services
|
||||
├── CloneDetection.py -- the class for clone detection related methods
|
||||
├── ColdStartPerception.py -- the Cold Start Service
|
||||
├── config-template.yml -- the template of configuration file
|
||||
├── ESUtils.py -- the utility file of Elasticsearch
|
||||
├── IncrementalPerceptionAPI.py -- the producer of Incremental Service
|
||||
├── IncrementalPerceptionHandler.py -- the consumer of Incremental Service
|
||||
├── __init__.py
|
||||
├── LCS.py -- Longest Common Subsequence algorithm
|
||||
├── models -- the models defined for running the service
|
||||
├── MySQLUtils.py -- the utility file of mysql
|
||||
├── parser
|
||||
| ├── FuncExtractor_nil.py -- the script of invoking function extractor of NIL
|
||||
| └── nil -- the function extractor of NIL
|
||||
├── RabbitmqUtils.py -- the utility file of rabbitmq
|
||||
├── restart_services.sh -- the script for restarting OSCH's services
|
||||
└── utils.py -- the utility file
|
||||
```
|
||||
|
||||
|
|
Loading…
Reference in New Issue