Going Camping? Jellyfin on Raspberry Pi Is the Perfect Offline Media Server
Camping or caravanning off-grid is a great way to escape from the hustle and anxiety of everyday existence. But while life without a cell signal may help you to relax, some members of your party may yearn for the streaming video and music they're used to. Here's how to keep them happy…
Why Take a Media Server When You Go Camping?

Camping or taking your caravan off-grid allows you to get closer to nature and to experience life as our ancestors did thousands of years ago.
Your idea of a good time might be exploring abandoned trails, and experiencing the peace of ancient woodlands, but we can guarantee if you've taken kids along with you, they're going to be bored when you set up your movable accommodation of an evening.
Back at home, they'll be used to connecting to Netflix on their phones, and watching the best child-friendly streaming services or listening to tunes from Spotify.
Of course, while you probably plan for everyone to take phones with them, it's highly unlikely that you'll be able to get a 5G or 5G+ signal from deep within the ravine you've chosen as your base.
We'll show you how to set up a Raspberry Pi 4B as a media server for movies, audiobooks, music, and TV shows, and how to connect to it from your phone.
What You Need to Create an Offline Media Server
There isn't really much you need to create the perfect offline media server, and after you've set up, you can leave the power supply and internet connection at home. To get started, make sure you have:
- Raspberry Pi 4B
- High capacity SD card or USB thumb drive
- USB power supply
- Internet connection
- High-capacity solar-powered power bank with USB-C output
- High-capacity solar-powered power banks for your phones
- Digital media you want to take with you. Movies and shows should be in the MP4 format to avoid straining the Pi with transcoding.
Once you have all your supplies, you can start building your Raspberry Pi offline media server.
How to Create an Offline Media Server for Camping

To get started, install an operating system on your Raspberry Pi. We recommend Raspberry Pi OS Lite (64 Bit) for this project. Make sure you remember to click the cog icon in the Raspberry Pi Imager tool to set a username and password, as well as the SSID and password of your home Wi-Fi network. It's vitally important that you also set your Wireless LAN country correctly.
You should also set a friendly hostname to make it easier to connect on your local network—we chose "vanpi" which will initially allow us to connect over SSH to pi@vanpi.local. Once the OS is written, insert your SD card or thumb drive into the Raspberry Pi, and connect it to your power supply.
As you're setting up the Pi as a server there's little point connecting it to a monitor. Instead, you'll be accessing it using Secure Shell (SSH) and Secure Copy (SCP). If you're using Linux or macOS, you can use these tools from your terminal. If you're on Windows, you'll use PowerShell. If you're unsure how to use SSH, consult our guide on how to access and control your Raspberry Pi remotely via SSH.
Connect to your Pi with:
ssh pi@vanpi.local If you chose a different hostname or user, you should use that instead.
Update and upgrade all pre-installed packages with:
sudo apt update && sudo apt upgrade -y
Jellyfin is free and open-source media streaming software that will run well on your Raspberry Pi. With your software up to date, you can now add the Jellyfin repository key:
sudo apt install curl gnupg
curl -fsSL https://repo.jellyfin.org/ubuntu/jellyfin_team.gpg.key | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/jellyfin.gpg The next command will echo your processor type and OS to a text file that will be used to install the correct Jellyfin version:
echo "deb [arch=$( dpkg --print-architecture )] https://repo.jellyfin.org/$( awk -F'=' '/^ID=/{ print $NF }' /etc/os-release ) $( awk -F'=' '/^VERSION_CODENAME=/{ print $NF }' /etc/os-release ) main" | sudo tee /etc/apt/sources.list.d/jellyfin.list Update once more, and you can install Jellyfin from the new repository:
sudo apt update
sudo apt install jellyfin When you're returned to the command prompt, start and enable Jellyfin as a service:
sudo systemctl start jellyfin
sudo systemctl enable jellyfin You should already have your MP3 and MP4 files ready to transfer. Make sure that they're separated into different folders on your local PC and that the folders have easy-to-recall names such as movies, shows, and music.
Close the SSH connection, then transfer these folders from your local PC to your Pi with:
scp -r movies/ shows/ music/ pi@vanpi.local:~ Depending on the size of your collection, this transfer could take several hours. When it completes, open a browser and enter the hostname of your Pi into the URL bar, then press Enter. In our case, this would be vanpi.local:8096.
Choose your Display Language, then click Next to choose a username and password for the admin account.

