
The old phone in the drawer has more RAM than most home servers people ran in 2015. Termux can compile the Jellyfin server binary directly now, no Debian layer needed, and a mid-range ARM64 handset happily direct-plays one or two streams while sipping battery. That is the shape of the setup we walked through this week: a spare Pixel 4a running Jellyfin as a real home media server, feeding a TV, a laptop, and a phone across the house.
The catch is that “Termux plus Jellyfin” is only the middle third of the stack. To get a working server you need to keep the phone awake, mount cloud or NAS storage, and expose the port safely to a browser on the couch. These eight Android apps stitch the whole thing together. All are on the Play Store, most are on F-Droid too, and the total install cost is zero.
What to look for in a Jellyfin-on-Android stack
- A Linux userland or native package that runs the server binary without root.
- Storage tools that mount cloud or NAS content into the same filesystem.
- A wake lock so the phone does not deep-sleep between plays.
- A boot hook so the server restarts after a reboot or a power blip.
- Remote access without opening a hole in the home router.
- A client app on the TV or phone that respects hardware transcoding limits.
Quick comparison
| App | Best for | Platforms | Free plan | Starting price | Rating |
|---|---|---|---|---|---|
| Termux | The server itself | Android | Full free, open-source | Free | 4.4 on Play Store |
| Termux:API | Battery and sensor hooks | Android | Full free, open-source | Free | 4.4 on Play Store |
| Termux:Boot | Auto-restart after reboot | Android | Full free, open-source | Free | 4.3 on F-Droid |
| Rclone | Mount cloud storage | Android, Windows, macOS, Linux | Full free, open-source | Free | 4.5 on Play Store |
| Jellyfin | Client on any TV or phone | Android, iOS, TVs, PC | Full free, open-source | Free | 4.5 on Play Store |
| Tailscale | Remote access without port-forwarding | Android, iOS, Windows, macOS, Linux | Free personal tier | From free | 4.7 on Play Store |
| KDE Connect | LAN control from a laptop | Android, PC | Full free, open-source | Free | 4.6 on Play Store |
| Wake Lock | Keep the CPU awake for the server | Android | Free with ads or paid | Around $2.99 for the paid version | 4.5 on Play Store |
The apps
1. Termux, best as the server host
Termux is the reason this whole setup exists. It ships a real Linux userland on Android with apt and pkg, and the community repo now packages a native jellyfin-server build. Three commands set up the server. A wake lock keeps it running. The web UI answers at localhost:8096 in Chrome the second the daemon starts.
Where it falls short: The Play Store version has been frozen since 2020. For current package updates you need the F-Droid or GitHub build.
Pricing:
- Free: Full app, open-source.
- Paid: None.
Platforms: Android.
Bottom line: The one non-negotiable install. Get the F-Droid build, not the Play Store one.
2. Termux:API, best for battery and sensor hooks
Termux:API exposes Android system calls to Termux scripts. A short shell one-liner reads the battery percentage, sends a notification when Jellyfin transcoding starts, or triggers a script if the phone unplugs from power. Useful glue when the server phone is meant to auto-pause if it drops off charge.
Where it falls short: Requires the matching Termux install from the same source (all Play Store, or all F-Droid). Mixing sources fails silently.
Pricing:
- Free: Full app, open-source.
- Paid: None.
Platforms: Android.
Bottom line: Skip only if the setup is meant to be fire-and-forget with no automation.
3. Termux:Boot, best for auto-restart
Termux:Boot runs scripts on device boot, which is how the Jellyfin server survives a router reboot at 5am. Drop a ~/.termux/boot/start-jellyfin script in place and the daemon comes back with the phone.
Where it falls short: F-Droid only, since Google removed the app from Play in 2022 over background-execution policy changes.
Pricing:
- Free: Full app, open-source.
- Paid: None.
Platforms: Android.
Bottom line: Get it once, forget it exists.
4. Rclone, best for mounting cloud storage
Rclone on Android supports over 70 cloud providers and can mount a remote bucket into the same filesystem Termux sees. That means Jellyfin can point at /storage/emulated/0/Movies and half of that path can actually be sitting in Backblaze B2 or a home NAS behind Tailscale.
Where it falls short: Performance depends heavily on the source. Direct-play works, transcoding across an rclone mount from a slow provider will stutter.
Pricing:
- Free: Full app, open-source.
- Paid: None.
Platforms: Android, Windows, macOS, Linux.
Bottom line: The bridge between the phone’s storage and everything else you own.
5. Jellyfin, best as the client anywhere
Jellyfin on Android is the same client used against any Jellyfin server. Point it at the phone-hosted server over LAN or Tailscale and it works exactly as it would against a NAS install. Direct-play works on most codecs, and the app respects Chromecast and Android TV out of the box.
Where it falls short: Hardware-accelerated transcoding on the server side needs the right FFmpeg build. The default Termux package works but is slower than an x86 install.
Pricing:
- Free: Full app, open-source.
- Paid: None.
Platforms: Android, iOS, Android TV, Fire TV, Samsung Tizen, LG webOS.
Bottom line: The default client. Use it everywhere the server reaches.
6. Tailscale, best for remote access without a port
Tailscale turns every device in the account into a peer on a private mesh network. No port-forwarding, no dynamic DNS, no exposing the phone’s server to the open internet. The Android client sits in the notification bar and connects the moment cellular comes back.
Where it falls short: Free tier caps at 100 devices and 3 users, which is fine for a household. Anything bigger needs a paid plan.
Pricing:
- Free: Personal tier for up to 3 users.
- Paid: Premium plans from around $6 per user per month.
Platforms: Android, iOS, Windows, macOS, Linux, iOS.
Bottom line: The safest way to hit the server from outside the house.
7. KDE Connect, best for LAN control from a laptop
KDE Connect pairs the server phone with a laptop over local WiFi. That lets you send URLs and text between devices, run remote shell commands, and use the phone as a touchpad if the couch setup calls for it. Pair it with Termux for browser-free SSH.
Where it falls short: Both machines have to be on the same LAN. Cross-network use needs a VPN or Tailscale.
Pricing:
- Free: Full app, open-source.
- Paid: None.
Platforms: Android, Windows, macOS, Linux.
Bottom line: Nice-to-have when the couch is the office too.
8. Wake Lock, best for keeping the CPU awake
Wake Lock stops Android from suspending background processes when the screen sleeps. A one-tap toggle keeps Termux running when the phone is docked. The paid version has no ads and adds a persistent notification tile.
Where it falls short: The free version shows banner ads. Some Android skins (older MIUI, ColorOS) ignore wake locks aggressively.
Pricing:
- Free: Basic wake-lock toggle with ads.
- Paid: Around $2.99, one-time.
Platforms: Android.
Bottom line: The final layer that keeps Jellyfin responding when nobody is watching.
How to pick the right one
Install Termux (from F-Droid), Termux:API, Termux:Boot, Rclone, and Jellyfin first. That is the working core. Add Tailscale the moment anyone in the household wants to stream from outside the house. Add KDE Connect if you already sit next to the server with a laptop. Add Wake Lock if the phone runs a stock Android that suspends aggressively.
Skip the whole exercise if the household already runs a Raspberry Pi 5, a NAS, or a mini PC with Jellyfin installed. This is a “old phone in the drawer” recipe, not a first-time home-server plan.
FAQ
Can an old Android phone really run a Jellyfin server? Yes, on ARM64 devices with 3GB of RAM or more. A Pixel 4a or a Galaxy S9 direct-plays one to two 1080p streams simultaneously without breaking a sweat.
Do I still need a computer if I run Jellyfin on my phone? No. Termux hosts the server binary end-to-end. The client can be any Jellyfin app, including a browser.
Is Termux on the Play Store safe to use? The Play Store build has been frozen since 2020 and misses several years of package fixes. Use the F-Droid or GitHub build instead.
Can I stream from my phone-hosted Jellyfin outside my home? Yes, either through Tailscale (recommended, no ports opened) or a proper reverse proxy on a router. Never expose the raw port to the open internet.
Does hardware transcoding work on Android? Software transcoding always works. Hardware transcoding depends on the Termux FFmpeg build and the SoC. In practice, aim for direct-play compatibility on the client side to avoid it.