Skip to content

Instantly share code, notes, and snippets.

@sdshan8
Last active January 18, 2026 15:00
Show Gist options
  • Select an option

  • Save sdshan8/5dfcc9efbd2017d2d6feefd752f057ed to your computer and use it in GitHub Desktop.

Select an option

Save sdshan8/5dfcc9efbd2017d2d6feefd752f057ed to your computer and use it in GitHub Desktop.

Install Jellyfin on Termux [In Proot]

This guide shows two methods of installing Jellyfin on termux

Note: only tested on aarch64/arm64 Note: I am not updating it anymore as you can install Jellyfin directly in termux now, just install jellyfin-server package in termux, tho you might have issues the jellyfin's ffmpeg if so then use jellyfin --ffmpeg $(which ffmpeg) to run jellyfin instead

These steps are same for both methods:

  1. Update the repo
pkg update
  1. Install proot-distro and ffmpeg (ffmpeg is only required in Method 2)
pkg install proot-distro ffmpeg -y
  1. Install ubuntu and Login to it
proot-distro install ubuntu
proot-distro login ubuntu
  1. Update and upgrade the packages in ubuntu
apt update && apt upgrade -y
  1. .NET 7.0 workaround:
  • Use nano (or editor of your choice) to make a file in /etc/profile.d
nano /etc/profile.d/02-dotnet-fix.sh
  • Paste the following to set the value of DOTNET_GCHeapHardLimit to 1C0000000 (You might need to lower the value to get it to work):
export DOTNET_GCHeapHardLimit=1C0000000
  • Save and exit nano by pressing CTRL + x then y then enter
  • Make it executable
chmod +x /etc/profile.d/02-dotnet-fix.sh
  • Logout and log back into proot

Method 1:

  1. Install sudo curl and gnupg
apt install sudo curl gnupg -y
  1. Follow the step 2 to 6 in the official ubuntu installation guide for Jellyfin here

  2. Create a symbolic link for Jellyfin web client (as it's in the wrong folder)

ln -s /usr/share/jellyfin/web /usr/lib/jellyfin/bin/jellyfin-web
  1. Run Jellyfin
jellyfin
  • Note: if you get network related errors add --nonetchange parameter to jellyfin
  1. Give it a few minutes to finish startup then goto http://localhost:8096 to setup Jellyfin

Method 2:

  1. Install necessary packages (skip wget if you have it installed in termux, also replace 74 with the latest version of libicu)
apt install wget libicu74 libfontconfig1 ca-certificates -y
  1. Make a new folder in /opt by the name jellyfin and cd into it
mkdir /opt/jellyfin
cd /opt/jellyfin
  1. Download the latest generic linux build for your architecture from here with wget (make sure you download the correct architecture for you device)
wget https://repo.jellyfin.org/files/server/linux/latest-stable/arm64/jellyfin_10.10.6-arm64.tar.gz
  1. Extract it with tar
tar xvzf jellyfin_10.10.6-arm64.tar.gz
  1. Create four sub-directories for Jellyfin data
mkdir data cache config log
  1. Use nano to make a script to run Jellyfin
nano jellyfin.sh
  • Paste the following:
#!/bin/bash
JELLYFINDIR="/opt/jellyfin"

$JELLYFINDIR/jellyfin/jellyfin \
 -d $JELLYFINDIR/data \
 -C $JELLYFINDIR/cache \
 -c $JELLYFINDIR/config \
 -l $JELLYFINDIR/log \
 --ffmpeg /data/data/com.termux/files/usr/bin/ffmpeg
  • Note: if you get network related errors add --nonetchange parameter to jellyfin in the jellyfin.sh
  • Save and exit nano by pressing CTRL + x then y then enter
  1. Make it executable
chmod +x jellyfin.sh
  1. Run it
/opt/jellyfin/jellyfin.sh
  1. Give it a few minutes to finish startup then goto http://localhost:8096 to setup Jellyfin

Thanks to @vikoadi and @t-e-s-tweb for DOTNET_GCHeapHardLimit=1C0000000 and --nonetchange fix

#!/bin/bash
JELLYFINDIR="/opt/jellyfin"
$JELLYFINDIR/jellyfin/jellyfin \
-d $JELLYFINDIR/data \
-C $JELLYFINDIR/cache \
-c $JELLYFINDIR/config \
-l $JELLYFINDIR/log \
--ffmpeg /data/data/com.termux/files/usr/bin/ffmpeg
@Valienteuh
Copy link

If this guide didn't work for you, Try this :
https://gist.github.com/Valienteuh/2ad0fe58c3c9ecad50425b19478ab61d

@EduardoV-V
Copy link

Has someone else managed to activate hardware acceleration on this same setup? my phone can't transcode in real time sometimes so i tried setting up hardware accelleration, but cant make it work properly.

@Valienteuh
Copy link

no infortunately... in proot-distro, we can use ffmpeg only i think... idk
Transcoding really sucks man!!! even if i turn it off... it still does.

@EduardoV-V
Copy link

no infortunately... in proot-distro, we can use ffmpeg only i think... idk Transcoding really sucks man!!! even if i turn it off... it still does.

the only solution i found was reencoding all my videos to h264 for video and AAC for audio, but try reencoding 500gb of videos without losing your mind lmao

@t-e-s-tweb
Copy link

no infortunately... in proot-distro, we can use ffmpeg only i think... idk Transcoding really sucks man!!! even if i turn it off... it still does.

I havnt tried it but there are guides on Reddit r/termux to get hardware acceleration working on termux. Someone with time should check out that and see if they can get HW acceleration working under those on jellyfin and report back.

People are running whole 3d games on there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment