
Table of Contents
Key Takeaway
- 🎬 The Jellyfin media server puts your family’s movie and show collection on your own server — one Hostinger VPS replaces the stack of streaming subscriptions your household pays for every month.
- 🐳 The proven 2026 setup runs Jellyfin in Docker on a KVM VPS: one
docker-compose.yml, port 8096, libraries mounted read-only — the whole install is copy-paste. - 🔒 Remote access done right: a reverse proxy with HTTPS (or Tailscale/WireGuard) keeps the media server off the open internet — the security step most self-hosters skip and regret.
- 🇵🇭 The OFW angle: movies for the family watch party, remittance-funded storage upgrades, and a household media library the kids can’t break.
- 💰 Math preview: the recommended KVM 2 plan runs about the cost of one streaming subscription per month — and it hosts the Nextcloud, Vaultwarden, and n8n projects from our earlier builds alongside Jellyfin.
Why a Jellyfin Media Server Beats Another Subscription
Your family’s videos deserve better than a subscription — and so does your budget. Jellyfin is the fully open-source media server: you install it on a server, point it at your movie and show files, and every device in the house gets a Netflix-style interface for content you own. No monthly fee to Jellyfin, no catalog that rotates away the movie your kids want to watch for the fifth time, no ads on the paid tier, and no account that can be banned. The Jellyfin media server is the self-hosting community’s answer to platform fatigue — and this guide is the complete Hostinger setup.
The honest comparison: streaming subscriptions buy convenience and licensed content; Jellyfin buys permanence. Your files stay yours, play at full quality, and the household that keeps a ₱500–800 monthly streaming stack can redirect most of it to a VPS that also hosts everything else this series has built. The trade-off is real: no automatic blockbuster catalog — your library is what you put in it, and ripping or acquiring media is your responsibility, within the laws that apply to you.
What you need before starting: a Hostinger VPS plan (Step 1 covers sizing), 30–60 minutes, and your family’s existing media files — an external drive full of birthday videos, downloaded movies, and the shows the household actually re-watches. Every step below is copy-paste terminal work plus a browser wizard.
Step 1: The Right Hostinger VPS Plan
The Jellyfin media server‘s official requirements are modest for a family server: 2 vCPU / 2 GB RAM streams fine for one or two simultaneous viewers when the server direct-plays files; transcoding 4K streams for multiple viewers is where plans strain. The practical Hostinger ladder:
- KVM 1 (intro ~$6.49/mo) — one viewer, 1080p direct play, the whole family’s photos in Nextcloud alongside. Our Nextcloud build runs comfortably on it.
- KVM 2 (~$7–9/mo) — the recommended family tier: two to three concurrent 1080p streams, storage headroom for a real library, room for the n8n automation from our n8n setup.
- KVM 4 (~$26–43/mo) — 4K transcoding for several viewers; overkill until the household proves it needs it.
Pick a data center close to your family, not to you — if the viewers are in Laguna and Riyadh, Manila-facing or Singapore-region latency wins for the Philippines side. Choose Ubuntu 24.04 LTS at checkout, add a snapshot after setup (Hostinger’s snapshot feature is the cheapest insurance in self-hosting), and connect via the hPanel browser terminal or SSH. If you need the VPS fundamentals first — SSH keys, initial hardening — the Hermes VPS walkthrough covers them step-by-step; the same hygiene applies here.
Ready to start? Hostinger’s VPS plans carry the referral pricing used throughout this series, and the setup below works on any KVM tier.
Step 2: Install Jellyfin With Docker (Copy-Paste)
Docker keeps Jellyfin isolated and updatable — the proven pattern from our Uptime Kuma and Vaultwarden builds. SSH in (hPanel’s browser terminal works), then run the whole block:
# 1. Docker (official repo)
curl -fsSL https://get.docker.com | sudo sh
sudo usermod -aG docker $USER && newgrp docker
# 2. Directory structure
sudo mkdir -p /opt/jellyfin /media/library/movies /media/library/shows /media/library/music
sudo chown -R $USER:$USER /media/library
# 3. Compose file
cat <<'EOF' > ~/jellyfin-compose.yml
services:
jellyfin:
image: jellyfin/jellyfin
container_name: jellyfin
user: "1000:1000"
ports:
- "8096:8096/tcp"
- "7359:7359/udp"
volumes:
- ./config:/config
- ./cache:/cache
- type: bind
source: /media/library/movies
target: /media/movies
read_only: true
- type: bind
source: /media/library/shows
target: /media/shows
read_only: true
restart: unless-stopped
EOF
# 4. Launch
docker compose -f ~/jellyfin-compose.yml up -d
docker compose -f ~/jellyfin-compose.yml psAfter 10–20 seconds, open http://YOUR-VPS-IP:8096 — the Jellyfin wizard loads. Choose your display language, create the admin account with a strong password, and stop at the “Add Media Library” screen. (If the container shows Exited, run docker logs jellyfin --tail 20 — 90% of first-run failures are a wrong path in the compose file.)
Getting your files onto the server: the cleanest OFW-proof method is SFTP — any SFTP client uploads to /media/library/… over SSH. Upload a test file before the big library move; a 2-hour 4K movie on a slow home connection teaches you about patience before it teaches you about partial files.
Step 3: Libraries, Metadata, and the First Stream
In the wizard: click Add Media Library, pick Movies, point it at /media/movies, set the language to your preference, and enable real-time monitoring. Jellyfin scans the Jellyfin media server libraries, fetches posters and metadata, and the interface assembles itself. Repeat for Shows and Music. Two settings worth flipping during setup: enable subtitle downloads (the OpenSubtitles plugin, under Dashboard → Plugins) and leave the metadata language on English/Tagalog mix for Philippine households.
The first Jellyfin media server stream is the moment the project sells itself: open the Jellyfin app on the family’s phone or TV (the Android/iOS apps and smart-TV clients all accept the server address), sign in, and play. If playback stutters, the cause is almost always transcode load — check Dashboard → Activity to see whether the stream is “Direct Play” (cheap) or “Transcode” (expensive). Direct play is why the KVM 2 recommendation matters.
Step 3B: Remote Access the Right Way — HTTPS or VPN
Jellyfin on the open internet without HTTPS is the self-hosting equivalent of leaving the front door with the key in it. Two proven paths:
- Reverse proxy + HTTPS (family-shared): point a subdomain like
jellyfin.yourdomain.comat the VPS, run Nginx Proxy Manager or Caddy in Docker, and let it issue a free Let’s Encrypt certificate. Jellyfin then serves every family member from anywhere, encrypted. The IONOS and MassiveGRID self-hosting references below walk the same pattern our other builds use. - Tailscale/WireGuard (household-only): the 2026 default for private servers — install Tailscale on the VPS and each family device; the server is reachable only inside the VPN mesh, with zero open ports. The JellyWatch setup guide documents the full path. For a family that streams mostly from home Wi-Fi and the OFW’s own devices, this is the safer and simpler choice.
Either way, never forward port 8096 raw from the router to the internet — it is the one step this article insists on, and the same zero-trust habit our Uptime Kuma monitoring build applies to every exposed service.
Step 4: Family Accounts and Parental Control
The Jellyfin media server‘s user system is where family peace is won: Dashboard → Users → add one account per person, each with its own watch history and resume points. For the kids’ accounts, set Parental Access to block folders above their age rating and disable the “Allow media deletion” permission — the toggle that has saved many a family library. Weekly household practice: check Dashboard → Activity for failed logins (a public VPS gets scanned; Jellyfin’s logs make it visible), keep the server updated with docker compose pull && docker compose up -d monthly, and the snapshot button in hPanel before every update.
The complete Jellyfin media server household stack now runs on one VPS: media (Jellyfin), files (Nextcloud), passwords (Vaultwarden), automation (n8n), and monitoring (Uptime Kuma). That is the self-hosting flywheel our Hostinger series has been building since the Hermes tutorial — one server, one bill, every family service owned instead of rented.
Affiliate disclosure: WorldNgayon may earn a commission when you use our links, at no extra cost to you. Full details on our disclaimer page.
Frequently Asked Questions
Is Jellyfin really free?
Yes — Jellyfin is fully open source with no premium tier, no accounts, and no telemetry requirement. The costs are the server (the VPS in this build) and the storage your library needs. Compare that total against your household’s stack of streaming subscriptions over a year.
What Hostinger VPS plan for a Jellyfin media server?
KVM 2 (~$7–9/mo intro) is the sweet spot for a family: two to three 1080p direct-play streams, storage headroom, and capacity to host your other self-hosted apps. KVM 1 works for a single viewer; 4K transcoding for multiple viewers needs a bigger tier.
Can my family watch the Jellyfin server from the Philippines while I’m abroad?
Yes — that is the reverse-proxied HTTPS setup in Step 3B: a domain, an encrypted reverse proxy, and family accounts. Everyone streams from the same server from anywhere; the OFW and the household watch the same library across the distance.
How do I add movies to the Jellyfin media server?
Copy files into the library folders over SFTP (any SSH file client), and Jellyfin’s real-time monitoring picks them up automatically — metadata and posters fetch on scan. Keep filenames clean (Title (Year)) so matching stays accurate.
Is it safe to expose Jellyfin to the internet?
Not raw. Port 8096 opened directly is scanned constantly; the safe patterns are the reverse proxy with HTTPS (for shared access) or Tailscale/WireGuard (for household-only). Both are in the guide; pick one before sharing the address with family.
Jellyfin vs Plex — why choose Jellyfin?
Jellyfin is fully open source: no account requirement, no paid unlocks, no hardware-transcoding paywall, and your metadata stays on your server. Plex’s convenience (remote access magic, live TV) is real, but its 2020s pricing moves make the open-source route the one you own forever. This guide’s architecture works with either, but Jellyfin costs nothing beyond the server.






