# Cinema Server - Jellyfin

> Run your own Jellyfin cinema server: start it with Docker, mount your media, add nginx as a reverse proxy and stream movies from a simple self-hosted setup.

Author: Elnur Badalov
Published: 2024-06-18
Updated: 2026-01-02
Tags: setup
Source: https://elnurbda.com/posts/02-cinema-server/
License: CC BY 4.0, please cite the source URL.

---

# Intro

Jellyfin is an open-source media server that allows you to organize and stream your media collection. This guide shows how to set it up using Docker and configure nginx as a reverse proxy.

# Setup

- <https://jellyfin.org/downloads/>
- server -> Docker

For more Docker-related content, check out my post on [running Windows on Docker](/posts/03-windows-on-docker/).

```bash
docker pull jellyfin/jellyfin:latest
mkdir -p /srv/jellyfin/{config,cache}
docker run -d -v /srv/jellyfin/config:/config -v /srv/jellyfin/cache:/cache -v /mnt/volume_sfo3_01:/media --net=host jellyfin/jellyfin:latest
```

## Nginx Configuration

To make Jellyfin accessible via a domain name or IP, we'll set up nginx as a reverse proxy:

```bash
apt install nginx

vim/etc/nginx/sites-available/cinema
# write there
server {
   listen 80;
   server_name 0.0.0.0 your.cinema.url.com YOUR.CINEMA.IP.IP;  
   location / {
       proxy_pass http://localhost:8096;
       proxy_http_version 1.1;
       proxy_set_header Upgrade $http_upgrade;
       proxy_set_header Connection 'upgrade';
       proxy_set_header Host $host;
       proxy_cache_bypass $http_upgrade;
   }
}

ln -s /etc/nginx/sites-available/cinema /etc/nginx/sites-enabled/cinema

systemctl reload nginx
```

## Client Options

You can access Jellyfin through various clients:

- **Flatpak** (I do not use it):

```bash
flatpak install flathub com.github.iwalton3.jellyfin-media-player
flatpak run com.github.iwalton3.jellyfin-media-player
```

- **Web browser** (I use it) - Simply navigate to your server's IP or domain name.

## Legally Download Movies

To populate your media library, you can use torrent clients. Download only the ones that you have rights to `:)`

- <https://www.maketecheasier.com/how-to-download-torrents-from-the-command-line-in-ubuntu/>

```bash
sudo apt install transmission-cli
```

## Downloading Movies from Your PC

If you have media files on your local machine, you can transfer them to your server using one of these methods:

- Run a local HTTP server and use SSH port forwarding to transfer files:

```bash
python3 -m http.server
ssh root@<IP> -R 8000:localhost:8000
wget --recursive --no-parent localhost:8000/somefolder
```

- or use `scp`

# Result

The Cinema Website that is better than any other in the internet, you will need only pay for hosting it. However, you can benefit from some Cloud Providers that may host it freely (for some period). For more information on free cloud resources, check out my guide on [free resources for developers](/posts/11-every-dev-aware/).