Welcome to the definitive guide on converting an old Android smartphone into a powerful, automated media server! This project focuses on utilizing Termux to run a Linux environment, deploying Jellyfin for streaming, and establishing a robust automation pipeline using Sonarr (for TV shows), Radarr (for movies), and Prowlarr (for indexer management).
This setup is highly resource-efficient and perfectly suited for older Android devices, breathing new life into your retired hardware.
Before we start, ensure you have the following:
- An Old Android Device: Preferably with Android 8.0 or higher.
- F-Droid: Required for downloading the most updated version of Termux (do not use the Google Play Store version as it is outdated).
- Patience: Building a server out of a phone involves executing several commands and waiting for installations to finish.
Termux is an Android terminal emulator and Linux environment app that works directly with no rooting or setup required.
- Download and install F-Droid on your Android device.
- Search for Termux in F-Droid and install it.
- Open Termux and ensure your packages are up-to-date by running the following command:
pkg update && pkg upgrade -y- Explanation:
pkgis the package manager for Termux.updaterefreshes the list of available packages, whileupgradeinstalls the newer versions of installed packages. The-yflag automatically answers "yes" to any installation prompts, ensuring a smooth, unattended run.
Since Android has its own limitations, we install a lightweight Ubuntu environment using proot-distro to give us a proper Linux filesystem.
pkg install proot-distro -y- Explanation: This installs the
proot-distromanagement utility, allowing us to easily install and manage different Linux distributions on Android without needing root access.
Install the Ubuntu distribution:
proot-distro install ubuntu- Explanation: This command downloads and installs the Ubuntu filesystem within Termux.
Log in to the newly created Ubuntu environment:
proot-distro login ubuntu- Explanation: This switches your current session into the Ubuntu environment. All further commands will be executed as if you are running an Ubuntu server.
Once inside Ubuntu, we need to update our repositories and install some fundamental dependencies.
apt update && apt upgrade -y- Explanation:
aptis the package manager for Ubuntu. Similar to the Termux update, this refreshes the package list and upgrades existing packages inside your Ubuntu PRoot.
apt install curl wget gnupg2 software-properties-common nano -y- Explanation:
curl&wget: Tools to download files from the internet from the command line.gnupg2: Necessary for managing cryptographic keys (needed for adding official repositories).software-properties-common: Provides utilities to manage independent software vendor repositories.nano: A terminal-based text editor for editing configuration files.
Jellyfin is the open-source media streaming system.
- Add the Jellyfin GPG Key:
curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | apt-key add -- Explanation: This securely downloads the cryptographic key belonging to the Jellyfin team and adds it to your system so your Ubuntu environment trusts software downloaded from them.
- Add the Jellyfin Repository:
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/ubuntu $(lsb_release -c -s) main" | tee /etc/apt/sources.list.d/jellyfin.list- Explanation: This line dictates where Ubuntu can look to download Jellyfin. It dynamically fetches your device architecture (e.g., heavily likely
arm64for an Android phone) and your Ubuntu codename, outputting a proper repository reference file intosources.list.d.
- Install Jellyfin:
apt update && apt install jellyfin -y- Explanation: This refreshes your package list to include Jellyfin, then initiates the installation of the
jellyfinpackage itself.
The Arr software suite (Prowlarr, Sonarr, Radarr) is written in .NET Core. Thankfully, modern versions produce standalone binaries for ARM64 that we can simply extract and run.
apt install libicu-dev -y- Explanation: The .NET runtime requires
libicu(International Components for Unicode) natively to run properly on Ubuntu.
- Download Radarr ARM64 Binary:
wget -O radarr.tar.gz "https://radarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=arm64"- Explanation:
wgetfetches the direct download link for Radarr formatted specifically for Linux ARM64 systems. The-O radarr.tar.gzrenames the incoming file.
- Extract Radarr:
tar -xvzf radarr.tar.gz -C /opt/- Explanation:
tarextracts the downloaded archive.-xvzftells tar to eXtract, display files in Verbose mode, act on a Zipped (gzip) file, from the provided Filename.-C /opt/sets the destination folder to/opt/, which is conventional for optional add-on software.
(Repeat the download and extraction mechanism below for Sonarr & Prowlarr)
wget -O sonarr.tar.gz "https://services.sonarr.tv/v1/download/main/latest?version=4&os=linux&arch=arm64"
tar -xvzf sonarr.tar.gz -C /opt/wget -O prowlarr.tar.gz "https://prowlarr.servarr.com/v1/update/master/updatefile?os=linux&runtime=netcore&arch=arm64"
tar -xvzf prowlarr.tar.gz -C /opt/Now that all programs are installed, you need to initiate them! For simplicity, you can run these background processes using the terminal utility screen or simply running them as background jobs (&).
1. Start Jellyfin:
service jellyfin startAccess Jellyfin physically from your browser at: http://localhost:8096 (or replace localhost with your phone's IP address).
2. Start Radarr:
/opt/Radarr/Radarr -nobrowser &Access Radarr at: http://localhost:7878
3. Start Sonarr:
/opt/Sonarr/Sonarr -nobrowser &Access Sonarr at: http://localhost:8989
4. Start Prowlarr:
/opt/Prowlarr/Prowlarr -nobrowser &Access Prowlarr at: http://localhost:9696
(Explanation): Executing the binary file with -nobrowser stops the application from attempting to open a web browser internally. Adding an ampersand (&) at the very end tells Ubuntu to run this command stealthily in the background so you keep access to the current terminal prompt.
- Create your Jellyfin User Account via
http://[YOUR_PHONE_IP]:8096. - Connect Prowlarr to your Indexers (Torrent Trackers/Usenet).
- Connect Prowlarr to Sonarr and Radarr securely via Prowlarr's Apps configuration.
- Set up an Android Download Client on your phone space (like Transmission, Flud, or qBittorrent via termux-x11) and link it!
This project is licensed under the MIT License - see the LICENSE file for details.