ibaz/paparats-indexer

By ibaz

Updated 2 days ago

Automated repo indexer for Paparats MCP - clones, indexes, and keeps code search fresh on a schedule

Image
Integration & delivery
Developer tools
0

9.8K

ibaz/paparats-indexer repository overview

paparats-indexer

Automated repo indexer for Paparats MCP. Clones Git repositories, indexes code for semantic search, and keeps your search index fresh on a configurable schedule.

Part of the Paparats semantic code search stack. Designed for server/production deployments where you want headless, scheduled indexing without manual CLI runs.

What It Does

  • Clones repos from GitHub (public or private with token)
  • Indexes code using AST-aware chunking + Jina Code Embeddings via Ollama
  • Runs on a schedule via cron (default: every 6 hours)
  • HTTP trigger for on-demand reindexing
  • Health endpoint for monitoring

Quick Start

Used as part of the full Paparats server stack:

npm install -g @paparats/cli
paparats install --mode server --repos org/repo1,org/repo2

Or run directly with Docker Compose:

services:
  indexer:
    image: ibaz/paparats-indexer
    environment:
      PAPARATS_URL: http://paparats:9876
      REPOS: org/repo1,org/repo2
      CRON: "0 */6 * * *"
      # GITHUB_TOKEN: ghp_xxx  # for private repos
    volumes:
      - indexer_repos:/data/repos
    depends_on:
      - paparats
      - ollama
      - qdrant

  paparats:
    image: ibaz/paparats-server
    environment:
      OLLAMA_URL: http://ollama:11434
    ports:
      - "9876:9876"

  ollama:
    image: ibaz/paparats-ollama

  qdrant:
    image: qdrant/qdrant
    ports:
      - "6333:6333"

volumes:
  indexer_repos:

Environment Variables

VariableDescriptionDefault
PAPARATS_URLPaparats server URLhttp://paparats:9876
REPOSComma-separated repos (e.g. org/repo1,org/repo2)Required
GITHUB_TOKENGitHub token for private reposOptional
CRONCron expression for index schedule0 */6 * * *
REPOS_DIRDirectory for cloned repos/data/repos

HTTP API

Trigger reindex:

# Reindex all repos
curl -X POST http://localhost:9877/trigger

# Reindex specific repos
curl -X POST http://localhost:9877/trigger \
  -H 'Content-Type: application/json' \
  -d '{"repos": ["org/repo1"]}'

Health check:

curl http://localhost:9877/health

How It Works

  1. On startup and on each cron tick, the indexer iterates over configured repos
  2. For each repo: clones (first run) or pulls latest changes via simple-git
  3. Reads .paparats.yml from the repo root for indexing config
  4. Calls the Paparats server indexing API to process files
  5. Files go through AST chunking, symbol extraction, embedding, and Qdrant storage

Use Cases

  • Team server - shared semantic search across all team repos
  • CI/CD integration - trigger reindex on push via HTTP API
  • Support bots - keep code knowledge fresh for product support agents
  • Multi-repo workspaces - index backend + frontend + infra repos together

Tags

  • latest - most recent stable build
  • x.y.z - version-pinned releases (e.g., 0.2.2)

License

MIT - github.com/bkbhub/paparats-mcp

Tag summary

Content type

Image

Digest

sha256:219f9daf9

Size

89.5 MB

Last updated

2 days ago

docker pull ibaz/paparats-indexer