
넷플릭스, 디즈니플러스, 웨이브, 쿠팡플레이, 티빙… 구독 서비스가 늘어날수록 매달 빠져나가는 비용도 만만찮습니다. 게다가 정작 내가 보고 싶은 영화는 어느 플랫폼에도 없거나, 어느 날 갑자기 라이브러리에서 사라져 버리는 경험, 한두 번쯤 해보셨을 겁니다. 직접 구매하거나 리핑한 영화, 가족 여행 영상, 좋아하는 음악 파일이 PC나 NAS 어딘가에 쌓여 있는데 막상 TV로 편하게 보려면 USB를 뽑았다 꽂았다 하는 번거로움도 있죠.
이런 불편을 한 방에 해결해 주는 것이 바로 Jellyfin입니다. 완전 무료 오픈소스 미디어 서버로, 여러분이 소유한 영상·음악·사진을 넷플릭스와 똑같은 인터페이스로 스트리밍할 수 있게 해 줍니다. 이번 글에서는 Docker를 이용해 Jellyfin을 설치하고, 미디어 라이브러리를 체계적으로 구성하며, 스마트 TV와 스마트폰까지 연결하는 과정을 처음부터 끝까지 안내합니다. 여름 방학과 휴가 시즌, 가족 모두가 즐길 수 있는 나만의 미디어 서버를 만들어 보세요.
Jellyfin이란 — 완전 무료 오픈소스 미디어 서버
Jellyfin은 2018년 Emby에서 포크(fork)되어 탄생한 오픈소스 프로젝트입니다. Emby가 핵심 기능을 유료 프리미엄 모델로 전환하면서, 커뮤니티 개발자들이 “미디어 서버는 완전히 자유로워야 한다”는 철학 아래 독립해 만든 결과물이죠. 비슷한 포지션의 Plex도 있지만, Plex는 원격 접속이나 하드웨어 트랜스코딩 같은 핵심 기능에 유료 Plex Pass를 요구합니다. Jellyfin은 이 모든 기능이 처음부터 끝까지 무료입니다.
Jellyfin의 핵심 특징
- 완전 무료, 광고 없음 — 프리미엄 티어, 구독료, 숨겨진 과금이 전혀 없습니다. 라이선스는 GPL v2로 소스 코드까지 공개되어 있습니다.
- 다양한 미디어 지원 — 영화, TV 시리즈, 음악, 뮤직비디오, 오디오북, 사진, 전자책(EPUB)까지 한 곳에서 관리합니다.
- 자동 메타데이터 매칭 — TMDB, TVDB, MusicBrainz 등 글로벌 데이터베이스에서 포스터, 줄거리, 출연진, 평점 정보를 자동으로 가져옵니다.
- 멀티 사용자 지원 — 가족 구성원마다 개별 계정을 만들고, 시청 기록과 시청 제한(자녀 보호)을 따로 관리할 수 있습니다.
- 실시간 트랜스코딩 — 클라이언트 기기가 원본 코덱을 재생하지 못할 때 서버가 실시간으로 변환해서 전송합니다. 하드웨어 가속(Intel QSV, NVIDIA NVENC, VAAPI)도 무료로 지원합니다.
- 플러그인 생태계 — 자막 자동 다운로드(Open Subtitles), IPTV 라이브 TV 연동, LDAP 인증, 팬아트 등 커뮤니티 플러그인으로 기능을 확장할 수 있습니다.
- 프라이버시 우선 — 미디어 데이터가 외부 서버로 전송되지 않습니다. Plex처럼 클라우드 계정에 의존하지 않으므로 인터넷이 끊겨도 로컬 네트워크에서 정상 작동합니다.
Plex와 Emby, 뭐가 다를까?
셀프호스팅 미디어 서버 3대장이라 불리는 Plex, Emby, Jellyfin을 간략히 비교해 보겠습니다.
Plex는 가장 오랜 역사와 가장 큰 사용자 기반을 가지고 있습니다. UI가 세련되고 클라이언트 앱의 완성도가 높지만, 하드웨어 트랜스코딩, 오프라인 동기화, 라이브 TV 녹화 같은 기능은 연 $119.99(또는 평생 $249.99)의 Plex Pass가 필요합니다. 또한 모든 연결이 Plex 클라우드 계정을 거치기 때문에, Plex 서버가 장애를 겪으면 내 로컬 서버에도 접속이 안 되는 상황이 간혹 발생합니다.
Emby는 Jellyfin의 원조 격입니다. UI와 기능면에서 Jellyfin과 매우 유사하지만, 핵심 기능(하드웨어 트랜스코딩, 라이브 TV, 오프라인 동기화)에 Emby Premiere($119/평생) 결제가 필요합니다. 서버 코드도 더 이상 오픈소스가 아닙니다.
Jellyfin은 기능 완성도 면에서 Plex에 약간 뒤처지는 부분(자동 매칭 정확도, 일부 클라이언트 앱 완성도)이 있지만, 2026년 현재 버전 10.10 대에 이르면서 그 격차가 크게 줄었습니다. 무엇보다 “완전 무료”라는 점과 “내 데이터는 내 서버에만”이라는 철학이 셀프호스팅 커뮤니티에서 압도적인 지지를 받고 있습니다.

