🔍An open source GitLab/Gitee/Gitea code search tool. Kooder 是一个为 Gitee/GitLab 开发的开源代码搜索工具,这是一个镜像仓库,主仓库在 Gitee。

Overview

Kooder

Intro

Kooder is a open source code search project, offering code, repositories and issues search service for code hosting platforms including Gitee, GitLab and Gitea.

UI

Kooder ScreenShot

There are two modules, gateway and indexer. Gateway is integrated inside gateway under default config.

Gateway:

  • Accept index tasks from HTTP requests and put them in the queue after examing it
  • Accept search requests and return their results back to the client

Indexer:

  • Monitor the index tasks inside the queue
  • Update these add, delete and update index tasks back to the index library

Modules

  • core Core object and public class
  • gateway Accept index and search requests from HTTP requests
  • indexer A service to construct, update and delete index

Logic Flow

Kooder Flow

Install source code

1.Dependencies

  • openjdk >= 8
  • maven > 3

2.Download source code

$ git clone https://gitee.com/koode/kooder.git
$ cd kooder

Configuration

Config file: core/src/main/resources/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://:8080

Click here to see more config options configuration.md

Install Docker

Dependencies

  • docker-ce environment
  • docker-compose

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

This is how it will look like:

Kooder docker-ha

After modifing the config file /deploy/kooder.properties, run the following commands; delete local kooder image and rebuid it.

docker rmi imageID
docker-compose up -d

Use it in Gitlab

Config following properties:

gitlab.url = http://gitlab-host:gitlab-port/  
gitlab.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:

gitee.url = https://gitee.com/  
gitee.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

  • Set Target URL to http://kooder-ip:kooder-port/gitea
  • Set POST Content Type to POST + application/json
  • CheckAll 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.

gitea.secret_token = 
gitea.url = http://gitea-ip:prot/
gitea.personal_access_token = 
git.username = 
git.password = 

Build and Run

$ cd Kooder
$ mvn install
### Run gateway
$ bin/gateway.sh
### Brower visits http://localhost:8080
You might also like...

Search API with spelling correction using ngram-index algorithm: implementation using Java Spring-boot and MySQL ngram full text search index

Search API with spelling correction using ngram-index algorithm: implementation using Java Spring-boot and MySQL ngram full text search index

Search API to handle Spelling-Corrections Based on N-gram index algorithm: using MySQL Ngram Full-Text Parser Sample Screen-Recording Screen.Recording

Dec 4, 2021

Apache Lucene and Solr open-source search software

Apache Lucene and Solr have separate repositories now! Solr has become a top-level Apache project and main line development for Lucene and Solr is hap

Jan 7, 2023

🔍 Open Source Enterprise Cognitive Search Engine

OpenK9 OpenK9 is a new Cognitive Search Engine that allows you to build next generation search experiences. It employs a scalable architecture and mac

Dec 10, 2022

OpenSearch is an open source distributed and RESTful search engine.

OpenSearch is an open source search and analytics engine derived from Elasticsearch

Jan 1, 2023

filehunter - Simple, fast, open source file search engine

 filehunter - Simple, fast, open source file search engine

Simple, fast, open source file search engine. Designed to be local file search engine for places where multiple documents are stored on multiple hosts with multiple directories.

Sep 14, 2022

OpenGrok is a fast and usable source code search and cross reference engine, written in Java

Copyright (c) 2006, 2020 Oracle and/or its affiliates. All rights reserved. OpenGrok - a wicked fast source browser OpenGrok - a wicked fast source br

Jan 8, 2023

mobsfscan is a static analysis tool that can find insecure code patterns in your Android and iOS source code.

mobsfscan is a static analysis tool that can find insecure code patterns in your Android and iOS source code.

mobsfscan is a static analysis tool that can find insecure code patterns in your Android and iOS source code. Supports Java, Kotlin, Swift, and Objective C Code. mobsfscan uses MobSF static analysis rules and is powered by semgrep and libsast pattern matcher.

Dec 29, 2022

This is a tool to visualize search algorithms

This is a tool to visualize search algorithms

Path-Finding-Visualizer Purpose This is a tool to visualize search algorithms Algorithms featured Breadth First Search Deapth First Search Gready Best

Oct 20, 2022

Free and Open, Distributed, RESTful Search Engine

Elasticsearch A Distributed RESTful Search Engine https://www.elastic.co/products/elasticsearch Elasticsearch is a distributed RESTful search engine b

Dec 31, 2022

The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts

The open-source Java obfuscation tool working with Ant and Gradle by yWorks - the diagramming experts

yGuard yGuard is an open-source Java obfuscation tool. With yGuard it is easy as pie ( 🍰 ) to configure obfuscation through an extensive ant task. yG

Jan 2, 2023

OpenRefine is a free, open source power tool for working with messy data and improving it

OpenRefine is a free, open source power tool for working with messy data and improving it

OpenRefine OpenRefine is a Java-based power tool that allows you to load data, understand it, clean it up, reconcile it, and augment it with data comi

Jan 1, 2023

inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.

inspectIT is the leading Open Source APM (Application Performance Management) tool for analyzing your Java (EE) applications.

🔥 inspectIT OpenCensus Edition has been released 🔥 The inspectIT OCE project provides an improved Java agent newly developed from scratch focusing o

Dec 13, 2022

The Apache PDFBox library is an open source Java tool for working with PDF documents

Apache PDFBox The Apache PDFBox library is an open source Java tool for working with PDF documents. This project allows creation of new PDF documents,

Dec 31, 2022

HyCache - an open source caching tool based on bytecode enhancement implementation

HyCache is an open source caching tool.It is based on bytecode enhancement implementation, rather than spring's dynamic proxy. It can achieve a wider range of applications

Sep 6, 2022

Keycloak - an Open Source Identity and Access Management tool

Keycloak - an Open Source Identity and Access Management tool

Keycloak is an Open Source Identity and Access Management tool. You can use it to add authentication to applications and secure services with minimum effort. No need to deal with storing users or authenticating users.

Sep 20, 2022

MathParser - a simple but powerful open-source math tool that parses and evaluates algebraic expressions written in pure java

MathParser - a simple but powerful open-source math tool that parses and evaluates algebraic expressions written in pure java

MathParser is a simple but powerful open-source math tool that parses and evaluates algebraic expressions written in pure java. This projec

Dec 24, 2022

Aye - an open source tool for scanning images on Kubernetes cluster

Aye - an open source tool for scanning images on Kubernetes cluster

Aye is an open source tool for scanning images on Kubernetes cluster. It uses Anchore CLI behind the scenes to get information about all images that are currently on the cluster. It also provides Prometheus metrics for each image, so teams are aware of different levels of vulnerabilities found inside them.

Sep 4, 2022

Jacksum (JAva ChecKSUM) is a free, open source, cross-platform, feature-rich, multi-threaded command line tool for calculating hash values, verifying data integrity, finding files by their fingerprints, and finding algorithms to a hash value.

Jacksum (JAva ChecKSUM) is a free, open source, cross-platform, feature-rich, multi-threaded command line tool for calculating hash values, verifying data integrity, finding files by their fingerprints, and finding algorithms to a hash value.

Dec 26, 2022
Comments
  • Make configurable via Environment Vars

    Make configurable via Environment Vars

    Hello, thanks for this project! I wasn't sure how to make a PR, but I solved this for myself and thought I'd quickly share back the code here.

    Allowing override of any config file variable with an associated environment variable makes running in a dynamically provisioned container much easier.

    This minor adaption will enable override of, e.g. gitea.personal_access_token by setting ${KOODER_GITEA_PERSONAL_ACCESS_TOKEN}

    In Configuration.java:

        // allow override of any config vars with environment vars
        private String getEnvironmentVarName(String key) {
            return "KOODER_" + key.replace('.', '_').toUpperCase();
        }
    
        public String getProperty(String key) {
            // allow override with environment vars
            String value = System.getenv(getEnvironmentVarName(key));
            if(value != null) {
                return value;
            }
    
            return this.props.getProperty(key);
        }
       [... do the same in each getProperty(...) ...]
    
    opened by benbourner 0
OpenSearch is an open source distributed and RESTful search engine.

OpenSearch is an open source search and analytics engine derived from Elasticsearch

null 6.2k Jan 1, 2023
filehunter - Simple, fast, open source file search engine

Simple, fast, open source file search engine. Designed to be local file search engine for places where multiple documents are stored on multiple hosts with multiple directories.

null 32 Sep 14, 2022
Free and Open, Distributed, RESTful Search Engine

Elasticsearch A Distributed RESTful Search Engine https://www.elastic.co/products/elasticsearch Elasticsearch is a distributed RESTful search engine b

elastic 62.3k Dec 31, 2022
GitHub Search Engine: Web Application used to retrieve, store and present projects from GitHub, as well as any statistics related to them.

GHSearch Platform This project is made of two subprojects: application: The main application has two main responsibilities: Crawling GitHub and retrie

SEART - SoftwarE Analytics Research Team 68 Nov 25, 2022
Apache Solr is an enterprise search platform written in Java and using Apache Lucene.

Apache Solr is an enterprise search platform written in Java and using Apache Lucene. Major features include full-text search, index replication and sharding, and result faceting and highlighting.

The Apache Software Foundation 630 Dec 28, 2022
Apache Lucene is a high-performance, full featured text search engine library written in Java.

Apache Lucene is a high-performance, full featured text search engine library written in Java.

The Apache Software Foundation 1.4k Jan 5, 2023
A proof-of-concept serverless full-text search solution built with Apache Lucene and Quarkus framework.

Lucene Serverless This project demonstrates a proof-of-concept serverless full-text search solution built with Apache Lucene and Quarkus framework. ✔️

Arseny Yankovsky 38 Oct 29, 2022
A simple fast search engine written in java with the help of the Collection API which takes in multiple queries and outputs results accordingly.

A simple fast search engine written in java with the help of the Collection API which takes in multiple queries and outputs results accordingly.

Adnan Hossain 6 Oct 24, 2022
Path Finding Visualizer for Breadth first search, Depth first search, Best first search and A* search made with java swing

Path-Finding-Visualizer Purpose This is a tool to visualize search algorithms Algorithms featured Breadth First Search Deapth First Search Gready Best

Leonard 11 Oct 20, 2022
Source code of APK-Explorer-Editor (AEE), an open-source tool to explore the contents of an installed APK!

APK Explorer & Editor (AEE) APK Explorer & Editor, an open-source tool to explore the contents of an installed APK, is strictly made with an aim to in

APK Explorer & Editor 271 Jan 8, 2023