tvheadend Docker Container 자동실행

이번에 Intel NUC을 한대 들였습니다. TDP가 10W 밖에 안되는 J5005 CPU가 탑재되어 있어, 전기요금 부담은 적을겁니다. 그동안 NAS로 써왔던 라즈베리와 Odroid C2와는 작별입니다.

덕분에 Synology 사용자들이 주로 사용하는 tvheadend를 간편하게 설치할 수 있는 Docker 이미지를 사용하게 되었습니다. 그동안 써왔던 라즈베리나 Odroid C2는 ARM64 아키텍처라 쓸 수가 없었거든요. 그래서 컨테이너를 생성하는 방법과, systemd로 tvheadend 서비스를 등록해 NAS 부팅시 자동으로 실행하는 절차를 간단히 기록하고자 합니다.

Docker Container 생성

IPTV의 데이터는 IGMP로 전송되기 때문에, 네트워크는 host 방식으로 설정해야 합니다. 그리고 녹화/설정/EPG을 위한 디렉토리를 /var/lib/tvheadend 하위 디렉토리에 마운트하게끔 했습니다.

docker run -d \
    --name=tvheadend \
    --network=host \
    -v /var/lib/tvheadend/recordings:/recordings \
    -v /var/lib/tvheadend/config:/config \
    -v /var/lib/tvheadend/epg2xml:/epg2xml \
    -e PUID=0 \
    -e PGID=0 \
    wiserain/tvheadend:stable

systemd 자동실행 등록

컨테이너가 생성되어 채널과 EPG 설정이 모두 끝나면 /etc/systemd/system/tvheadend.service 파일에 아래의 내용을 넣고, 자동으로 실행되게끔 systemctl enable tvheadend 명령어를 입력합니다.

[Unit]
Description=tvheadend
Requires=docker.service

[Service]
ExecStart=/usr/bin/docker start -a tvheadend
ExecStop=/usr/bin/docker stop tvheadend

[Install]
WantedBy=multi-user.target

Yoonbae Cho

Hobbyist Programmer and Photographer

South Korea http://xcv.kr