見出し画像

テレビ録画メディアサーバー構築入門(第14回)

ダッシュボード

Jellyfin, EPGStation, Mirakurun, Ntfyと、同一サーバーの異なるポートを使うアプリを複数インストールしてきました。どれもWebアプリなので、一つの場所からリンクをクリックしてアクセスできるような、ダッシュボード(ホームページ)があると便利になる。まさに、その名のとおり、homepageというツールがあります。

インストール

まず、サーバーのIPアドレス(tailscale)を確認します。WebブラウザでTailscaleのダッシュボードにログインすることで、ネットワークに参加している各デバイスに割り当てられたIPアドレスが確認できます。以下では、100.x.y.z とします。

ホームディレクトリに移動して、設定ファイルの場所を作成して、インストールします。HOMEPAGE_ALLOWED_HOSTSのアドレス 100.x.y.zはサーバーのアドレスです。

cd
mkdir -p homepage/config 
sudo docker run -d --name homepage -e HOMEPAGE_ALLOWED_HOSTS=100.x.y.z:3000  -e PUID=1000 -e PGID=1000 -p 3000:3000 -v ./homepage/config:/app/config --network="host" --restart unless-stopped  ghcr.io/gethomepage/homepage:latest

さらに、第10回 ntfy.sh の設定で用いたサーバー名 (tailnet only) を確認します。以下では、https://fearow22.taile153a7.ts.net として、ntfyの項目に記載しています。

設定ファイル ~/homepage/config/services.yaml を以下のようにする。
最初の行 - fearow22: は、自サーバー名
数か所の href: http://100.x.y.z … は、自サーバーアドレス

---
# For configuration options and examples, please see:
# https://gethomepage.dev/configs/services/

- fearow22:
    - jellyfin:
        icon: jellyfin.png
        href: http://100.x.y.z:8096/
        description: 
        widget:
          type: jellyfin
          url: http://127.0.0.1:8096
          key: 7b663067ba9040f791a0a551056d0cc6 #要変更
          enableBlocks: true # optional, defaults to false
#          enableNowPlaying: false # optional, defaults to true
          enableUser: true # optional, defaults to false
          showEpisodeNumber: true # optional, defaults to false
#          expandOneStreamToTwoRows: false # optional, defaults to true

    - epgstation:
        icon: https://assets.st-note.com/img/1751109675-nCc2aTtduIWEP7by81A5wRVz.png
        href: http://100.x.y.z:8888/
        description: 
        widget:
          type: customapi
          url: http://127.0.0.1:8888/api/reserves?isHalfWidth=false
          refreshInterval: 60000 # optional - in milliseconds, defaults to 10s
          method: GET # optional, e.g. POST
          display:
          mappings:
          - field:
              reserves:
                0: name 
            label: 
          - field:
              reserves:
                1: name 
            label: 
          - field:
              reserves:
                2: name 
            label: 
    - 録画中:
        widget:
          type: customapi
          url: http://127.0.0.1:8888/api/recording?isHalfWidth=false&type=conflict
          refreshInterval: 3600000 # optional - in milliseconds, defaults to 10s
          method: GET # optional, e.g. POST
          display:
          mappings:
          - field:
              records:
                0: name 
            label: 
          - field:
              records:
                1: name 
            label: 
          - field:
              records:
                2: name 
            label: 
    - 録画済み:
        widget:
          type: customapi
          url: http://127.0.0.1:8888/api/recorded?isHalfWidth=false&type=conflict
          refreshInterval: 3600000 # optional - in milliseconds, defaults to 10s
          method: GET # optional, e.g. POST
          display:
          mappings:
          - field:
              records:
                0: name 
            label: 
          - field:
              records:
                1: name 
            label: 
          - field:
              records:
                2: name 
            label: 
    - 競合:
        widget:
          type: customapi
          url: http://127.0.0.1:8888/api/reserves?isHalfWidth=false&type=conflict
          refreshInterval: 3600000 # optional - in milliseconds, defaults to 10s
          method: GET # optional, e.g. POST
          display:
          mappings:
          - field:
              reserves:
                0: name 
            label: 
          - field:
              reserves:
                1: name 
            label: 
          - field:
              reserves:
                2: name 
            label: 

    - metube:
        icon: metube.png
        href: http://100.x.y.z:8081/     

    - mirakurun:
        icon: https://assets.st-note.com/img/1751109684-ogPh76t9JIj2QHKAW3ylfacs.png
        href: http://100.x.y.z:40772/
        description:

    - ntfy:
        icon: ntfy.png
        href: https://fearow22.taile153a7.ts.net/
        description: 

ここで、jellyfin のAPI key:

key: 7b663067ba9040f791a0a551056d0cc6 #要変更

は、jellyfinクライエントの「ダッシュボード」「APIキー」から 「+」でアプリ名(homepage … API キーを識別するための人が判読できる名前。この設定は機能には影響しません。)を入力して表示される長い記号列を使用する。

「ホームページ」には、ブラウザから http://100.x.y.z:3000 よりアクセスする。

画像
パソコン表示


画像
スマホ表示



画像
画像

いいなと思ったら応援しよう!

ピックアップされています

全自動TV録画 視聴環境構築

  • 26本

コメント

コメントするには、 ログイン または 会員登録 をお願いします。
テレビ録画メディアサーバー構築入門(第14回)|takya
word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word word

mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1
mmMwWLliI0fiflO&1