# JellySearch

> Open-source, self-hosted search proxy that answers Jellyfin client queries from a Meilisearch index, cutting search time to roughly 1-150 ms.

- **Category:** [Media Server](https://selfhost.directory/media-server)
- **Licence:** mit
- **Source model:** Open source
- **Latest version:** 1.0.0
- **Author:** DomiStyle
- **Platforms:** Docker Compose
- **Ports:** 5000 (HTTP port the JellySearch proxy listens on (backend target for the reverse proxy rule))
- **Requires:** Meilisearch, Jellyfin
- **Tags:** Nginx, Media Server, Full Text Search, Meilisearch, Jellyfin, Typo Tolerance, Reverse Proxy, Traefik, Docker

## Docker images

- [`domistyle/jellysearch`](https://hub.docker.com/r/domistyle/jellysearch)

## What is JellySearch?

JellySearch is a proxy layer that makes library search on a Jellyfin media server much faster. It builds a Meilisearch index from the Jellyfin SQLite database, refreshes it on a cron schedule, and a reverse proxy routes any client request carrying the searchTerm query argument to JellySearch instead of Jellyfin; the proxy then looks the query up in the index and forwards the found items on to Jellyfin. Typo-ridden and multi-field queries still match, and on a large library per-request search time falls from roughly two seconds to about 1-150 milliseconds. Common clients such as the web client, Jellyfin for Android and Android TV, Finamp, Findroid, Delfin and Gelli work; genre searches are simply passed through because they are not supported yet. Deployment is an extra docker compose service using the domistyle/jellysearch image next to a Meilisearch container, with the Jellyfin config directory mounted read-only and routing rules for Traefik 3.0+, nginx or Nginx Proxy Manager. Note the search results are not filtered by user permissions, so entries from restricted libraries can be returned, and the maintainer now recommends switching to the official Meilisearch Jellyfin plugin. Running it outside Docker is possible but undocumented.

## Should you self-host JellySearch?

JellySearch scores **50/100** on selfhost.directory ([how scoring works](https://selfhost.directory/scoring)) and ranks **#65 of 119** in [Media Server](https://selfhost.directory/media-server).

There was no stable release in the past 12 months, so check the repository's recent activity before you rely on it.

Setup is moderate: expect some configuration beyond a single command. An official Docker image is available. It is mit-licensed.

Its closest alternative on selfhost.directory is [Jellyfin](https://selfhost.directory/project/jellyfin) (88/100, 59 286 stars). It scores higher overall, so compare the two before you pick. [See JellySearch vs Jellyfin side by side.](https://selfhost.directory/compare/jellyfin-vs-jellysearch)

## Features

- Client-transparent via reverse proxy
- Full-text search proxy
- Genre search (✗ not supported)
- Multi-field search
- Per-user permission filtering (✗ not supported)
- Scheduled reindexing
- Typo-tolerant search

## How to install JellySearch

### Install JellySearch with Docker Compose

Requirements: Jellyfin running inside of Docker, Jellyfin running behind a reverse proxy

Environment variables:

```
JELLYFIN_URL, JELLYFIN_CONFIG_DIR, MEILI_URL, MEILI_MASTER_KEY, INDEX_CRON
```

```
  jellysearch:
    image: domistyle/jellysearch
    restart: unless-stopped
    volumes:
      - config:/config:ro
    environment:
      MEILI_MASTER_KEY: "1234"
      INDEX_CRON: "0 0 0/2 ? * * *"
    labels:
      - traefik.enable=true
      - traefik.http.services.jellysearch.loadbalancer.server.port=5000

      - traefik.http.routers.jellysearch.rule=Host(`demo.jellyfin.org`) && (QueryRegexp(`searchTerm`, `(.*?)`) || QueryRegexp(`SearchTerm`, `(.*?)`))
  meilisearch:
    image: getmeili/meilisearch:v1.9
    restart: unless-stopped
    volumes:
      - meilisearch:/meili_data
    environment:
      MEILI_MASTER_KEY: "1234"
```

Note: The /config volume should point at the Jellyfin config directory (read-only is enough). Traefik 3.0 or higher is required since support for QueryRegexp is missing in Traefik 2.0.

## JellySearch alternatives

- [Jellyswarrm](https://selfhost.directory/project/jellyswarrm): Jellyswarrm is a self-hosted, open-source reverse proxy that merges multiple Jellyfin servers into one unified interface for browsing and playback. (compare: https://selfhost.directory/compare/jellysearch-vs-jellyswarrm)
- [OneSearch](https://selfhost.directory/project/onesearch): Self-hosted search engine for homelabs that indexes local files and provides quick full-text search from a browser. Runs in Docker with no cloud or telemetry. (compare: https://selfhost.directory/compare/jellysearch-vs-onesearch)
- [Jellyfin](https://selfhost.directory/project/jellyfin): Jellyfin is a self-hosted, open-source media server for streaming movies, shows, music, photos, books, and live TV to any device with no fees or tracking. (compare: https://selfhost.directory/compare/jellyfin-vs-jellysearch)
- [MeiliSearch](https://selfhost.directory/project/meilisearch): Self-hosted, open-source search engine with hybrid search (full-text + semantic), typo tolerance, filtering, faceting, and multi-tenancy. Runs via Docker or binary. (compare: https://selfhost.directory/compare/jellysearch-vs-meilisearch)
- [All-jellyfin-media-server](https://selfhost.directory/project/all-jellyfin-media-server): A Docker Compose stack that combines Jellyfin, the *arr automation apps, a request manager, torrent client, subtitle tool, and VPN into one self-hosted media server. (compare: https://selfhost.directory/compare/all-jellyfin-media-server-vs-jellysearch)
- [media-stack](https://selfhost.directory/project/media-stack): Self-hosted, open-source Docker Compose media stack bundling Jellyfin, Sonarr, Radarr, Prowlarr, qBittorrent, Seerr and optional AI-powered Recommendarr with Gluetun VPN. (compare: https://selfhost.directory/compare/jellysearch-vs-media-stack)
- [stremio-jellyfin-bridge](https://selfhost.directory/project/stremio-jellyfin-bridge): Self-hosted, open-source Stremio addon bridging Jellyfin library and serving custom subtitles by IMDb ID on your LAN with zero-config HTTPS. (compare: https://selfhost.directory/compare/jellysearch-vs-stremio-jellyfin-bridge)
- [uncompressed](https://selfhost.directory/project/uncompressed): Self-hosted Docker Compose reference for a media server — Jellyfin, *arr, qBittorrent in a Gluetun VPN namespace, Tailscale-only ingress via Traefik, auto-healing. (compare: https://selfhost.directory/compare/jellysearch-vs-uncompressed)

## More in Media Server

- [Jellyswarrm](https://selfhost.directory/project/jellyswarrm): Jellyswarrm is a self-hosted, open-source reverse proxy that merges multiple Jellyfin servers into one unified interface for browsing and playback.
- [jellysweep](https://selfhost.directory/project/jellysweep): Self-hosted cleanup tool for Jellyfin that removes old, unwatched media by analyzing stats and user requests, with disk-usage adaptive deletion.
- [Jitsi Video Bridge](https://selfhost.directory/project/jitsi-video-bridge): Jitsi Videobridge is an open-source, self-hosted WebRTC SFU that routes video for scalable multiparty conferencing.
- [K7](https://selfhost.directory/project/k7-2): A personal media server you host yourself for movies, shows, and music, with transcoding, federation, and native apps on every platform.
- [Karaoke Eternal](https://selfhost.directory/project/karaoke-eternal): Open-source karaoke system. Host your own karaoke parties where guests queue from phones via browser app. MP3+G/MP4 playback, dynamic queues, multiple rooms.
- [Kavita](https://selfhost.directory/project/kavita): Self-hosted, open-source reading server that organizes and serves your comics, manga, ebook and PDF collection with built-in readers, OPDS and OIDC multi-user logins.
- [Kima](https://selfhost.directory/project/kima-hub): Kima is a self-hosted, open-source music server for your own files, adding podcasts, audiobooks and vibe-based matching that maps your library in 3D.
- [kino-swipe](https://selfhost.directory/project/kino-swipe): A self-hosted web app that lets couples swipe through Plex or Jellyfin libraries together to pick a film, with offline caching and TMDB extras.
- [Kitana](https://selfhost.directory/project/kitana): Kitana is a self-hosted, open-source web frontend that exposes Plex plugin interfaces via Plex.TV authentication, making them manageable from mobile devices.
- [Kodi](https://selfhost.directory/project/kodi): Free open source media center software for multiple platforms. Native app replaces dedicated media players, manages local and networked libraries with metadata.
- [kometizarr](https://selfhost.directory/project/kometizarr): Self-hosted Docker tool that adds multi-source rating badges to Plex movie and TV posters, featuring automatic backups, collection management, and a live web dashboard.
- [Komga](https://selfhost.directory/project/komga): Komga is a self-hosted, open-source media server for comics, manga, and eBooks with responsive web UI, REST API, OPDS, Kobo/KOReader sync, and multi-user management.

## Links

- [Homepage](https://gitlab.com/DomiStyle/jellysearch)

---
Source: https://selfhost.directory/project/jellysearch