2021年版 15分でできる自宅録画サーバー(Ubuntu 20.04)

<2022年5月25日>Ubuntu 22.04で動作確認した、新しいバージョンを公開しました。

docker版EPGStation v2が2021年初頭にリリースされてから、とてもインストールが簡単になりました。

それでも、Linux初心者にはWindows10と同じレベルとは言えません。

そこで、さらに簡単にインストールできる方法を考えてみました。

その結果を報告しましょう。

15分でできる自宅録画サーバー

インストールするために行うことは、以下2点です。

  1. インストール用ファイルをダウンロードして保存する。
  2. インストール用ファイルの中の6つのシェルスクリプトを手動で実行する。
    (およそ15分間)

これだけで、EPGStation v2が使えるようになります。

今までインストールのために、
「どれだけ時間を無駄にしてきたことか!」
と心の中で叫んでしまいました。

それでは以下、「前準備」、「インストール」、を順を追って説明していきます。

前準備

インストールするために必要なハードウェアをおさらいしましょう。

以下のハードウェアが必要となります。

  1. B-CASカード
  2. USB接続カードリーダー(例えば、SCR3310v2.0)
  3. PLEX社製TVチューナー
    (PX-Q3PE4, PX-Q3U4,PX-W3PE4, PX-W3U4)
  4. PC (Ubuntu 20.04 Desktopをインストールしたもの)
  5. SSD (120GB~)
    15分でインストール完了するために必要。HDDの場合は、15分では終わらないでしょう。
    Ubuntu Desktop 日本語Remixは、537MBしかないので、64GBでも問題なくインストール可能。
    ただし、2021年現在、入手しやすく安価なSSDは120GB以上となっています。

具体的な構成例は、以下の写真のとおりです。

さらに、前提条件は、以下のとおりです。

  1. 電源が供給できる
  2. アンテナ入力が供給できる
  3. LAN接続ができ、インターネットへアクセスできる
  4. 仮想マシン上のUbuntu 20.04は、使わないこと。
    (仮想マシン上のdockerの動作について未検証。
    さらに、仮想マシンでは動作が遅いし、その代わりにdockerを使っている。
    だから、仮想マシン上でdockerは、あまり価値がない。)

上記が、インストールの前提条件です。

1つだけ注意点。地上波受信チャンネルが東京になっています。
東京以外で受信されている場合、インストール後Mirakurunで地上波受信チャンネルを修正する必要があります。

インストール

以下の手順で進めてください。

注意点が一つあります。本手順は、Ubuntu 20.04を新しくインストールした状態で動作確認しています。
既に、dockerやtunerのドライバがインストールされている状態では、異なる挙動があるかもしれません。

  1. ホームディレクトリにtempディレクトリを作成します。
    euser:~$ mkdir ~/temp
    
  2. ファイルをダウンロードしてください。
    <2022年5月25日>Ubuntu 22.04で動作確認した、新しいバージョンを公開しました。
  3. ダウンロードしたファイルをtempディレクトリの中に展開してください。
    euser:~$ cd ~/temp
    euser:~temp$ ls
    install-epgstation
    euser:~temp$
  4. さらに中のscriptディレクトリへ移動します。
    euser:~temp$ cd install-epgstation/script
    euser:~temp/install-epgstation/script$
  5. scriptディレクトリの中身を確認します。
    euser:~/temp/install-epgstation/script$ ls -la
    合計 76
    drwxrwxr-x 2 euser euser 4096  3月 29 21:51 .
    drwxrwxr-x 3 euser euser 4096  3月 29 21:51 ..
    -rw-rw-r-- 1 euser euser  200  3月 28 16:52 1-preprocess.sh
    -rw-rw-r-- 1 euser euser   73  3月 24 20:27 2-carddriver.sh
    -rw-rw-r-- 1 euser euser  104  3月 29 04:08 3-checkcard.sh
    -rw-rw-r-- 1 euser euser  429  3月 24 04:27 4-tunerdriver.sh
    -rw-rw-r-- 1 euser euser  120  3月 24 04:32 5-checktuner.sh
    -rw-rw-r-- 1 euser euser 1014  3月 28 01:06 6-install-q.sh
    -rw-rw-r-- 1 euser euser 1018  3月 28 01:06 6-install-w.sh
    -rw-rw-r-- 1 euser euser 8261  3月  4 03:47 channels.yml
    -rw-rw-r-- 1 euser euser  210 12月 26  2019 dkms.install
    -rw-rw-r-- 1 euser euser  117 12月 26  2019 dkms.uninstall
    -rw-rw-r-- 1 euser euser 1083  3月 24 18:30 new-MirakurunDockerfile
    -rw-rw-r-- 1 euser euser 2165  3月 28 16:58 new-docker-compose-w.yml
    -rw-rw-r-- 1 euser euser 2341  3月 24 18:32 new-docker-compose.yml
    -rw-rw-r-- 1 euser euser  610  3月 28 16:59 tuners-w.yml
    -rw-rw-r-- 1 euser euser 1224  3月  4 03:43 tuners.yml
    euser:~/temp/install-epgstation/script$
  6. 番号が付いたシェルスクリプトを順番に実行していきます。

シェルスクリプトの実行

  1. 1-preprocess.sh
    euser:~/temp/install-epgstation/script$ sh 1-preprocess.sh
    

    インストールの前処理を行います。
    主に、dockerやdocker-composeをインストールします。

  2. 2-carddriver.sh
    euser:~/temp/install-epgstation/script$ sh 2-carddriver.sh
    

    カードリーダーのドライバーをインストールします。

    インストール終了後、カードが認識できていることを表示で確認し、Ctrl+Cを押して終了します。

  3. 3-checkcard.sh
    euser:~/temp/install-epgstation/script$ sh 3-checkcard.sh
    

    ホスト上のカードリーダーのpcscdを停止します。
    inactive(dead)が確認できたら、Ctrl+Cを押して終了します。

  4. 4-tunerdriver.sh
    euser:~/temp/install-epgstation/script$ sh 4-tunerdriver.sh
    

    PLEXチューナーの非公式ドライバをインストールします。
    終了後、自動的にリブートします。

  5. 5-checktuner.sh
    euser:~/temp/install-epgstation/script$ sh 5-checktuner.sh
    

    PLEXチューナーの非公式ドライバが正常にインストールされたことを確認します。

    euser:~/temp/install-epgstation/script$ sh 5-checktuner.sh
    crw-rw-r-- 1 root video 239, 0  3月 29 17:48 /dev/px4video0
    crw-rw-r-- 1 root video 239, 1  3月 29 17:48 /dev/px4video1
    crw-rw-r-- 1 root video 239, 2  3月 29 17:48 /dev/px4video2
    crw-rw-r-- 1 root video 239, 3  3月 29 17:48 /dev/px4video3
    crw-rw-r-- 1 root video 239, 4  3月 29 17:48 /dev/px4video4
    crw-rw-r-- 1 root video 239, 5  3月 29 17:48 /dev/px4video5
    crw-rw-r-- 1 root video 239, 6  3月 29 17:48 /dev/px4video6
    crw-rw-r-- 1 root video 239, 7  3月 29 17:48 /dev/px4video7
    euser:~/temp/install-epgstation/script$
    

    もし、ドライバが表示されない場合は、原因を調査します。
    解決しない場合は、先に進めません。
    ここまでおよそ5分です。

  6. 6-install-q.sh 6-install-w.sh
    euser:~/temp/install-epgstation/script$ sh 6-install-q.sh
    euser:~/temp/install-epgstation/script$ sh 6-install-w.sh
    
    (2021年6月21日9時30分追記)以下の修正を行い、ダウンロードファイルを修正しました。
    ダウンロードしてそのまま使用できます。
    
    (2021年6月21日4時30分追記)epgstationのインストールで一部変更がありました。
    6-install-q.sh
    6-install-w.sh
    で修正を加える必要があります。
    
    cp epgstation/config/config.sample.yml epgstation/config/config.yml
    
    cp epgstation/config/config.yml.template epgstation/config/config.yml
    
    に変更してください。

    最後に、PLEX社製TVチューナー対応docker版mirakurun、mysql、epgstationをインストールします。
    PX-Q3PE4、PX-Q3U4の場合、6-install-q.sh
    PX-W3PE4、PX-W3U4の場合、6-install-w.sh
    実行後、およそ10分で完了します。

インストール完了後

インストール完了後、ブラウザを開きます。
以下の2つを開きます。

  1. localhost:40772    Mirakurun
  2. localhost:8888      EPGStation
    EPGStationで番組表を開きます。

BSの番組表の方が、地デジの番組表より早く表示されます。
地デジの1週間後の番組表が表示されるまで、およそ20分かかります。

ここまでくれば、録画予約など可能です。

ただし、便利に使うためには、いくつか後処理が必要となります。
以下に、続く・・・・

サーバーを再起動した際の注意

サーバーを再起動した場合、必ずブラウザでEPGStationが動いていることを確認してください。
ブラウザで「localhost:8888」です。
docker-composeは、再起動時docker-mirakurun-epgstationを起動する設定になっていますが、なぜか動いていないことがあります。

EPGStationが動いていない場合は、「docker ps」コマンドでコンテナの状況を確認してみます。

euser:~$docker ps
CONTAINER ID        IMAGE                                    COMMAND                  CREATED             STATUS                  PORTS                                              NAMES
d534cefaece8        docker-mirakurun-epgstation_epgstation   "npm start"              4 days ago          Up Less than a second   0.0.0.0:8888-8889->8888-8889/tcp                   epgstation-v2
4cc41393abf4        mariadb:10.4                             "docker-entrypoint.s…"   4 days ago          Up Less than a second   3306/tcp                                           mysql-epgstation-v2
a05bc7c61665        chinachu/mirakurun                       "docker-entrypoint.s…"   4 days ago          Up Less than a second   0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp   mirakurun-3.5.0

このコマンドを実行した瞬間に、すべてが起動しているようです。
その後に、ブラウザで確認するとMirakurunもEPGStationも動いています。

「docker ps」コマンドで確認しても、コンテナーが何も動いていない場合もあります。
その時は、以下のコマンドでコンテナー起動してください。

euser:~$cd ~/git/docker-mirakurun-epgstation
euser:~/git/docker-mirakurun-epgstation$docker-compose up -d

 

参考サイト

本記事を書くために、以下のサイトを参考にさせていただきました。

関連記事

