Skip to content

Getting Started

  1. Check prerequisites

  2. Install dependencies

    Clone the repository and install dependencies:

    Terminal window
    bun install
  3. Configure your indexes

    Copy the example config and edit it with your search engine details:

    Terminal window
    cp config.example.yaml config.yaml

    A minimal config looks like this:

    port: 3000
    indexes:
    my_index:
    engine: elasticsearch
    host: https://localhost:9200
    apiKey: ${ES_API_KEY}
    indexName: my_es_index

    Each key under indexes becomes a URL handle — the config above creates endpoints at /my_index/search, /my_index/autocomplete, etc.

    See the Configuration guide for the full reference.

  4. Start the server

    Terminal window
    # Production
    bun run start
    # Development (auto-reload on changes)
    bun run dev
  5. Verify it’s working

    Check the health endpoint:

    Terminal window
    curl http://localhost:3000/health
    # {"status":"ok","cache":"disabled"}

    List configured indexes:

    Terminal window
    curl http://localhost:3000/indexes
    # {"indexes":[{"handle":"my_index","engine":"elasticsearch"}]}

    Run a search:

    Terminal window
    curl "http://localhost:3000/my_index/search?q=hello"

    You can also browse the interactive API docs at http://localhost:3000/openapi.