Docker Compose로 Jellyfin 설치하기
Jellyfin은 Windows·Linux·macOS에 네이티브 설치도 가능하지만, Docker를 사용하면 환경 의존성 걱정 없이 깔끔하게 구동할 수 있습니다. 이미 Docker가 설치된 NAS나 홈서버가 있다면 5분이면 됩니다.
사전 준비
- Docker Engine과 Docker Compose가 설치된 호스트 (Synology NAS, Ubuntu 서버, Windows + WSL2 등)
- 미디어 파일이 저장된 폴더 (예: 외장 하드, NAS 공유 폴더)
- 여유 저장 공간 — Jellyfin 자체는 약 500MB 정도지만, 메타데이터 캐시(포스터, 썸네일)가 라이브러리 크기에 따라 수 GB까지 늘어날 수 있습니다
docker-compose.yml 작성
작업 디렉토리를 하나 만들고 다음 내용의 docker-compose.yml 파일을 작성합니다.
version: "3.8"
services:
jellyfin:
image: jellyfin/jellyfin:latest
container_name: jellyfin
restart: unless-stopped
ports:
- "8096:8096" # 웹 UI (HTTP)
- "8920:8920" # 웹 UI (HTTPS, 선택)
- "7359:7359/udp" # 로컬 네트워크 자동 검색
- "1900:1900/udp" # DLNA (선택)
volumes:
- ./config:/config # 설정·DB·메타데이터
- ./cache:/cache # 트랜스코딩 캐시
- /path/to/movies:/media/movies:ro # 영화 폴더 (읽기전용)
- /path/to/tv:/media/tv:ro # TV 시리즈 폴더
- /path/to/music:/media/music:ro # 음악 폴더
environment:
- TZ=Asia/Seoul
# 하드웨어 트랜스코딩 (Intel QSV 예시)
# devices:
# - /dev/dri:/dev/dri
핵심 포인트를 하나씩 살펴보겠습니다.
포트 매핑: 8096은 Jellyfin 웹 UI의 기본 HTTP 포트입니다. 이 포트만 열어도 기본 사용에 문제가 없습니다. 7359/udp는 같은 네트워크의 Jellyfin 클라이언트 앱이 서버를 자동으로 찾을 때 사용합니다. DLNA를 쓰지 않는다면 1900/udp는 생략해도 됩니다.
볼륨 매핑: /config에는 Jellyfin의 데이터베이스, 사용자 설정, 다운로드된 메타데이터가 저장됩니다. 컨테이너를 삭제하고 다시 만들어도 이 폴더만 보존하면 설정이 유지됩니다. 미디어 폴더는 :ro(읽기전용)로 마운트하는 것을 권장합니다 — Jellyfin이 원본 파일을 수정할 일은 없으므로 안전장치로 걸어 두는 것이죠.
타임존: TZ=Asia/Seoul로 설정해야 시청 기록의 시간 표시가 한국 시간으로 정확하게 기록됩니다.
컨테이너 실행과 초기 설정
docker-compose.yml이 있는 디렉토리에서 다음 명령을 실행합니다.
docker compose up -d
컨테이너가 정상적으로 올라오면 웹 브라우저에서 http://서버IP:8096으로 접속합니다. Jellyfin의 초기 설정 마법사가 나타납니다.
1단계 — 언어 선택: 한국어를 선택합니다. Jellyfin의 한국어 번역은 커뮤니티가 활발하게 관리하고 있어 대부분의 UI가 자연스럽게 번역되어 있습니다.
2단계 — 관리자 계정 생성: 사용자 이름과 비밀번호를 설정합니다. 이 계정이 서버의 최고 관리자가 됩니다. 외부 접속을 계획한다면 강력한 비밀번호를 사용하세요.
3단계 — 미디어 라이브러리 추가: 이 단계에서 영화, TV 시리즈, 음악 등 라이브러리 유형을 선택하고 해당 폴더를 지정합니다. 마법사를 건너뛰고 나중에 추가해도 됩니다. 라이브러리 구성에 대해서는 다음 섹션에서 자세히 다루겠습니다.
4단계 — 메타데이터 언어: 기본 메타데이터 다운로드 언어를 한국어, 국가를 대한민국으로 설정하면 한국 영화와 드라마의 메타데이터가 한글로 매칭됩니다.
5단계 — 원격 접속: 우선은 기본값으로 두고 완료합니다. 외부 접속 설정은 뒤에서 별도로 다룹니다.
설정을 마치면 깔끔한 Jellyfin 대시보드가 나타납니다. 아직 미디어를 추가하지 않았다면 빈 화면이겠지만, 곧 넷플릭스 못지않은 인터페이스로 채워질 겁니다.
미디어 라이브러리 구성과 파일 이름 규칙
Jellyfin의 사용 경험은 미디어 파일을 얼마나 체계적으로 정리하느냐에 따라 크게 달라집니다. 파일 이름과 폴더 구조만 규칙에 맞게 맞추면 Jellyfin이 TMDB, TVDB에서 포스터·줄거리·출연진·평점 정보를 자동으로 매칭해 줍니다. 반대로 “영화1.mkv”, “movie_final_v2.mp4” 같은 이름이면 매칭에 실패하거나 엉뚱한 작품 정보가 붙습니다.

