What you need before you start

Jellyfin is a free media server that runs on Kali Linux and lets you organize and stream your own video, music, and photo files from a single machine to other devices on your network. Before you install it, you need Kali Linux already running on your machine, at least 2 GB of RAM, and about 500 MB of disk space for the application itself (plus whatever space your media library will need). You also need to be comfortable opening a terminal and running commands as the root user, since Kali defaults to root access.

Jellyfin works best when your Kali machine stays on most of the time, since it acts as the server that other devices connect to. If you plan to shut down your machine frequently, your media won't be available to stream. You'll also need to know your machine's IP address on your local network — you can find this by running ip addr in the terminal and looking for an address that starts with 192.168 or 10.0.

Key Takeaways

  • Jellyfin installs from the official repository using apt, which is faster and more reliable than downloading from a website.
  • After installation, you access Jellyfin by opening a web browser and typing your machine's IP address followed by :8096.
  • The first time you open Jellyfin, you create an admin account and then add folders where your media files are stored.
  • Jellyfin scans your media folders automatically and builds a library that other devices can browse and play from.
  • If Jellyfin doesn't start after installation, checking the service status with systemctl tells you whether it's running or what went wrong.

Adding the Jellyfin repository and installing the package

Jellyfin publishes its own software repository, which means you can install it directly through apt instead of downloading files manually. Open a terminal and add the repository key first by running:

curl https://repo.jellyfin.org/jellyfin_team.gpg.key | apt-key add -

This downloads the security key that verifies the software comes from Jellyfin's official source. Next, add the repository itself by running:

echo "deb [arch=amd64] https://repo.jellyfin.org/debian bullseye main" | tee /etc/apt/sources.list.d/jellyfin.list

This tells your system where to find Jellyfin packages. Now update your package list so apt knows about the new repository:

apt update

Once that finishes, install Jellyfin itself:

apt install jellyfin

Apt will show you how much disk space the installation needs and ask you to confirm. Type y and press Enter. The installation takes a few minutes depending on your internet speed.

Starting Jellyfin and accessing it from a browser

After installation completes, start the Jellyfin service by running:

systemctl start jellyfin

Then enable it to start automatically whenever your machine boots:

systemctl enable jellyfin

Wait about 10 seconds for Jellyfin to fully start up. Now open a web browser on any device connected to your network — it can be the same Kali machine or a different computer, phone, or tablet. In the address bar, type your Kali machine's IP address followed by :8096, like 192.168.1.50:8096. You should see the Jellyfin welcome screen.

If the page doesn't load, check that Jellyfin is actually running by typing:

systemctl status jellyfin

If the status shows "inactive", the service didn't start. Run systemctl start jellyfin again and wait longer before trying the browser. If it shows "failed", there's a configuration problem — check the logs with journalctl -u jellyfin -n 20 to see what went wrong.

Creating your admin account and adding media folders

The first time you access Jellyfin, you'll see a setup wizard. Create an admin account by entering a username and password — this is the account you'll use to manage your media library and add other users later. Write down the password somewhere safe, since you'll need it if you ever need to change settings.

After you create the admin account, Jellyfin asks you to add media libraries. A library is a folder on your Kali machine that contains your media files. Click "Add Media Library" and choose what type of content it will hold — Movies, TV Shows, Music, or Photos. Then click the folder icon and navigate to the folder where your files are stored.

For example, if you have movies in a folder called /home/user/Videos/Movies, navigate there and select it. Jellyfin will scan that folder and all subfolders for media files. You can add as many libraries as you want, pointing to different folders for different types of content. After you add each library, Jellyfin starts scanning automatically — this can take anywhere from a few seconds to several hours depending on how many files you have.

Checking scan progress and troubleshooting missing files

While Jellyfin scans your media, you can watch the progress in the dashboard. Click the menu icon (three horizontal lines) and select "Dashboard", then look for the library name under "Libraries". It will show how many items it has found so far. Scanning happens in the background, so you can use Jellyfin while it works.

If Jellyfin finishes scanning but some of your files don't appear in the library, the most common reason is that the files are in a format Jellyfin doesn't recognize or can't read. Jellyfin supports most common video formats like MP4, MKV, and AVI, and audio formats like MP3, FLAC, and AAC. If you have files in unusual formats, you may need to convert them first using a tool like FFmpeg.

Another reason files might not appear is that Jellyfin doesn't have permission to read the folder. If you stored media in a folder that only your user account can access, Jellyfin (which runs as the jellyfin system user) can't read it. To fix this, change the folder permissions by running:

chmod -R 755 /path/to/your/media/folder

Replace /path/to/your/media/folder with the actual path. Then tell Jellyfin to scan again by going to Dashboard, clicking the library name, and selecting "Scan Library".

Connecting other devices to your Jellyfin server

Once your library is scanned and populated, you can access it from other devices on your network. On a phone or tablet, download the official Jellyfin app from the Google Play Store (Android) or Apple App Store (iOS). On a computer, just open a web browser and type the same address you used before.

When you open Jellyfin on a new device, it will ask for the server address. Type your Kali machine's IP address and port — for example, 192.168.1.50:8096. Then log in with the admin account you created, or create a separate user account for that device if you want to keep viewing history separate.

Jellyfin streams your media over your local network, so playback speed depends on your network connection. If you're on the same WiFi network as your Kali machine, streaming should be smooth. If a device is far from your router or on a weak signal, you might see buffering. Moving closer to the router or using a wired connection on the Kali machine itself usually fixes this.

Keeping Jellyfin running and updated

Since Jellyfin runs as a system service, it will start automatically whenever your Kali machine boots. You don't need to do anything to keep it running. If you ever need to stop it — for example, to do maintenance — run:

systemctl stop jellyfin

To restart it after stopping:

systemctl restart jellyfin

To check if it's currently running:

systemctl status jellyfin

When Jellyfin updates are released, they'll show up in your regular apt updates. Run apt update followed by apt upgrade to install them. Jellyfin will restart automatically after an upgrade, so your library will be briefly unavailable to other devices, but no data is lost.

Frequently Asked Questions

Can I access my Jellyfin library from outside my home network?

Yes, but it requires additional setup beyond a basic installation. You can use a reverse proxy, port forwarding, or a VPN to access Jellyfin remotely. These methods have security trade-offs — port forwarding exposes your server to the internet, while a VPN is more secure but slower. The Jellyfin documentation covers these options in detail if you decide to set it up.

What happens if I add new media files to a folder after Jellyfin has scanned it?

Jellyfin doesn't automatically detect new files. You need to manually trigger a rescan by going to Dashboard, clicking the library name, and selecting "Scan Library". This takes a few seconds to a few minutes depending on how many files are in the folder.

Can I run Jellyfin on a Kali machine that's also used for other work?

Yes. Jellyfin runs as a background service and uses minimal resources when nobody is streaming. It will only use significant CPU and network bandwidth when devices are actively playing media. You can use your Kali machine normally while Jellyfin runs.

What should I do if Jellyfin won't start after installation?

Run systemctl status jellyfin to see if there's an error message. If it shows "failed", check the detailed logs with journalctl -u jellyfin -n 50 to see what went wrong. Common issues are missing dependencies or permission problems. The error message usually tells you exactly what to fix.

Can I use an external hard drive to store my media instead of the Kali machine's internal drive?

Yes. Connect the external drive, mount it to a folder on your Kali machine, and then add that folder as a Jellyfin library. Make sure the external drive is formatted in a filesystem that Linux can read, like ext4 or NTFS. The drive needs to stay connected whenever you want to stream media.