Deploy Jellyfin Self-Hosted Media Server + Web Uploader
One-click Jellyfin media server with web uploader and persistent storage
Just deployed
/config
Deploy and Host Jellyfin on Railway
One-click Jellyfin media server on Railway with a built-in web portal (FileBrowser) for uploading your media, and persistent storage.
- Jellyfin 10.10.7 — free and open-source media server (movies, TV, music)
- Web portal — upload, organise and manage your media from any browser at
/files - Persistent volume — config, metadata and media survive redeploys
- nginx — single public entry point, no configuration needed
- Everything from the browser — no SSH, no terminal, no extra tools
About Hosting Jellyfin on Railway
Railway gives you a public HTTPS URL, a 500 MB persistent volume on the free tier and automatic redeploys. The template wires nginx, Jellyfin and a file uploader behind a single domain, so you never need to configure ports or a reverse proxy yourself.
Why Deploy Jellyfin on Railway
- Free and open source — no licensing costs, Jellyfin is a drop-in Plex alternative
- Upload from the browser — the web portal means no SSH, no terminal, no extra tools
- Persistent storage — your config, metadata and media survive redeploys
- One URL — nginx exposes Jellyfin and the portal on a single public domain
Common Use Cases
- Streaming your movie, TV and music collection from any device
- A private family media server with shared libraries
- Organising and uploading media from any browser, anywhere
Dependencies for Jellyfin
No databases or external services are required. The service builds its own image from the Dockerfile in the repository.
Deployment Dependencies
- A Railway account (the free tier is enough)
- The template deploys from the source repository using the included Dockerfile
- Volume mounted at
/configprovides persistence
Deploy
- Click Deploy on Railway — the variables
TZandPORTare already pre-filled. The portal password is optional; if left empty one is auto-generated on first boot. - Open your domain and complete the Jellyfin setup wizard (language + admin user).
- Upload your media through the web portal at
/files. - Add Jellyfin libraries pointing to
/config/media/....
The web portal
The portal lives at /files (FileBrowser). Log in with user admin:
- Password: if you didn't set
FILEBROWSER_PASSWORD, it is auto-generated on first boot and saved at/config/.filebrowser-password. - Upload movies/series into the folders under
/config/media/. - The portal is served through the same domain as Jellyfin — no extra port to remember.
Adding libraries in Jellyfin
In Jellyfin, add your media folders with paths like /config/media/movies or /config/media/series. Enable metadata storage in the folder settings so scrapers work.
Storage
A volume is attached at /config. Everything (Jellyfin config, metadata, media) persists across redeploys.
Environment variables
| Variable | Default | Description |
|---|---|---|
TZ | Etc/UTC | Container timezone (pre-filled). |
PORT | 8095 | Internal HTTP port, must stay 8095 (pre-filled). |
FILEBROWSER_PASSWORD | — | Optional. Password for the portal admin user. Auto-generated if empty. |
Limitations
- Railway free tier volume is 500 MB — enough for a few movies or a music collection.
- Jellyfin is pinned to 10.10.x (10.11+ requires 2 GiB free disk, incompatible with the free volume).
- Transcoding may be slow on free instances — direct play is recommended.
- Free tier services stop when idle; redeploys restart them.
More
Full documentation (English + Español) is in the repository README: https://github.com/BURNI80/jellyfin-railway-template
Template Content