Setting Up a Home Media Server with Ubuntu and Jellyfin
A home media server gives your household one place for films, television recordings, music, photographs, and personal videos. Instead of copying files between laptops, USB drives, and smart televisions, you can store everything on an Ubuntu machine and stream it across your local network through Jellyfin.
Jellyfin is a free, open-source media server with applications for Android, iOS, Android TV, Apple TV, Fire TV, web browsers, and many smart television platforms. It provides a familiar library interface while keeping your collection under your control. There are no subscription charges for the core software, and your media stays on your own hardware.
For an Australian household, the most important decisions involve storage, network performance, and power use. A small flat in Melbourne may favour a quiet mini PC, while a family home in Brisbane might have space for several hard drives. NBN upload speeds can also affect remote streaming, especially when the connection uses an entry-level plan or carrier-grade NAT.
This guide covers a practical Ubuntu Jellyfin setup for everyday users. It includes hardware selection, Ubuntu installation, media storage, network access, user accounts, playback settings, and the security measures needed before sharing the server with other devices.
Choosing Hardware And Storage
Jellyfin can run on an old desktop, a refurbished business PC, a modern mini PC, or a Raspberry Pi. The best choice depends on the number of simultaneous streams and whether your devices can play the stored files directly. Direct play requires little processing, while transcoding—converting video or audio during playback—can place a heavy load on the CPU.
A Raspberry Pi 5 is suitable for a modest music library, photographs, and a few direct-play video streams. It works best with wired Ethernet and USB 3 storage rather than a microSD card used as the main media disk. If you are starting with that platform, this Raspberry Pi Ubuntu guide covers the operating system installation process.
An Intel-based mini PC is often a stronger all-round option. Models with Intel Quick Sync graphics can help Jellyfin handle hardware-accelerated transcoding, and second-hand business systems are widely available through Australian computer refurbishers, Gumtree, and local marketplace listings. A small machine bought from Officeworks or a refurbished retailer may cost more than a bare Raspberry Pi setup, but it can offer simpler expansion and better performance.
Storage capacity should be planned around your media library rather than the server’s operating system. Ubuntu and Jellyfin need relatively little space, whereas high-bitrate Blu-ray files can occupy tens of gigabytes each. Use a dedicated internal hard drive, USB hard drive, or network-attached storage location, and keep a separate backup of irreplaceable photographs and home videos.
Installing Ubuntu And Preparing The Server
Ubuntu 24.04 LTS is a sensible foundation because it receives long-term security updates and has extensive documentation. Ubuntu Server uses fewer resources than the desktop edition, but Ubuntu Desktop can be easier for beginners who prefer a graphical file manager. Either edition can host Jellyfin reliably.
During installation, give the machine a fixed local address or create a DHCP reservation in your router. A stable address makes it easier to connect televisions and mobile applications later. If the server receives an address such as 192.168.1.50 today and a different one next week, saved connections may stop working.
After the first boot, update the system and install a few useful utilities:
sudo apt update
sudo apt full-upgrade
sudo apt install curl wget htop smartmontools
Create a dedicated directory for media and decide how the disk will be mounted. A common arrangement is /srv/media, with subdirectories such as Movies, Shows, Music, and Photos. Linux paths are case-sensitive, so consistent names help avoid confusing duplicates.
If you attach a new drive, identify it with lsblk before formatting anything. Formatting erases existing data, so check the device name carefully. Ext4 is a straightforward filesystem for an Ubuntu-only drive. For a disk that may also be connected to Windows or macOS, exFAT is more portable, though it offers fewer Linux-native features.
Installing Jellyfin And Building The Library
Jellyfin can be installed from its official Ubuntu-compatible repository. The repository method makes it easier to receive application updates through the normal package system:
curl https://repo.jellyfin.org/install-debuntu.sh | sudo bash
sudo apt install jellyfin
Once installed, open http://server-address:8096 in a browser on your home network. Replace server-address with the local IP address or hostname of the Ubuntu machine. The setup wizard asks you to create an administrator account, choose a display language, and add media libraries.
Add each library according to its content type. Point a Films library at /srv/media/Movies, a Television library at /srv/media/Shows, and a Music library at /srv/media/Music. Jellyfin uses folder names and file names to retrieve artwork and descriptions, so a consistent naming scheme produces much better results.
A useful film format is:
Movies/
└── The Castle (1997)/
└── The Castle (1997).mkv
Television programmes work well with season folders:
Shows/
└── Bluey/
└── Season 01/
├── Bluey - S01E01.mkv
└── Bluey - S01E02.mkv
Avoid storing unrelated files in the same folders. Subtitles can usually sit beside the video and use matching names, such as Film Name.en.srt. Jellyfin can download metadata from online services, but locally stored artwork and subtitles remain available even if an external provider changes its API or becomes unavailable.
Set correct ownership so the Jellyfin service can read the media. If the library is intended to be read-only by the server, that is preferable to giving it broad write access:
sudo chown -R jellyfin:jellyfin /srv/media
sudo find /srv/media -type d -exec chmod 755 {} \;
sudo find /srv/media -type f -exec chmod 644 {} \;
Use these commands only after confirming that Jellyfin should own the files. If another account manages the library, a shared group may be more appropriate.
Connecting Devices Across The Home
Wired Ethernet is the most dependable choice for the server and any fixed playback device. A television connected through Wi-Fi may work perfectly for compressed files but struggle with large 4K recordings, especially when the access point is separated by brick walls. Mesh Wi-Fi can improve coverage, but the connection between mesh nodes may still become a bottleneck.
Install the Jellyfin client on supported streaming devices, or use the web interface at http://server-address:8096. On an Android TV box, Apple TV, or Fire TV Stick, search for Jellyfin in the relevant app store and enter the server address when prompted. Phones and tablets can connect over Wi-Fi using the same local address.
Australian NBN connections are generally fast enough for local streaming, but remote access is a separate matter. Many plans advertise strong download speeds while providing much lower upload performance. Upload limits are especially noticeable when a family member streams from the server while someone else is using video calls or cloud backups. Keep remote video quality modest unless your connection has sufficient upstream bandwidth.
For local access, allow Jellyfin through Ubuntu’s firewall while leaving other services restricted:
sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw allow 8096/tcp
sudo ufw enable
Port 8096 is normally unencrypted HTTP, so it should not be exposed directly to the public internet. For access away from home, use a VPN such as Tailscale or WireGuard, or place Jellyfin behind a properly configured reverse proxy with HTTPS. Avoid forwarding random router ports simply because an online guide recommends it.
Managing Playback, Accounts And Reliability
The playback setting that matters most is direct play. When the television or streaming box understands the video container, codec, audio format, and subtitles, Jellyfin can send the original file without conversion. This uses less CPU and usually produces smoother playback. H.264 video with AAC or AC-3 audio remains widely compatible, while newer codecs may depend on the capabilities of the client device.
Transcoding is useful when a device cannot play the original file or when a remote connection is too slow. In the Jellyfin dashboard, enable hardware acceleration only after checking that the Ubuntu kernel, graphics driver, and Jellyfin permissions support it. Intel Quick Sync is often the least complicated option on compatible Intel processors. A Raspberry Pi can serve direct-play files well, but it is a poor choice for several demanding 4K transcodes.
Create separate user accounts for household members rather than sharing the administrator login. Each profile can have its own watch history, parental restrictions, and library permissions. Disable administrator access for ordinary users and use strong, unique passwords. If children use the server, limit their profile to age-appropriate libraries.
The server should receive routine Ubuntu and Jellyfin updates, but updates are only one part of reliability. Check drive health with smartctl, keep the machine ventilated, and consider a UPS if short power interruptions are common in your area. A basic UPS can prevent filesystem problems during outages, although it does not replace backups.
Use the 3-2-1 approach for important data: keep three copies, on two different types of storage, with one copy stored elsewhere. A Jellyfin library can be rebuilt, but family photos and original recordings cannot be downloaded again. An external drive stored away from the server, or an encrypted cloud backup, protects against drive failure, theft, and accidental deletion.
A well-configured home media server should be quiet, predictable, and easy to maintain. Ubuntu provides the stable base, Jellyfin supplies the library and streaming interface, and sensible storage and network choices determine how enjoyable the result will be. The key principle is simple: keep the server on your local network, organise files clearly, prefer direct play, protect remote access, and maintain a separate backup of anything that cannot be replaced.