영화 폴더 구조
영화 파일은 다음과 같은 구조를 권장합니다.
/media/movies/
├── 기생충 (2019)/
│ ├── 기생충 (2019).mkv
│ └── 기생충 (2019).srt # 외부 자막 (선택)
├── Inception (2010)/
│ └── Inception (2010).mkv
├── Dune Part Two (2024)/
│ └── Dune Part Two (2024).mkv
└── 올드보이 (2003)/
└── 올드보이 (2003).mkv
핵심 규칙은 간단합니다. 영화 한 편당 폴더 하나, 폴더명과 파일명에 제목 (개봉연도)를 포함시키는 것입니다. 연도가 있어야 동명의 다른 작품과 구분됩니다. 영문 제목을 사용하면 TMDB 매칭률이 더 높지만, 한국 영화는 한글 제목으로도 잘 매칭됩니다.
TV 시리즈 폴더 구조
TV 시리즈는 시즌과 에피소드 번호 규칙이 중요합니다.
/media/tv/
├── 이상한 변호사 우영우 (2022)/
│ └── Season 01/
│ ├── S01E01.mkv
│ ├── S01E02.mkv
│ └── ...
├── Breaking Bad (2008)/
│ ├── Season 01/
│ │ ├── S01E01.mkv
│ │ └── ...
│ └── Season 02/
│ ├── S02E01.mkv
│ └── ...
└── 나의 해방일지 (2022)/
└── Season 01/
├── S01E01.mkv
└── ...
S01E01 형식은 “시즌 1 에피소드 1″을 의미합니다. 이 포맷은 Jellyfin뿐 아니라 Plex, Emby, Kodi 등 모든 미디어 서버가 공통으로 인식하는 업계 표준입니다. 한국 드라마는 대부분 시즌이 1개뿐이므로 Season 01 폴더 하나만 만들면 됩니다.
음악 폴더 구조
음악은 아티스트와 앨범 단위로 정리합니다.
/media/music/
├── IU/
│ ├── LILAC (2021)/
│ │ ├── 01 - LILAC.flac
│ │ ├── 02 - Flu.flac
│ │ └── ...
│ └── The Winning (2024)/
│ └── ...
└── Radiohead/
└── OK Computer (1997)/
└── ...
Jellyfin은 MusicBrainz를 통해 앨범 아트, 트랙 정보, 가사를 자동으로 가져옵니다. 파일에 ID3 태그(MP3)나 Vorbis Comment(FLAC)가 제대로 붙어 있다면 폴더 구조가 다소 어긋나도 매칭이 잘 됩니다.
자막 설정
한국어 자막은 두 가지 방식으로 관리할 수 있습니다.
방법 1 — 외부 자막 파일: 영상 파일과 같은 폴더에 .srt 또는 .ass 파일을 넣되, 파일명을 영상과 동일하게 맞추고 언어 코드를 붙입니다. 예를 들어 Inception (2010).ko.srt이면 Jellyfin이 자동으로 한국어 자막으로 인식합니다.
방법 2 — Open Subtitles 플러그인: Jellyfin 관리자 페이지의 플러그인 카탈로그에서 “Open Subtitles”를 설치하면, 재생 시 자막이 없을 때 자동으로 인터넷에서 한국어 자막을 검색해 가져옵니다. Open Subtitles 계정(무료)을 만들어 API 키를 입력하면 활성화됩니다.
메타데이터 에이전트 우선순위 팁
라이브러리 설정에서 메타데이터 에이전트의 우선순위를 조정할 수 있습니다. 한국 콘텐츠가 많다면 다음과 같이 설정하는 것을 추천합니다.
- 영화: TheMovieDb → 우선순위 1위. 한국어 메타데이터 커버리지가 가장 넓습니다.
- TV 시리즈: TheMovieDb → TheTVDB 순서. 한국 드라마는 TMDB의 데이터가 더 정확한 경우가 많습니다.
- 음악: MusicBrainz가 기본이며 대부분의 경우 충분합니다.
라이브러리를 추가한 후 “라이브러리 스캔”을 실행하면 Jellyfin이 미디어 파일을 인식하고 메타데이터를 다운로드하기 시작합니다. 파일이 수백 개라면 첫 스캔에 10~30분 정도 걸릴 수 있으니 느긋하게 기다리세요. 스캔이 끝나면 포스터와 줄거리가 채워진 근사한 라이브러리가 완성됩니다.
멀티 디바이스 재생 — TV·스마트폰·태블릿 연결
Jellyfin의 진정한 가치는 어떤 기기에서든 내 미디어를 꺼내 볼 수 있다는 점입니다. 2026년 현재 Jellyfin이 공식·비공식으로 지원하는 클라이언트를 정리하면 다음과 같습니다.