Next, you'll be prompted to add your media libraries. Click the big blue + button, and select the media type from the drop-down list, then click the Add Folders button.
You'll see two items in a list: "/" and "/boot". Click "/" then home > pi > movies. Then press the big blue OK button. Repeat for your other media folders. When you're happy, press OK again.
Click Next to choose metadata language and country, then Next again, and make sure that the Allow remote connections to this server box is checked.
Click Finish, and log in with the credentials you set earlier. Jellyfin will automatically scan the media in your folders, identify it, and fetch associated metadata from the internet.

When it's completed, your Jellyfin instance should look similar to the above screenshot.
You don't have to add extra users for Jellyfin, but individual accounts can help prevent confusion. Press the hamburger icon in the top left then Dashboard > Users. Click the + icon to add users and set permissions for which libraries the can view. It's a good idea to put all child-appropriate media into a single folder and restrict younger users to that library. Click Save when you've finished.
Set Up Your Raspberry Pi as an Access Point

Until now, you've been accessing your Raspberry Pi over your home network. You need to set it up to act as its own access point to which devices can connect without internet access.
SSH into your Raspberry Pi again, and install hostapd:
sudo apt install hostapd Enable the service so it starts as soon as your Pi boots:
sudo systemctl unmask hostapd
sudo systemctl enable hostapd You will also need dnsmasq, netfilter-persistent and its iptables-persistent plugin:
sudo apt install dnsmasq && sudo DEBIAN_FRONTEND=noninteractive apt install -y netfilter-persistent iptables-persistent Your Pi-based network needs to be given its own IP address. Use nano to edit the dhcpcd.conf configuration file:
sudo nano /etc/dhcpcd.conf At the end of the file, paste the following:
interface wlan0
static ip_address=192.168.4.1/24
nohook wpa_supplicant Save and exit nano with Ctrl + O then Ctrl + X, and edit the dnsmasq.conf file:
sudo nano /etc/dnsmasq.conf Delete the contents, and paste in:
interface=wlan0
dhcp-range=192.168.4.2,192.168.4.20,255.255.255.0,24h
domain=wlan
address=/van.wlan/192.168.4.1 This will allow your Pi to assign individual IP addresses to devices that connect to it. Save and exit nano with Ctrl + O then Ctrl + X.

Lastly, configure your access point:
sudo nano /etc/hostapd/hostapd.conf This file will be empty. Paste in the following:
country_code=GB
interface=wlan0
ssid=caravanlan
hw_mode=g
channel=7
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=caravan
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP Make sure to set the correct country code, and choose a sensible SSID and password. We chose caravanlan as our SSID because it's thematically appropriate, easy to remember, and it rhymes.
Save and exit nano with Ctrl + O then Ctrl + X, then reboot the Pi:
sudo reboot Connect to Your New Raspberry Pi LAN
When your Pi reboots, you won't be able to connect to it via SSH straight away, as it is now on a different network. If you used our suggested SSID name, you can easily find it and connect to the new Wi-Fi network: caravanlan.
To access your Jellyfin server on the network, enter van.wlan:8096 or 192.168.4.1:8096. Your mobile devices can either use their built-in web browser or dedicated apps for iOS or Android.
CloseDownload: Jellyfin for iOS | Jellyfin for Android (Play Store) | Jellyfin for Android (F-Droid)
Input the above addresses in the app when asked for the Jellyfin server address.
Enjoy Streaming Media on Your Off-Grid Camping Trip!
With hundreds of movies, shows and albums available to you and your fellow campers even when you're in the middle of nowhere, it's essential that you have sufficient power for your Raspberry Pi and for the devices that are accessing it. Solar power banks are an excellent option, and can keep your devices topped up day and night.
ncG1vNJzZmivp6x7rq3KnqysnZ%2Bbe6S7zGipmqugl7Kzvthmp6Jlmpq5rcXFoqVmp5abuaq6xGaknpyZlnq0sdGvnKtlk5a6sbXNoGY%3D