콘텐츠로 이동






홈미디어 구축하기 Emby

back

시작하며

  1. Emby는 개인이 보유한 영화, 드라마, 음악, 사진 등의 미디어 파일을 라이브러리로 구성하고, 웹 브라우저/스마트 TV/모바일 앱 등에서 재생할 수 있도록 제공하는 개인 미디어 서버입니다.
  2. Emby는 영상 파일이나 상용 OTT 콘텐츠를 제공하는 서비스가 아닙니다.
  3. 사용자가 직접 보유하고 관리할 권한이 있는 미디어 파일을 서버에 저장한 뒤, 해당 파일의 메타데이터를 정리하고 여러 기기에서 재생하는 용도로 사용할 수 있습니다.
  4. 클라이언트가 원본 코덱/해상도/자막을 지원하면 원본을 그대로 전송하는 Direct Play 방식으로 재생할 수 있습니다. 지원하지 않는 환경에서는 서버가 영상을 클라이언트 환경에 맞게 변환하는 트랜스코딩(Transcoding)을 수행할 수 있습니다.

Warning

emby는 미디어를 재생해주는 platform의 역활을 수행하기만 합니다. 재생에 필요한 컨텐츠를 제공해주진 않습니다.


주요 기능

  1. 개인 미디어 라이브러리 구성

    • 영화, TV 프로그램, 음악, 사진 등 콘텐츠 유형별로 라이브러리를 구성할 수 있습니다.
    • 파일명과 폴더 구조를 기준으로 포스터, 줄거리, 출연진, 장르 등의 메타데이터를 수집하고 정리할 수 있습니다.
  2. 다양한 클라이언트에서 재생

    • 웹 브라우저를 비롯해 모바일, 스마트 TV, 셋톱박스 등 지원되는 Emby 클라이언트에서 콘텐츠를 재생할 수 있습니다.
    • 서버와 클라이언트의 지원 조건이 맞으면 Direct Play를 우선 사용하므로 서버 자원 사용량을 줄일 수 있습니다.
  3. 사용자/시청 권한 관리

    • 가족 구성원별 사용자 계정을 만들 수 있습니다.
    • 사용자별 라이브러리 접근 권한, 원격 접속 여부, 자녀 보호 기능 등을 설정할 수 있습니다.
  4. 원격 접속

    • 내부망에서는 http://서버주소:8096으로 접근할 수 있습니다.
    • 외부에서 사용할 때는 포트를 직접 공개하기보다는 도메인과 HTTPS 리버스 프록시를 사용하는 방식을 권장합니다.
  5. Emby Premiere 기능

    • 다운로드 및 동기화, 하드웨어 가속 트랜스코딩, DVR/Live TV 관련 기능 등 일부 기능은 Emby Premiere 구독이 필요합니다.
    • 다운로드/동기화는 기기에 오프라인 재생용 미디어를 복사하는 기능이며, 서버 폴더 동기화에는 별도 플러그인이 필요할 수 있습니다. Emby Premiere 기능표를 확인하세요.

장점과 고려할 점

구분 내용
장점 개인 서버, NAS 또는 클라우드 인스턴스만 있으면 개인 미디어 라이브러리를 구축할 수 있습니다.
장점 여러 기기에서 재생 위치와 시청 상태를 동기화하고, 메타데이터 기반으로 콘텐츠를 탐색할 수 있습니다.
장점 클라이언트가 원본 파일을 지원하는 경우 Direct Play로 CPU 사용량을 최소화할 수 있습니다.
고려 사항 라이브러리 파일 수가 많거나 저장소 I/O 성능이 낮으면 최초 스캔 및 메타데이터 수집 시간이 길어질 수 있습니다.
고려 사항 원본 코덱/해상도/비트레이트/자막을 클라이언트가 지원하지 않으면 서버 트랜스코딩이 발생하며 CPU 또는 GPU 자원이 필요합니다.
고려 사항 Docker 컨테이너의 UID/GID와 미디어 파일의 소유권/권한이 맞지 않으면 라이브러리 스캔 또는 재생에 실패할 수 있습니다.
고려 사항 외부에 서버를 공개할 경우 계정 보안, TLS 인증서, 원격 접근 제한, 정기 업데이트 및 플러그인 관리가 필요합니다.

사전 준비

이 문서는 Docker Engine이 설치된 Linux 서버를 기준으로 작성했습니다.

  1. Docker Engine 및 Docker Compose Plugin 설치
  2. 미디어 파일 저장 경로 준비
  3. Emby 설정 데이터 저장 경로 준비
  4. 컨테이너가 읽을 수 있도록 미디어 디렉터리 권한 확인
  5. 외부 접근이 필요하다면 도메인, HTTPS 인증서, 리버스 프록시 구성 계획 수립

예시 디렉터리 구조는 다음과 같습니다.

/data/emby/
├── config/       # Emby 서버 설정, 데이터베이스, 메타데이터
├── cache/        # 선택 사항: 캐시 및 트랜스코딩 임시 데이터
└── contents/     # 영화, 드라마, 음악 등 실제 미디어 파일

Info

config 디렉터리는 Emby의 핵심 설정과 라이브러리 정보를 포함하므로 정기 백업을 권장합니다.


컨테이너 기반의 설치 작업

Docker Compose로 설치하기

  1. 운영 환경에서는 latest tag 대신 검증한 이미지 버전을 고정해서 사용하는 것을 권장합니다. 새 버전은 테스트 환경 또는 백업 후 검증을 거쳐 반영하세요.

  2. 먼저 미디어 파일 소유자와 그룹 ID를 확인합니다.

    $> id -u <media-user>
    $> id -g <media-group>
    
    # 또는 파일/디렉터리의 소유권 확인
    $> ls -ln /data/emby/contents
    

  3. 예를 들어 UID와 GID가 모두 1000이라고 가정하고 docker-compose.yaml 파일을 작성합니다.

    services:
      emby:
        image: emby/embyserver:<검증한_버전>
        container_name: emby
        restart: unless-stopped
    
        ports:
          - "8096:8096"
    
        environment:
          TZ: Asia/Seoul
          UID: "1000"
          GID: "1000"
    
        volumes:
          - /data/emby/config:/config
          - /data/emby/contents:/data:ro
    
        devices:
          # Intel 또는 AMD iGPU 기반 하드웨어 트랜스코딩을 사용할 경우 검토
          # - /dev/dri:/dev/dri
    
  4. 컨테이너를 시작합니다.

    $> docker compose up -d
    $> docker compose ps
    $> docker compose logs -f emby
    

  5. 공식 Docker 이미지는 UID, GID, 그리고 필요한 경우 추가 그룹 권한을 위한 GIDLIST를 지원합니다.

  6. 특히 VAAPI/NVDEC/NVENC 등의 하드웨어 가속을 구성할 때는 렌더링 디바이스에 접근할 수 있도록 적절한 추가 그룹 ID 설정이 필요할 수 있습니다. 자세한 내용은 Emby 공식 Docker Hub 이미지 문서를 참고하세요.

docker run 방식

  1. Docker Compose를 사용하지 않는다면 다음과 같이 실행할 수 있습니다.
    $> docker run -d \
      --name emby \
      --restart unless-stopped \
      -p 8096:8096 \
      -e TZ=Asia/Seoul \
      -e UID=1000 \
      -e GID=1000 \
      -v /data/emby/config:/config \
      -v /data/emby/contents:/data:ro \
      emby/embyserver:<검증한_버전>
    

Info

cpu / memory 같은 자원 제한은 모든 환경에 필수는 아닙니다. 여러 사용자의 동시 트랜스코딩을 제한하거나 다른 워크로드를 보호해야 하는 환경에서 서버 사양과 사용 패턴을 고려해 설정하세요.


초기 설정과 라이브러리 등록

  1. 웹 브라우저에서 다음 주소로 접속합니다.

    http://서버IP:8096/
    

  2. 예를 들어 Docker 호스트의 8096 포트를 8800으로 매핑했다면 다음과 같이 접속합니다.

    http://서버IP:8800/
    

  3. 최초 실행 시 표시되는 설정 마법사에서 언어, 관리자 사용자명, 비밀번호를 직접 생성합니다.

Warning

기본 관리자 계정이나 기본 비밀번호를 전제로 운영하지 마세요.

  1. 관리자 계정으로 로그인한 후 우측 상단 설정 메뉴로 이동합니다.

  2. 서버 → 라이브러리에서 새 라이브러리를 선택합니다.
    img

  3. 콘텐츠 유형을 선택합니다. 예를 들어 영화, TV 프로그램, 음악, 사진 등으로 분리하면 메타데이터 인식과 탐색 품질이 좋아집니다.

  4. 컨테이너 내부의 미디어 경로를 선택합니다.

    1. 위 예시처럼 호스트의 /data/emby/contents 를 컨테이너의 /data 에 연결했다면, Emby 화면에서는 /data 경로를 선택해야 합니다.
      image.png
  5. 라이브러리 스캔이 완료되면 콘텐츠와 메타데이터를 확인합니다.
    image.png

  6. 콘텐츠를 선택하여 재생합니다.
    image.png


운영 및 보안 권장사항

외부 공개 전 확인 사항

  1. 내부망 전용 서버라면 Emby의 원격 접속을 비활성화합니다.
  2. 외부 접속이 필요하다면 HTTP 포트를 인터넷에 직접 공개하기보다 리버스 프록시와 HTTPS를 구성합니다.
  3. Emby는 서버 네트워크 설정에서 원격 접속 허용 여부와 허용/차단할 IP 또는 대역을 설정할 수 있습니다.
  4. 공개 서버는 강력한 비밀번호를 사용하고, 불필요한 관리자 계정을 제거하거나 권한을 최소화합니다.
  5. 플러그인은 신뢰할 수 있는 출처에서만 설치하고, 설치 전 유지보수 상태와 권한 범위를 확인합니다.
  6. /config 디렉터리는 계정/라이브러리/설정 정보가 포함되므로 주기적으로 백업합니다.
  7. 이미지 업데이트 전에는 설정 백업 후 테스트 또는 변경 내역 검토를 권장합니다.
  8. Emby 공식 문서도 내부망 전용인 경우 원격 접근을 끄고, 외부 연결에는 HTTPS 사용을 권장합니다.
  9. 리버스 프록시를 사용하는 경우에는 서버 네트워크 설정의 보안 연결 모드를 Handled by reverse proxy에 맞게 구성해야 합니다.

Reference




작성일: 2026년 7월 15일 ,  마지막 업데이트: 2026년 8월 29일