sercha-core

module
v0.3.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 1, 2026 License: Apache-2.0

README

Sercha

Self-hosted search across all your team's tools.

Documentation | Discord | Report Bug | Request Feature

GitHub Release License Go Report Card CI Discord

Sercha Demo

Sercha Core connects your team's data sources - GitHub, Google Drive, Notion, Confluence, and more - and provides unified search across all of them. Self-hosted, so your data stays on your infrastructure.

Features

  • Connectors - GitHub and LocalFS today, with 12+ more planned
  • BM25 search - Full-text search powered by OpenSearch
  • Semantic search - Vector search with pgvector and configurable embedding models
  • OAuth2 - Connect data sources securely, with JWT session management
  • REST API - Full OpenAPI spec with Swagger UI
  • Admin UI - Web interface for managing sources, connections, and search

Quick Start

Requires Docker and 4GB RAM.

git clone https://github.com/sercha-oss/sercha-core.git
cd sercha-core/examples/quickstart
docker compose --profile ui up -d

API available at http://localhost:8080, Admin UI at http://localhost:3000.

See the Quickstart Guide for the full walkthrough.

Development

cd examples/dev
docker compose up -d --build    # API at localhost:8080

cd ui
npm install && npm run dev      # UI at localhost:3000

See examples/dev/ and CONTRIBUTING.md for details.

Documentation

Contributing

See CONTRIBUTING.md for development setup and guidelines, and SECURITY.md for reporting vulnerabilities.

License

Apache 2.0 - see LICENSE.

Directories

Path Synopsis
cmd
sercha-core command
Package docs Code generated by swaggo/swag.
Package docs Code generated by swaggo/swag.
internal
adapters/driven/connectors
Package connectors provides process-level shared infrastructure for all external service connectors — token pooling, transport pooling, and the factory that composes them.
Package connectors provides process-level shared infrastructure for all external service connectors — token pooling, transport pooling, and the factory that composes them.
adapters/driven/pgvector/migrations
Package migrations holds the pgvector schema migrations as Go code so the embedding dimension (which must appear as a literal in the column type) can be read from PGVECTOR_DIMENSIONS at migrate-time rather than baked into a SQL file at compile-time.
Package migrations holds the pgvector schema migrations as Go code so the embedding dimension (which must appear as a literal in the column type) can be read from PGVECTOR_DIMENSIONS at migrate-time rather than baked into a SQL file at compile-time.
adapters/driven/pipeline/stages/chunking
Package chunking provides shared text-splitting helpers for use by both indexing and search-side stages.
Package chunking provides shared text-splitting helpers for use by both indexing and search-side stages.
adapters/driven/pipeline/stages/textfilter
Package textfilter provides shared heuristics for detecting non-text content (binary blobs, base64, compressed payloads) in indexable documents.
Package textfilter provides shared heuristics for detecting non-text content (binary blobs, base64, compressed payloads) in indexable documents.
adapters/driving/mcp/widgets
Package widgets wires MCP Apps (ext-apps) interactive UI into the Sercha MCP server.
Package widgets wires MCP Apps (ext-apps) interactive UI into the Sercha MCP server.
assets
Package assets holds binary assets that multiple adapters embed and serve.
Package assets holds binary assets that multiple adapters embed and serve.
Package swagger Code generated by swaggo/swag.
Package swagger Code generated by swaggo/swag.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL