Closed10

QNAP NASとPX-Q1UDで録画サーバー構築

kajikaji

最近はTVer等で地上波を見ますが、ジブリのシーズンになり、録画をしたいので、久しぶりに録画サーバを構築したいと思います。

構成は以下の通り

  • サーバー: QNAP NAS TS-673A
  • 録画チューナー: PX-Q1UD
  • ICカードリーダー: SCR3310/v2.0

備考

  • 録画チューナーは、高温になると動作が不安定になり、落ちます。そのため、ケースを外して、ICチップにヒートシンクをつけています。ヒートシンクをつけると、動作が安定しているように感じます。
  • 上記の構成だと、3つのチャンネルしか録画/視聴できません。理由は2点あります。
  1. 録画チューナーは、4チューナーですが、B-CASカードの都合上、3チャンネルしか録画/視聴することができない?ため
  2. QNAP NASのVMでは、物理デバイス(USB)は4つまでしか登録できないため
kajikaji

サーバーの構築

Virtualization StationでNAS上に、Ubuntu Server(22.04)を構築します。
この時に、NASのUSBポートに録画チューナー: PX-Q1UD、ICカードリーダー: SCR3310/v2.0を差して、”物理デバイス”の項目で登録します。

kajikaji

OSのバージョン

$ cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"

アップデートとインストール

sudo apt update && sudo apt upgrade -y
sudo apt install unzip

ドライバ関係のインストール

cd ~ && echo 'PX-Q1UDドライバのインストール' && \
wget http://plex-net.co.jp/plex/px-s1ud/PX-S1UD_driver_Ver.1.0.1.zip && \
unzip PX-S1UD_driver_Ver.1.0.1.zip && \
sudo cp PX-S1UD_driver_Ver.1.0.1/x64/amd64/isdbt_rio.inp /lib/firmware/ && 
sleep 0.5 && \
sudo reboot
kajikaji

Dockerのインストール

https://docs.docker.com/engine/install/ubuntu/

# Add Docker's official GPG key:
sudo apt-get update
sudo apt-get install ca-certificates curl
sudo install -m 0755 -d /etc/apt/keyrings
sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg -o /etc/apt/keyrings/docker.asc
sudo chmod a+r /etc/apt/keyrings/docker.asc

# Add the repository to Apt sources:
echo \
  "deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.asc] https://download.docker.com/linux/ubuntu \
  $(. /etc/os-release && echo "$VERSION_CODENAME") stable" | \
  sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
sudo apt-get update
sudo apt-get install docker-ce docker-ce-cli containerd.io docker-buildx-plugin docker-compose-plugin
kajikaji

mirakurun epgstationのインストール

https://github.com/l3tnun/docker-mirakurun-epgstation
以下のコマンドを入力すると、20分後くらいには立ち上がります。

curl -sf https://raw.githubusercontent.com/l3tnun/docker-mirakurun-epgstation/v2/setup.sh | sh -s
cd docker-mirakurun-epgstation
sudo docker compose up -d

動作確認

ブラウザから、http://<サーバーのIP>:8888でアクセスできればOKです。

kajikaji

Cloudflare TunnelとNginx Proxy Manager

外からアクセス+セキュリティを考えて、Cloudflare Tunnelを使ってアクセスします。
ただし、Cloudflare Tunnelを使って直接Epgstationをにアクセスすると、/api/configが取得できないため、間にリバースプロキシを挟みます。
https://scrapbox.io/hiroxto/自宅サーバーでホストしてるアプリをCloudflare_Accessで保護しつつCloudflare_Tunnelで公開する
リバースプロキシには、Nginx Proxy Managerを使います。

kajikaji

Nginx Proxy Managerの設定

https://nginxproxymanager.com/

cd ~ && mkdir  ./nginx-proxy-manager
cd nginx-proxy-manager
touch compose.yaml

compose.yamlに以下を記載

services:
  app:
    image: 'jc21/nginx-proxy-manager:latest'
    restart: unless-stopped
    ports:
      # These ports are in format <host-port>:<container-port>
      - '80:80' # Public HTTP Port
      - '443:443' # Public HTTPS Port
      - '81:81' # Admin Web Port
      # Add any other Stream port you want to expose
      # - '21:21' # FTP

    # Uncomment the next line if you uncomment anything in the section
    # environment:
      # Uncomment this if you want to change the location of
      # the SQLite DB file within the container
      # DB_SQLITE_FILE: "/data/database.sqlite"

      # Uncomment this if IPv6 is not enabled on your host
      # DISABLE_IPV6: 'true'

    volumes:
      - ./data:/data
      - ./letsencrypt:/etc/letsencrypt

dockerで立ち上げる

sudo docker compose up -d

動作確認

ブラウザから、http://<サーバーのIP>:81でアクセスできればOKです。
初期パスワード等は以下のとおりで、ログイン後変更します。

Email:    admin@example.com
Password: changeme

Proxy Hostsから以下の通り追加します。
なお、黒塗りされているForward Hostname/IPは、<サーバーのIP>です。

kajikaji

Cloudflare Tunnelの設定<省略多>

Tunnelsの設定から、Chose your environmentDockerを選択して、インストールすればOKです。

Public hostnameでは以下のように設定すればOKです。

このスクラップは2ヶ月前にクローズされました