All setup guides

Set up web search

Karja's Web Search app needs a search backend. There's no shared default that works reliably, so it's bring-your-own - pick one of the two options below.

Brave Search API

Easiest. A free tier of about 1,000 queries a month. Sign-up needs a card (not charged for free usage). A couple of minutes to set up.

SearXNG (self-hosted)

Most private. A metasearch engine you run yourself. More setup, but no third-party key and no query limit - and it unlocks ad-free embedded video.

Option A - Brave Search API

1

Get a free API key

Go to brave.com/search/api, sign up, and choose the Free plan. Brave now asks for a card to verify your identity - it isn’t charged for free usage. The free tier gives $5 in credits every month, about 1,000 queries.

2

Copy your key

From the Brave API dashboard, copy your subscription token (the API key).

3

Paste it into Karja

In Karja, open Settings → Search, choose Brave Search API, paste your key, and click Test connection. When it says Working, you're done.

Note: with Brave, video results open in your browser. For ad-free video embedded inside Karja, use SearXNG below.

Option B - Self-hosted SearXNG

SearXNG is a free, open-source metasearch engine. Public instances almost always block the JSON API that Karja needs, so run your own - Docker is the easy path.

1

Run SearXNG with Docker

Follow the official Docker installation guide . The quickest start maps it to port 8888 and mounts a local config folder so you can edit settings (see the next step):

docker run -d --name searxng -p 8888:8080 \
  -v "$(pwd)/searxng:/etc/searxng" searxng/searxng

Your instance is then at http://localhost:8888.

2

Enable the JSON API

This is the step people miss: Karja reads results as JSON, which is off by default. SearXNG keeps its config at /etc/searxng/settings.yml inside the container - with the volume mount above, that's the settings.yml that appears in the searxng folder next to where you ran Docker (it's generated on first start), so you can edit it directly on your machine. Add json under search.formats:

search:
  formats:
    - html
    - json

Then restart the container so the change takes effect.

3

Point Karja at it

In Karja, open Settings → Search, choose SearXNG (self-hosted), enter your instance URL (e.g. http://localhost:8888), and click Test connection.

Good to know

  • One backend powers all of Web Search - web, news, images, and video alike. Set it once.
  • SearXNG must stay running (on your machine or a home server) for search to work in Karja.
  • Don't rely on a public SearXNG instance - they generally block the JSON API and will fail the connection test.

Brave Search and SearXNG are trademarks of their respective owners. Karja is not affiliated with, endorsed by, or sponsored by them.