14 September 2024

Setting up a Jellyfin media server

I wanted to install a media server to help manage my growing library. The top two options that I found are Plex and Jellyfin. I have used Plex in the past, but disliked when they started requiring an account so I went with Jellyfin.


Create the container

  • bash -c "$(wget -qLO - https://github.com/tteck/Proxmox/raw/main/ct/jellyfin.sh)"


Set Static IP and hostname

  • Proxmox -> jellyfin -> Network -> net0 -> Edit
    • set static ip
  • Restart the container
  • Proxmox -> jellyfin -> Console
    • ping 192.168.1.1
      • this ensures that the container will show up on Unifi's list of clients
  • Unifi -> Clients -> Select the jellyfin -> Settings
    • give it a memorable name
    • check "Fixed IP Address"
      • it should auto-populate with current IP
    • check "Local DNS Record"
      • jellyfin.home.arpa


Setup Jellyfin

  • Self signed SSL certificate:
    • https://jellyfin.org/docs/general/networking/
    • jellyfin -> Console
      • mkdir -p /home/jellyfin
      • cd /home/jellyfin
      • openssl req -x509 -days 3650 -newkey rsa:4096 -keyout ./privkey.pem -out cert.pem -nodes -subj '/CN=jellyfin.home.arpa'
        • -subj '/' can work if you can override ssl verification on the client, but Kodi doesn't have that option
        • -subj '/CN=localhost' was causing jellyfin to crash here are some keywords from the crash:
          • Error occurred during a cryptographic operation
          • MapOpenSsl30Code
      • openssl pkcs12 -export -out jellyfin.pfx -inkey privkey.pem -in cert.pem -passout pass:
      • chown -R jellyfin /home/jellyfin
      • chgrp -R jellyfin /home/jellyfin
  • http://jellyfin.home.arpa:8096
    • create user/pass
    • hamburger menu -> Dashboard -> Networking
      • Check "Enable HTTPS"
      • Check "Require HTTPS"
      • Custom SSL certificate path -> /home/jellyfin/jellyfin.pfx
      • Save
  • Restart the jellyfin container
  • Test the self-signed certificate
    • curl --cacert cert.pem https://jellyfin.home.arpa:8920
  • https://jellyfin.home.arpa:8920
    • hamburger menu -> Dashboard -> Users
      • Add User
      • Name
      • Password
      • Check "Enable access to all libraries"
    • hamburger menu -> Dashboard -> Plugin -> Catalog -> Kodi Sync Queue
      • Install
    • Restart jellyfin


Add to Kodi on Google TV

  • Have Kodi trust the self signed certificate
  • Enable adb (Android Debug Bridge)
    • Determine IP of the Google TV
      • Settings -> System -> About -> Status
    • Enable Developer mode
      • Settings -> System -> About -> Build Number -> Click 10 times or until developer mode is unlocked
    • Enable USB debugging (also enables remote debugging)
    • install adb onto a computer to be able to modify the Google TV remotely
      • sudo apt install android-tools-adb
  • Used adb to add new certs file to existing
    • adb pull /sdcard/Android/data/org.xbmc.kodi/files/.kodi/addons/script.module.certifi/lib/certifi/cacert.pem
    • cat cacert.pem cert.pem > updatedcacert.pem
    • adb push updatedcacert.pem /sdcard/Download/
    • echo -e '<advancedsettings version="1.0">\n<network>\n<catrustfile>special://masterprofile/updatedcacert.pem</catrustfile>\n</network>\n</advancedsettings>' >advancedsettings.xml
    • adb push advancedsettings.xml /sdcard/Download/
  • Have Kodi use the new certs
    • Google TV -> Settings -> Apps -> Kodi -> Permissions -> Files and Media -> Allow management of all files
    • Kodi -> Settings -> File Manager
      • Left Side
        • Add Source -> Browse -> External Storage -> Download -> OK
        • Open Download
      • Right Side
        • Profile directory
      • Long press the files one at a time in the Left pane and select copy
    • Restart Kodi
  • Install Jellyfin on Kodi
    • Kodi -> Settings -> File Manager -> Add Source
      • https://kodi.jellyfin.org
    • Kodi -> Settings -> AddOn Browser
      • Install from Repository -> Kodi Jellyfin Add-ons -> Video Add-ons
      • Select Jellyfin add-on and install
    • Cancel adding the server
    • Disable "Verifiy connection" -> OK
    • Restart Kodi
    • Select Manual server add (as auto does it by IP)
      • https://jellyfin.home.arpa:8920
      • sign in using user/pass
      • Playback -> Addon (default)
      • Choose which libraries you want to sync
        • click "All"
        • click "OK"
    • After Syncing is complete restart Kodi
    • Settings -> Add-ons -> My add-ons -> Video add-ons -> Jellyfin
      • Configure -> Sync -> Enable Kodi Sync Queue -> OK


Appendix

Sources

No comments:

Post a Comment