コメント26件

  • Ubuntu初心者 より:

    大変分かりやすいブログでとても参考なりありがとうございます。
    一点お聞きしたい事があります。
    localhost:8888でサーバーが見つかりませんと出てしまいます。コンテナの状況を確認するとEPGstationのportは何も表示がありません。考えられる原因と対策が有ればご教示願います。

  • simplelife0530 より:

    Ubuntu初心者さん、うまく動かないようですね。
    localhost:40772でmirakurunは見えるのでしょうか?
    次のコマンドの結果はどうなってますか?
    docker ps

  • Ubuntu初心者 より:

    mirakurunは見れます。
    docker psの結果は下記です。

    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    684ebaa404c2 docker-mirakurun-epgstation_epgstation "npm start" 17 hours ago Restarting (1) 9 seconds ago epgstation-v2
    30daeb258985 chinachu/mirakurun "docker-entrypoint.s…" 17 hours ago Up 27 minutes 0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp mirakurun-3.5.0
    dfea24364e73 mariadb:10.4 "docker-entrypoint.s…" 17 hours ago Up 27 minutes 3306/tcp mysql-epgstation-v2

  • simplelife0530 より:

    以下が、正常な場合です。
    $ docker ps
    CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
    16683418ee70 docker-mirakurun-epgstation_epgstation “npm start” 2 weeks ago Up 10 days 0.0.0.0:8888-8889->8888-8889/tcp epgstation-v2
    c24a282da795 mariadb:10.4 “docker-entrypoint.s…” 2 weeks ago Up 10 days 3306/tcp mysql-epgstation-v2
    d810da2eb7f7 chinachu/mirakurun “docker-entrypoint.s…” 2 weeks ago Up 10 days 0.0.0.0:9229->9229/tcp, 0.0.0.0:40772->40772/tcp mirakurun-3.5.0

    epgstationのstatusが問題ですね。 restartingになってますね。portもありません。
    私も経験したことないので、わかりません。mirakurunもmysplも正常みたいですから、epgstationに原因があることは間違いありません。まずは、docker-compose downとdocker-compose up -dを実行してみてはどうでしょうか。

  • simplelife0530 より:

    Ubuntu初心者さん、追加でいくつか教えて下さい。
    使っているPLEX社のチューナーの型番を教えて下さい。PX-Wの方は、実際にインストールで確かめていないので、確認してみましょうか。
    それから、mirakurunのチャンネルは、東京仕様なので、地上波の設定は変更が必要かもしれません。mirakurunでチューナー、チャンネルは正常か確認ください。

  • Ubuntu初心者 より:

    docker-compose downとdocker-compose up -dをやってもエラーしかでません。
    チューナーの型番はpx-w3re4です。

    チャンネル設定を変更してもダメでした。
    ubuntuの再インストールをしたのですが、それが原因ですかね?

    ちなみ一番最初はepgstationも起動し、地デジBSともにWEB視聴は可能でした。

  • simplelife0530 より:

    Ubuntu初心者さん、

    >ubuntuの再インストールをしたのですが、それが原因ですかね?

    ん? 意味がわかりません。再インストールしたということは、ゼロからインストールしなおしたということですよね。、そこで問題が生じたんでしょうか?
    docker-compose pull
    docker-compose build –no-cache
    docker-compose up -d
    を実行して、だめなら、すべて最初からやりなおした方が速いと思います。全部やりなおしても、30分程度でできると思います。

  • 別の初心者 より:

    コメント失礼いたします。

    PX−W3U4を使用してトライしていますが、localhost:8888が表示されません。先の方と同様、epgstationのstatusがrestartを繰り返しているようで、portもない状態です。
    docker-compose pull
    docker-compose build –no-cache
    docker-compose up -d
    を実行しても同じ状態になってしまいます。

    Intel環境にESXi7.0U2を入れ、Ubuntu20.04Remixを仮想マシンとし、カードリーダーやチューナーのパススルー設定を行っています。スクリプトは5までは問題ないように見えます。しかしながら、仮想マシンを破棄してまっさらな状態から始めても、同じ状態になってしまうため困り果てています。

    解決策等あればご教示いただけると有り難いです。
    よろしくお願いいたします。

  • simplelife0530 より:

    別の初心者さん、仮想マシンですか。VMware上でdockerが動くんでしょうか?
    検索しても、動いた事例を見つけられませんでした。
    私が動作確認しているのは、仮想マシンではないので、わかりません。
    それに仮想マシンでdockerというのは、気持ち悪くありませんか?好みにもよりますが。
    それでなくても動作が遅くなるし、ドライバがきちんと動くんでしょうか? 疑問だらけです。
    これは、実証するしかないのですが、インストールして駄目なら、仮想マシンは駄目だと思います。
    私自身は、仮想マシンを使ったインストールは、やめたほうがいいと思います。動いても、遅いと思いますし、
    そのためにdockerがあるのでは?

    VMware社にdocker,docker-composeはきちんと動作するのか聞いてみれば、解決するかもしれませんね。

  • 別の初心者 より:

    simplelife0530様

    ご返答ありがとうございます。
    仮想環境+dockerで録画環境構築してる方がちらほらいること、
    私自身が仮想上で別のOSをすでに運用中であること、
    知人のエンジニアさんからも「仮想マシンでコンテナを動かすのはよくある構成」
    と言われたこと等から、仮想環境での構築にトライしています。

    こちらのブログの手順が最も簡単そうだったのですが、
    やはり実際の環境と仮想環境では勝手が異なるようですね。
    もう少し調べてみてダメなら環境の見直しを検討いたします。

  • simplelife0530 より:

    別の初心者さん、

    >仮想環境+dockerで録画環境構築してる方がちらほらいること、

    いるんですね。確かにmirakurun + epgstationだけなら、そこそこ動くかもしれません。

    dockerまではいいとして、docker-composeも使っているので、そこで引っかかるのかもしれません。

    ffmpegを使って、mp4に変換するなら、仮想マシンは使わない方がいいと私は思います。

  • h265 より:

    simplelife0530様、
    毎年参考に録画サーバー作らせていたいております。
    私の環境でもEPGstationが正常に立ち上がらなずloalhost:8888に接続しても繫がらなかったのですが、
    一応の解決策を見つけたので他の方の参考にコメント残させていただきます。

    手順通りにUbuntu 20.04のクリーンインストール状態から作業進めましたが、
    シェルスクリプトの6番が完了しなかったため調べたところ、
    私の環境では
    epgstation/config/config.sample.yml

    epgstation/config/config.yml.template
    という名前で生成されており、EPGstationのconfigが正常に作成できず立ち上がらなかった模様です。
    ファイル名を置き換えてシェルスクリプトを走らせたところ正常に構築できました。

  • simplelife0530 より:

    h265さん、

    ご連絡ありがとうございます。
    今、docker-mirakurun-epgstationを参照したら、

    cp epgstation/config/config.yml.template epgstation/config/config.yml

    に変わっていますね。
    おそらく最近変更したのでしょう。本日中には変更します。

  • MR.ROBOT より:

    はじめまして。
    こちらのサイトを参考に本当に15分で構築ができてしまいました。
    私が使用したチューナーは PX-W3PE5 なのですが全く問題なく構築できました。
    非常に助かりました。ありがとうございます。

    私も記事を書こうと思うのですが。こちらのサイトのリンクを貼ってもよろしいでしょうか?
    ぜひお願いいたします。

  • simplelife0530 より:

    MR.ROBOTさん、

    コメントありがとうございます。
    PX-W3PE5で大丈夫でしたか。

    非公式ドライバは、以下の機種に対応しているようです。
    PX-W3U4
    PX-Q3U4
    PX-W3PE4
    PX-Q3PE4
    PX-W3PE5
    PX-Q3PE5
    PX-MLT5PE
    PX-MLT8PE

    リンクを貼るのは、何も問題ありません。
    よろしくお願いいたします。

    私は、昨日PX-MLT8PEを購入しました。
    問題ないか、確認する予定です。

  • simplelife0530 より:

    Ubuntu初心者さん、

    最近気がついたのですが、5月15日にepgstationのconfig設定が変更されていました。
    5月17日にepgstationが正常に動かないという報告を受けたわけですので、この変更が影響していたと考えられます。
    6月21日に対処しましたので、再度試して報告いただけると助かります。

  • simplelife0530 より:

    別の初心者さん

    仮想環境が原因ではなかったと、今頃気が付きました。
    5月15日にepgstationのconfig設定が変更されていました。
    そのため、epgstationが動かない状態になっていました。
    別の方から、報告を受け、修正したところ、epgstationが問題なくインストールして動くことが確認できました。
    もう2か月も経っていますが、もしできるなら、現在の修正したスクリプトで試し、報告いただけると助かります。
    そうすれば、仮想環境でも問題ないことをアナウンスできます。
    よろしくお願いいたします。

  • Ubuntu初心者 より:

    simplelife0530さん

    久しぶりにブログを見に来ましたが、改善がされており今度は構築できそうなので今日の夜にでも最初からやり直してみたいと思います。

  • simplelife0530 より:

    Ubuntu初心者さん

    よろしくお願いします。既にインストールしているならば、手動で
    cp config/config.yml.template config/config.yml
    するだけでも、動くと思います。

    epgstationのconfig.ymlがなかっただけです。

  • Raspi初心者 より:

    はじめまして

    Linux(RaspberryPi4B)でDockerでない環境でなんとか
    Mirakurun+Chinachu
    環境が構築できた状況のモノです

    EPGStationはトライしているもののうまくいかず、理由はチューナーが
    さんぱくん外出
    だからかなぁ、と考えております

    拝見させていただきました内容もPLEXチューナーでdev使用の様ですのでそのままではうまくいきそうもなく。
    何か「さんぱくん外出」でインストールする方法がありましたらご教授いただけますと幸いです

    よろしくお願いいたします。

  • simplelife0530 より:

    Raspi初心者さん

    「さんぱくん外出」も(RaspberryPi4Bも使ったことがないので、難しいですね。
    両方持っている人にあたってください。

  • Raspi初心者 より:

    simplelife0530さん

    ありがとうございました。なかなか情報無く厳しいですね;;

  • yup より:

    こんにちは、初めまして。

    同じようなサイトを参考にしてサーバーを作っている初心者ですが、こちらで作られているスクリプトを使わせていただき非常に感銘を受けました、まさにsimple life。

    一つお聞きしたいのですが、最後のところでepgstationのDockerfileがないと怒られてしまいます。
    cannnot locate specified Dockerfile epgstation

    4月に小茂根さんのサイトを参考に構築して動作しているのですが、それを見ると
    /docker-mirakurun-epgstation/epgstation/

    debian.Dockerfile

    Dockerfile
    にリネームされている?ようなので手動で配置したところ、起動まではしますがブラウザからアクセスできません。
    (安全な接続ができませんでした。
    192.168.1.5:8888への接続中にエラーが発生しました。SSL received a record that exceeded the maximum permissible length.
    エラーコード:SSL_ERROR_RX_RECORD_TOO_LONG)

    https://calpo.hatenadiary.org/entry/20110920/p1
    一応このページにたどり着いたのですが、手に負えません。。。

    40772の方は問題ありません。
    何かご教示いただければと思います。

  • simplelife0530 より:

    yupさん、はじめまして。

    自宅内LANであれば、SSLは使わなくても、とりあえずいいと思います。
    まず、epgstationがインストールされているマシンのブラウザで、「http://localhost:8888」で接続できるか確認してください。
    あるいは、別のマシンから「http://192.168.1.5:8888」でもいいです。
    現状は、「https://192.168.1.5:8888」でアクセスしているということですね。http://とhttps://の違いは大きいですから。

  • simplelife0530 より:

    yupさん、

    先程気がついたのですが、以下のエラーは8月23日時点で発生していたようです。
    >>一つお聞きしたいのですが、最後のところでepgstationのDockerfileがないと怒られてしまいます。
    >>cannnot locate specified Dockerfile epgstation
    docker-mirakurun-epgstationのdockerファイルに変更がありました。

    9月2日に修正したので、もし解決していなければ、使ってみてください。

  • simplelife0530 より:

    Ubuntu初心者さん、
    8月中旬くらいに、docker-mirakurun-epgstationに変更があったため、6番目のスクリプトが動かない状態になっていました。
    9月2日に修正版を出したので、もし必要な時はお試しください。

  • コメントを残す

    メールアドレスが公開されることはありません。 が付いている欄は必須項目です

    このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください