Kooder is an open source code search project, offering code, repositories and issues search service for code hosting platforms including Gitee, GitLab and Gitea.
UI
There are two modules, gateway and indexer. Gateway is integrated inside gateway under default config.
Gateway:
Indexer:
core
Core object and public classgateway
Accept index and search requests from HTTP requestsindexer
A service to construct, update and delete index1.Dependencies
2.Download source code
$ git clone https://gitee.com/koode/kooder.git
$ cd kooder
Config file: kooder.properties
Config kooder's url http.url
. It will be injected into Git service as the webhook URL, must be accessible for Git service, such as:
http.url = http://<kooder-host>:8080
Click here to see more config options configuration.md
Dependencies
After cloning this repo, in a machine with docker compose installed, run the following command:
### Run containers in the background
docker-compose up -d
### Stop and remove containers
docker-compose down
### Run containers in the background
docker-compose -f docker-compose-ha.yaml up -d
### Stop and remove containers
docker-compose -f docker-compose-ha.yaml down
This is how it will look like:
After modifing the config file core/src/main/resources/kooder.properties
, run the following commands; delete local kooder image and rebuid it.
docker-compose down
docker-compose up -d
View service startup status
docker logs -f CONTAINER_ID
......
2021-04-07 13:28:49 INFO [gateway] - Tasks [indexer,gitee] started.
2021-04-07 13:28:49 INFO [gateway] - READY (*:8080)!
.......
The log output as the above information indicates that the startup is successful
prompt
Every startup will execute mvn install
to ensure that the configuration file takes effect
Use it in Gitlab
Config following properties:
http.startup.tasks = indexer,gitlab
gitlab.url = http://gitlab-host:gitlab-port/
gitlab.personal_access_token = <root user personal access token>
git.username = root
git.password =
Kooder will use access token as the password if you don't offer one.
Use it in Gitee
Config following properties:
http.startup.tasks = indexer,gitee
gitee.url = https://gitee.com/
gitee.personal_access_token = <root user personal access token>
git.username = root
git.password =
Kooder will use access token as the password if you don't offer one.
Use it in Gitea
1.Site Administration
2.Add Gitea Webhook
3.Set up Webhook
http://kooder-ip:kooder-port/gitea
POST + application/json
All Event
or Custom Events
for the Trigger On
option. ( If you choose Custom Events
, you need to check Repo
, Push
and Issue
)2.Config following properties.
http.startup.tasks = indexer,gitea
gitea.secret_token = <webhook secret token>
gitea.url = http://gitea-ip:prot/
gitea.personal_access_token = <admin user personal access token>
git.username = <admin username>
git.password = <admin password>
Index repository from file
Kooder currently supports repository indexing for the same hosting platform. If you need to index multiple hosting platforms, you can do a split import.
Config kooder.properties
:
//Enable index repository from file
http.startup.tasks = indexer,file //Add file field
file.index.path = C:/Documents/Kooder/file.txt //Config file path of file.txt
file.index.vender = gitee //Specify the corresponding code hosting platform
Content of file.txt
// Add the repository URL of the hosting platform specified in the configuration
http://gitee.com/koode/kooder.git
https://gitee.com/ld/J2Cache.git
...
Build and Run
$ cd Kooder
$ mvn install
### Run gateway
$ bin/gateway.sh
### Brower visits http://localhost:8080
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。
Activity
Community
Health
Trend
Influence
:Code submit frequency
:React/respond to issue & PR etc.
:Well-balanced team members and collaboration
:Recent popularity of project
:Star counts, download counts etc.