웹 브라우저
별도 설치 없이 http://서버IP:8096에 접속하면 웹 플레이어로 바로 재생할 수 있습니다. PC나 노트북에서 가장 간편한 방법입니다. Chrome, Edge, Firefox, Safari 모두 지원합니다. 다만 Safari는 일부 코덱(예: AC3, DTS 오디오)의 직접 재생이 안 될 수 있어, 서버 트랜스코딩이 필요할 수 있습니다.
안드로이드 / iOS 스마트폰·태블릿
안드로이드: Google Play Store에서 “Jellyfin”을 검색하면 공식 앱이 있습니다. 무료이며, 백그라운드 음악 재생, 오프라인 다운로드(동기화) 기능을 지원합니다. 서드파티 앱 중에서는 Findroid가 머티리얼 디자인의 세련된 UI로 인기가 많습니다.
iOS / iPadOS: App Store에서 공식 “Jellyfin Mobile” 앱을 설치합니다. 안드로이드 버전과 기능이 거의 동일합니다. 서드파티로는 Swiftfin이 Apple TV 스타일의 네이티브 UI를 제공해 아이패드에서 특히 쾌적합니다.
스마트 TV
삼성 Tizen TV: 아직 공식 앱이 삼성 앱 스토어에 등록되어 있지 않지만, 웹 브라우저를 통해 접속하거나 사이드로드 방식으로 설치할 수 있습니다. 가장 편한 방법은 Fire TV Stick이나 Chromecast를 TV에 연결하는 것입니다.
LG webOS TV: LG Content Store에서 비공식 Jellyfin 앱을 설치할 수 있습니다. 최근 webOS 6.0 이상에서는 꽤 안정적으로 동작합니다.
Android TV / Google TV: Google Play Store에서 공식 “Jellyfin for Android TV” 앱을 설치합니다. 리모컨 내비게이션에 최적화된 10-foot UI를 제공하며, 완성도가 높습니다.
스트리밍 디바이스
Amazon Fire TV Stick: Amazon Appstore에서 공식 앱을 설치할 수 있습니다. Fire TV Stick 4K Max 정도면 대부분의 4K HDR 콘텐츠를 직접 재생(Direct Play)하므로 서버에 트랜스코딩 부하가 걸리지 않아 좋습니다. 가성비 면에서 Jellyfin과 가장 궁합이 좋은 디바이스입니다.
Apple TV: Swiftfin 앱이 tvOS에서 돌아가며, TestFlight 또는 App Store에서 설치할 수 있습니다. Apple TV의 강력한 하드웨어 디코딩 능력 덕분에 대부분의 코덱을 Direct Play합니다.
Chromecast / Google TV: Android TV 앱과 동일합니다. 스마트폰 앱에서 캐스트 버튼을 눌러 Chromecast로 전송할 수도 있습니다.
Kodi 연동
이미 Kodi를 사용하고 있다면 “Jellyfin for Kodi” 애드온을 설치해 Kodi의 로컬 라이브러리에 Jellyfin 미디어를 동기화할 수 있습니다. Kodi의 강력한 재생 엔진과 스킨 커스터마이징 능력을 그대로 활용하면서 Jellyfin의 서버 기반 관리 편의성을 누리는 조합입니다.
Direct Play vs 트랜스코딩
여기서 짚고 넘어갈 중요한 개념이 있습니다. Direct Play는 서버가 원본 파일을 그대로 클라이언트에 전달하는 것입니다. 서버 CPU를 거의 사용하지 않아 NAS급 저사양 하드웨어에서도 여러 스트림을 동시에 서비스할 수 있습니다.
트랜스코딩은 클라이언트가 원본 코덱을 재생하지 못할 때 서버가 실시간으로 코덱을 변환하는 것입니다. CPU 부하가 상당하기 때문에, 가능하면 Direct Play를 지원하는 클라이언트 기기를 선택하는 것이 좋습니다.
실용적인 팁으로, H.264 코덱의 MKV/MP4 파일은 거의 모든 기기에서 Direct Play가 됩니다. H.265(HEVC)는 최신 기기에서는 대부분 지원하지만 구형 기기에서는 트랜스코딩이 필요할 수 있습니다. 만약 트랜스코딩이 빈번하게 발생한다면, 다음 섹션에서 설명할 하드웨어 가속을 반드시 설정하세요.
하드웨어 트랜스코딩과 성능 최적화
Jellyfin 서버의 쾌적한 운영을 위해 알아두면 좋은 성능 최적화 포인트들을 정리합니다.
하드웨어 가속 트랜스코딩 설정
소프트웨어 트랜스코딩은 CPU에 큰 부하를 줍니다. 4K HEVC 영상 하나를 실시간 트랜스코딩하려면 6코어급 CPU도 100%에 육박할 수 있습니다. 하드웨어 가속을 활성화하면 GPU의 전용 인코더/디코더가 이 작업을 대신하므로 CPU 부하가 극적으로 줄어듭니다.
Intel QSV (Quick Sync Video): Intel 6세대(Skylake) 이후의 내장 GPU에서 지원합니다. NAS나 미니 PC에서 가장 보편적으로 사용되는 옵션입니다. docker-compose.yml에서 /dev/dri 디바이스를 컨테이너에 전달하면 됩니다.
devices:
- /dev/dri:/dev/dri
그 다음 Jellyfin 관리자 페이지 → 재생 → 트랜스코딩에서 하드웨어 가속 방식을 “Video Acceleration API (VAAPI)” 또는 “Intel Quick Sync (QSV)”로 선택합니다.
NVIDIA GPU: NVIDIA GPU가 있다면 NVENC/NVDEC를 사용할 수 있습니다. Docker에서 NVIDIA Container Toolkit을 먼저 설치한 뒤, docker-compose.yml에 다음을 추가합니다.
deploy:
resources:
reservations:
devices:
- driver: nvidia
count: 1
capabilities: [gpu]
관리자 페이지에서 “NVIDIA NVENC”를 선택하면 활성화됩니다. GTX 1050 이상이면 1080p 트랜스코딩 2~3개를 동시에 거뜬히 처리합니다.
캐시와 메타데이터 저장 경로
트랜스코딩 캐시 폴더(/cache)는 가능하면 SSD에 두는 것이 좋습니다. HDD에 두면 트랜스코딩 시작 시 딜레이가 발생할 수 있습니다. 반면 미디어 파일 자체는 용량이 크므로 HDD가 경제적입니다.
서버 하드웨어 권장 사양
- Direct Play 위주 (1~3명 동시 시청): NAS급 하드웨어면 충분합니다. Synology DS220+, QNAP TS-264처럼 Intel Celeron J4125급 CPU에 RAM 4GB 정도면 됩니다.
- 트랜스코딩 포함 (3~5명 동시): Intel N100 이상의 미니 PC에 RAM 8GB를 권장합니다. Intel N100은 AV1 하드웨어 디코딩까지 지원하므로 2026년 기준 최고의 가성비 미디어 서버 CPU입니다.
- 4K HDR 트랜스코딩 다수 동시: Intel Core i5 12세대 이상 또는 NVIDIA GTX 1660 이상이 필요합니다. 다만 이 정도 시나리오는 가정용에서는 드문 경우입니다.
외부 접속과 보안 설정
집 밖에서도 Jellyfin에 접속해 영상을 볼 수 있으면 활용도가 비약적으로 높아집니다. 출퇴근길에 드라마를 이어보거나, 출장지에서 저장해 둔 영화를 볼 수 있죠. 하지만 서버를 외부에 노출하는 만큼 보안에 신경 써야 합니다.
방법 1 — Cloudflare Tunnel (권장)
이 블로그에서 이전에 다룬 Cloudflare Tunnel을 활용하면 공유기 포트포워딩 없이 안전하게 외부 접속을 설정할 수 있습니다. 이미 Cloudflare Tunnel을 운영 중이라면 터널 설정에 Jellyfin 서비스만 추가하면 됩니다.
# cloudflared config.yml 에 추가
- hostname: media.yourdomain.com
service: http://localhost:8096
Cloudflare의 무료 SSL 인증서가 자동으로 적용되므로 HTTPS 설정을 별도로 할 필요가 없습니다. 다만 주의할 점이 있습니다 — Cloudflare 무료 플랜은 대용량 영상 스트리밍을 공식적으로 허용하지 않습니다. 개인 사용 수준에서 문제가 되는 경우는 드물지만, 대규모 사용이라면 서비스 약관을 확인하세요.
방법 2 — Tailscale VPN
역시 이전에 다룬 Tailscale을 사용하면 가장 안전하게 외부 접속을 구성할 수 있습니다. Jellyfin 서버와 접속할 기기 모두에 Tailscale을 설치하면, VPN을 통해 마치 같은 네트워크에 있는 것처럼 접속됩니다. 포트를 외부에 전혀 노출하지 않으므로 보안 걱정이 없습니다.
Tailscale 설치 후 Jellyfin 서버의 Tailscale IP (예: 100.x.y.z)와 포트 8096으로 접속하면 됩니다. 모바일 앱에서도 Tailscale VPN을 켜 놓으면 자동으로 연결됩니다.
방법 3 — 리버스 프록시 + 포트포워딩
Nginx Proxy Manager 같은 리버스 프록시를 앞에 두고, 공유기에서 443 포트만 포워딩하는 전통적인 방식입니다. Let’s Encrypt로 무료 SSL 인증서를 발급받고, 도메인을 연결합니다. 이 방법은 설정이 좀 더 복잡하지만, Cloudflare의 약관 제약 없이 대역폭을 자유롭게 쓸 수 있다는 장점이 있습니다.
보안 강화 체크리스트
어떤 방법을 선택하든, 외부 접속을 활성화했다면 다음 보안 항목들을 점검하세요.
- 강력한 비밀번호: 관리자 계정은 물론 모든 사용자 계정에 12자 이상의 비밀번호를 설정합니다.
- 불필요한 계정 비활성화: 게스트 계정이 필요 없다면 비활성화합니다. 관리자 페이지 → 사용자에서 관리합니다.
- 로그인 시도 제한: Jellyfin 자체에는 로그인 실패 횟수 제한 기능이 없으므로, 리버스 프록시 레벨에서 Fail2Ban이나 Cloudflare의 Rate Limiting을 활용합니다.
- 정기 업데이트:
docker compose pull && docker compose up -d로 Jellyfin 이미지를 주기적으로 업데이트합니다. 보안 패치가 포함될 수 있습니다. - HTTPS 필수: 외부 접속 시 반드시 HTTPS를 사용합니다. Cloudflare Tunnel이나 리버스 프록시를 쓰면 자동으로 해결됩니다.
실전 활용 팁과 유용한 플러그인
Jellyfin을 설치하고 기본 설정을 마쳤다면, 이제 사용 경험을 한 단계 올려줄 실전 팁들을 소개합니다.
가족 구성원별 계정 관리
관리자 페이지 → 사용자에서 가족 구성원마다 개별 계정을 만들 수 있습니다. 각 계정에 대해 다음을 설정할 수 있습니다.
- 시청 가능 라이브러리: 자녀 계정에는 “키즈” 라이브러리만 보이게 하고 성인 영화 라이브러리를 숨길 수 있습니다.
- 연령 등급 제한: 메타데이터 기반으로 특정 연령 등급 이상의 콘텐츠를 자동 차단합니다.
- 동시 스트림 제한: 특정 계정의 동시 재생 수를 제한할 수 있습니다.
- 다운로드 권한: 모바일 앱에서 오프라인 다운로드를 허용할지 여부를 계정별로 제어합니다.
유용한 플러그인 추천
관리자 페이지 → 플러그인 → 카탈로그에서 다양한 커뮤니티 플러그인을 설치할 수 있습니다.
- Open Subtitles: 앞서 언급한 자막 자동 다운로드 플러그인. 한국어 자막 커버리지가 높습니다.
- Intro Skipper: TV 시리즈에서 오프닝 인트로 구간을 자동으로 감지하고 “인트로 건너뛰기” 버튼을 표시합니다. 넷플릭스의 그 기능을 Jellyfin에서도 쓸 수 있습니다.
- Jellyseerr (외부 연동): 넷플릭스처럼 “이 영화 보고 싶어요” 요청 기능을 추가합니다. 가족 구성원이 원하는 콘텐츠를 요청하면 알림을 받고, Radarr/Sonarr와 연동해 자동으로 다운로드·정리할 수도 있습니다.
- Playback Reporting: 누가 언제 무엇을 얼마나 시청했는지 통계를 보여줍니다. 서버 사용 패턴을 파악하는 데 유용합니다.
- Fanart: 라이브러리에 고화질 팬아트 이미지를 추가해 시각적 풍성함을 높입니다.
라이브 TV와 녹화 (선택)
IPTV 스트림 URL(M3U 재생목록)이 있다면 Jellyfin에 라이브 TV 채널을 추가할 수 있습니다. EPG(전자 프로그램 가이드)를 연결하면 TV 편성표도 표시됩니다. 녹화(DVR) 기능도 내장되어 있어, 특정 프로그램을 예약 녹화할 수 있습니다. 이 기능은 무료입니다 — Plex에서는 Plex Pass가 필요한 기능이죠.
데이터 백업
Jellyfin의 핵심 데이터는 /config 폴더에 모두 들어 있습니다. 사용자 설정, 시청 기록, 메타데이터 캐시, 데이터베이스가 여기에 저장됩니다. 정기적으로 이 폴더를 백업해 두면 서버를 다시 구축할 때 모든 설정을 복원할 수 있습니다.
# 간단한 백업 예시 (tar 아카이브)
tar -czf jellyfin-config-backup-$(date +%Y%m%d).tar.gz ./config
미디어 파일 자체는 별도의 백업 전략이 필요합니다. 이전에 소개한 3-2-1 백업 전략을 참고하세요.
미디어 파일 일괄 정리 도구
기존에 정리가 안 된 미디어 파일이 수백 개라면 수작업으로 이름을 바꾸기가 막막할 수 있습니다. 이럴 때 유용한 도구들이 있습니다.
- Filebot: 영화·TV 시리즈 파일명을 TMDB/TVDB 기반으로 자동 변환해 주는 도구입니다. 유료($6/연)지만, 대량의 파일을 한 번에 정리할 때 시간을 엄청나게 절약해 줍니다.
- tinyMediaManager: 무료 오픈소스 도구로, 파일명 변경뿐 아니라 NFO 파일 생성, 포스터 다운로드까지 해줍니다.
- Bulk Rename Utility (Windows): 무료 파일명 일괄 변경 도구. 정규식을 지원하므로 패턴 기반으로 빠르게 이름을 바꿀 수 있습니다.
마무리 — 내 미디어, 내가 소유하는 즐거움
여기까지 Jellyfin 설치부터 미디어 라이브러리 구성, 멀티 디바이스 연결, 외부 접속, 성능 최적화, 그리고 실전 활용 팁까지 살펴보았습니다. 정리하면 이렇습니다.
- Docker Compose로 5분 만에 설치 가능
- 파일명만 규칙에 맞추면 포스터·줄거리·출연진이 자동 매칭
- 스마트 TV, 스마트폰, 태블릿 — 어떤 기기에서든 재생
- Cloudflare Tunnel이나 Tailscale로 안전하게 외부 접속
- 하드웨어 가속으로 저사양 하드웨어에서도 쾌적한 트랜스코딩
- 가족 구성원별 계정과 자녀 보호 기능까지 완비
- 이 모든 것이 완전 무료
구독 서비스에 매달 수만 원을 내면서도 정작 보고 싶은 콘텐츠가 없어 이 앱 저 앱을 전전하는 것보다, 내가 가진 미디어를 내 서버에서 자유롭게 즐기는 것이 훨씬 만족스러운 경험입니다. 특히 여름 방학, 가족 여행 영상을 거실 TV에서 바로 꺼내보거나, 비 오는 주말에 예전에 모아둔 영화를 틀어놓는 그 소소한 즐거움은 어떤 구독 서비스도 대체할 수 없습니다.
이미 NAS나 Docker를 운영하고 계신다면 Jellyfin 하나 올리는 것은 정말 쉬운 일입니다. 이번 여름, 나만의 미디어 서버 하나 만들어 보세요. 한번 세팅해 두면 오랫동안 편하게 쓸 수 있을 겁니다.
이미지는 Leonardo AI 로 생성되었습니다.
이미지는 Claude AI 로 생성되었습니다.