Jellyfin Forum
JellySearch - Printable Version

+- Jellyfin Forum (https://forum.jellyfin.org)
+-- Forum: Development (https://forum.jellyfin.org/f-development)
+--- Forum: Plugin Development (https://forum.jellyfin.org/f-plugin-development)
+--- Thread: JellySearch (/t-jellysearch)

Pages: 1 2 3 4 5


RE: JellySearch - Zedniac - 2024-09-18

I've been trying to set this up on my Unraid server tonight but having trouble. By default it doesn't use Docker Compose but instead WebUI that lets you set all the Docker variables/paths/ports etc and as far as I can tell I've set it up according to the instructions. Jellysearch can find the SQL file from the Jellyfin folder just fine. Per the Jellysearch and Meilisearch logs, those two can talk to each other - Jellysearch indexes, then Meilisearch does. My Jellyfin is also set up in and accessible through NPM. I have the custom location set up per the Gitlab docs, including setting proxy_pass to the actual IP and port of my Jellysearch container.

However, when I search in Jellyfin, no results are returned. When searching, nothing happens in the Jellysearch log either. (I'm not sure whether Jellysearch returns anything in the log when receiving a query, so I can't tell if the query isn't getting to Jellysearch, or if Jellysearch can't return it to me.)

I'm not real experienced with reverse proxy and the like so I'm guessing it's something I did wrong, but so far I can't figure out what it is. Any ideas? If more info is needed to determine what's going wrong just let me know.


RE: JellySearch - Zedniac - 2024-09-18

Well, disregard the above I guess. I took a break to get some sleep and when I came back to this it was working lol. My guess is that it had never finished indexing or something since I had kept restarting Jellysearch as I made changes.

So far it works great, much faster than default search. The only issue I'm having is that Finamp on my iPhone can't search for Artists - it can search Albums and Tracks, but when I search Artists it says "No items found - the list is currently empty." Jellysearch logs show "No hits, not proxying" when searching this way. Searching in the Jellyfin WebUI does return Artists results, however. Since Finamp is a separate app this may not be Domi's purview, but thought I'd mention it in case there was any known issue or a fix.

Regardless, the search is much faster overall, which was my main concern with Jellyfin as a new user, so thanks for creating this!


RE: JellySearch - Hectik - 2024-09-30

Hey thanks for your work on this! I'm trying to get it to work but get the following error:

Code:
      Content root path: /app
fail: JellySearch.Jobs.IndexJob[0]
      SQLite Error 14: 'unable to open database file'.
fail: JellySearch.Jobs.IndexJob[0]
        at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
        at Microsoft.Data.Sqlite.SqliteConnectionInternal..ctor(SqliteConnectionStringBuilder connectionOptions, SqliteConnectionPool pool)
        at Microsoft.Data.Sqlite.SqliteConnectionPool.GetConnection()
        at Microsoft.Data.Sqlite.SqliteConnectionFactory.GetConnection(SqliteConnection outerConnection)
        at Microsoft.Data.Sqlite.SqliteConnection.Open()
        at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancellationToken)
      --- End of stack trace from previous location ---
        at JellySearch.Jobs.IndexJob.Execute(IJobExecutionContext context) in /builds/DomiStyle/jellysearch/src/JellySearch/Jobs/IndexJob.cs:line 57
info: JellySearch.Controllers.SearchController[0]
      No hits, not proxying

Should the variable JELLYFIN_CONFIG_DIR be pointing to the directory where 'jellyfin.db' is? Right now it points to '/config' but 'jellyfin.db' is at '/config/data/data/'

Or maybe something else?


RE: JellySearch - Hectik - 2024-10-02

Any chance someone could point me in the right direction to get this working?


RE: JellySearch - TheDreadPirate - 2024-10-03

Is jellysearch able to read jellyfin's DB file?

Code:
fail: JellySearch.Jobs.IndexJob[0]
      SQLite Error 14: 'unable to open database file'.

I'm assuming it would need sufficient permissions to read it.


RE: JellySearch - dontcryforme - 2024-10-03

Change JELLYFIN_CONFIG_DIR to point to '/config/data' instead of '/config'


RE: JellySearch - Hectik - 2024-10-05

(2024-10-03, 12:25 AM)TheDreadPirate Wrote: Is jellysearch able to read jellyfin's DB file?

Code:
fail: JellySearch.Jobs.IndexJob[0]
      SQLite Error 14: 'unable to open database file'.
I'm assuming it would need sufficient permissions to read it.

It should have at least read permissions as per the documentation. 

this is my docker compose 

Code:
  jellysearch:
    container_name: jellysearch
    image: domistyle/jellysearch
    restart: unless-stopped
    volumes:
      - ./jellyfin-folder/config:/config:ro
    environment:
      PUID: "XXXX"
      PGID: "XXXX"
      TZ: "Europe/London"
      MEILI_MASTER_KEY: "NO"
      INDEX_CRON: "0 0 0/2 ? * * *"
      JELLYFIN_URL: "https://domain.co.uk"
      MEILI_URL: "http://meilisearch:7700"
      JELLYFIN_CONFIG_DIR: "./jellyfin-folder/config"
    networks:
      - jellyfin-net
      - nginx-proxy-manager

  meilisearch:
    image: getmeili/meilisearch:v1.9
    container_name: meilisearch
    restart: unless-stopped
    volumes:
      - ./jellyfin-folder/custom/meilisearch:/meili_data
    environment:
      MEILI_MASTER_KEY: "NO"
      PUID: "XXXX"
      PGID: "XXXX"
      TZ: "Europe/London"
    networks:
      - jellyfin-net

  jellyfin:
    image: lscr.io/linuxserver/jellyfin:latest
    container_name: jellyfin
    volumes:
      - ./jellyfin-folder/config:/config
      - ./jellyfin-folder/www:/usr/share/jellyfin/web
    environment:
      - PUID=XXXX
      - PGID=XXXX
      - TZ=Europe/London
      - JELLYFIN_PublishedServerUrl=https://domain.co.uk
    restart: unless-stopped
    networks:
      - jellyfin-net
      - nginx-proxy-manager

I get the following from the jellysearch logs:

Code:
warn: Microsoft.AspNetCore.Hosting.Diagnostics[15]
      Overriding HTTP_PORTS '8080' and HTTPS_PORTS ''. Binding to values defined by URLS instead 'http://0.0.0.0:5000'.
info: JellySearch.Jobs.IndexJob[0]
      Indexing items...
info: Microsoft.Hosting.Lifetime[14]
      Now listening on: http://0.0.0.0:5000
info: Microsoft.Hosting.Lifetime[0]
      Application started. Press Ctrl+C to shut down.
info: Microsoft.Hosting.Lifetime[0]
      Hosting environment: Production
info: Microsoft.Hosting.Lifetime[0]
      Content root path: /app
fail: JellySearch.Jobs.IndexJob[0]
      SQLite Error 14: 'unable to open database file'.
fail: JellySearch.Jobs.IndexJob[0]
        at Microsoft.Data.Sqlite.SqliteException.ThrowExceptionForRC(Int32 rc, sqlite3 db)
        at Microsoft.Data.Sqlite.SqliteConnectionInternal..ctor(SqliteConnectionStringBuilder connectionOptions, SqliteConnectionPool pool)
        at Microsoft.Data.Sqlite.SqliteConnectionPool.GetConnection()
        at Microsoft.Data.Sqlite.SqliteConnectionFactory.GetConnection(SqliteConnection outerConnection)
        at Microsoft.Data.Sqlite.SqliteConnection.Open()
        at System.Data.Common.DbConnection.OpenAsync(CancellationToken cancellationToken)
      --- End of stack trace from previous location ---
        at JellySearch.Jobs.IndexJob.Execute(IJobExecutionContext context) in /builds/DomiStyle/jellysearch/src/JellySearch/Jobs/IndexJob.cs:line 57
info: JellySearch.Controllers.SearchController[0]
      No hits, not proxying
info: JellySearch.Controllers.SearchController[0]
      No hits, not proxying



RE: JellySearch - Hectik - 2024-10-05

(2024-10-03, 12:54 PM)dontcryforme Wrote: Change JELLYFIN_CONFIG_DIR to point to '/config/data' instead of '/config'

Hmm, tried that and got the same outcome.  Upside-down-face


RE: JellySearch - domi - 2024-10-06

(2024-10-05, 09:32 PM)Hectik Wrote:
(2024-10-03, 12:54 PM)dontcryforme Wrote: Change JELLYFIN_CONFIG_DIR to point to '/config/data' instead of '/config'

Hmm, tried that and got the same outcome.  Upside-down-face

I believe you are one folder too deep, the final path inside of the container for the database file should be /config/data/library.db.

If you remove the JELLYFIN_CONFIG_DIR environment variable and mount ./jellyfin-folder directly to /config it should work.
./jellyfin-folder should contain a data folder.


RE: JellySearch - jennystreaming - 2024-10-06

(2024-08-27, 07:25 PM)Topomov Wrote: It works so beautiful well! Thank you for everything!!

As for Synology users; I wrote the following script that should be put in the task scheduler (have it run at boot as root)

Code:
# Define the search term for grep and the words for modification
search_word_1="jellyfin.MYHOSTNAME.com"
search_word_2="location \/ {"
insert_text="\n if (\$arg_searchTerm) { \n        proxy_pass http:\/\/localhost:MYJELLYSEARCHPORT;\n        break;\n    }\n"

# Search for the first file containing the string in grep_term in the specified directory
file=$(grep -Rnw '/usr/local/etc/nginx/sites-available/' -e "$search_word_1" | awk -F: 'NR==1{print $1}')

# Check if a file was found
if [ -z "$file" ]; then
  echo "No file containing '$grep_term' found."
  exit 1
fi

# Verify that both search_word_1 and search_word_2 exist in the file
if grep -q "$search_word_1" "$file" && grep -q "$search_word_2" "$file"; then
  # Use sed with variables to find the first occurrence of search_word_2 after search_word_1 and insert insert_text after search_word_2
  sed -i "/$search_word_1/,/$search_word_2/{s/\($search_word_2\)/\1 $insert_text/;}" "$file"
  echo "Modification applied to $file"
  nginx -s reload
else
  echo "The file $file does not contain both '$search_word_1' and '$search_word_2'"
fi

https://gitlab.com/DomiStyle/jellysearch#setting-up-jellysearch

How did the Docker Compose look for you running Nginx Proxy Manager? I see there are a lot of Traefik parameters in there. Do you have a template to share? Thank you very much.

(2024-10-06, 09:01 AM)domi Wrote:
(2024-10-05, 09:32 PM)Hectik Wrote:
(2024-10-03, 12:54 PM)dontcryforme Wrote: Change JELLYFIN_CONFIG_DIR to point to '/config/data' instead of '/config'

Hmm, tried that and got the same outcome.  Upside-down-face

I believe you are one folder too deep, the final path inside of the container for the database file should be /config/data/library.db.

If you remove the JELLYFIN_CONFIG_DIR environment variable and mount ./jellyfin-folder directly to /config it should work.
./jellyfin-folder should contain a data folder.

Sorry for the kind-of-double post, but I saw someone asking pretty much the same thing as me here: https://gitlab.com/DomiStyle/jellysearch/-/issues/9  - we know what to put in Nginx Proxy Manager, but what do we put and/or remove in the Docker Compose since it includes a lot of variables that mention Traefik? Thanks for creating JellySearch, it works great on my friends' servers, just me who is a little bit slow perhaps, haha