DashyとHomer: サービス管理のための集中型HomeLabダッシュボード

HomeLab tutorial - IT technology blog
HomeLab tutorial - IT technology blog

コンテキストと必要性: HomeLabオーケストレーターの必須事項

HomeLab環境は、あっという間に多様なサービスの集合体へと拡大します。メディアサーバー、Dockerレジストリ、ネットワーク接続ストレージ、そしてこれらすべてを繋ぐスマートホームハブなどが稼働しているかもしれません。

各サービスは非常に貴重ですが、それぞれ独自のウェブインターフェース、IPアドレス、ポートを持っています。この日常的な複雑な管理は、ブックマークや覚えにくいIPアドレスの精神的なカタログを維持することを強いられる、本当に面倒な作業になることがあります。これは効率を低下させ、不必要な摩擦を生み出します。

私自身、この増大する複雑さと6ヶ月間格闘しました。ブラウザのタブを頻繁に切り替え、特定のポート番号を覚えようとし、散在する情報源からHomeLab全体の健全性を繋ぎ合わせていました。統一されたビューの必要性は明白でした。

私は、すべての重要なサービスがワンクリックでアクセスできる集中型ダッシュボードを求めていました。そのようなダッシュボードは、迅速なアクセスを提供するだけでなく、各サービスの稼働状況を瞬時に把握できるスナップショットも提供します。これは単なる利便性の問題ではなく、根本的に自分のセットアップに対するより良い制御と明確性を得るためです。

私の探求は、2つの著名なオープンソースのセルフホスト型ダッシュボードアプリケーション、DashyとHomerへと私を導きました。どちらもサービスへのリンクと情報を集約するように設計されています。これらのソリューションのいずれかを選択し、実装することは、単に別のソフトウェアをインストールすることだけではありません。

それは、HomeLabとの対話方法における根本的な変化です。私の実践的な経験に基づくと、この集中型コマンドセンターを作成することは、HomeLab管理に真剣に取り組むすべての人にとって重要なステップです。これにより、認知的負荷が大幅に軽減され、診断が簡素化され、最終的にHomeLabの運用がはるかに楽しくなります。

インストール: Docker Composeで秩序をもたらす

多くのHomeLab愛好家にとって、DockerとDocker Composeはアプリケーションをデプロイするための好ましい方法となっています。このアプローチは、一貫性、分離性を提供し、更新を簡素化します。都合の良いことに、DashyもHomerもDockerを完全にサポートしており、インストールプロセスは非常に簡単です。

Dashyのインストール

Dashyは、その洗練されたインターフェースと広範なカスタマイズオプションで際立っており、ダッシュボードとして優れた選択肢です。これを起動して実行するには、通常docker-compose.yamlファイルを使用します。まず、Dashy専用の新しいディレクトリを作成します。次に、以下の内容をdocker-compose.ymlファイルに追加します。

version: '3.8'
services:
  dashy:
    container_name: dashy
    image: lissy93/dashy:latest
    ports:
      - 8080:80
    volumes:
      - ./appdata/dashy/conf.yml:/app/public/conf.yml
    environment:
      - NODE_ENV=production
    restart: unless-stopped

この設定により、Dashyがホストマシンのポート8080に公開されます。ボリュームマウント./appdata/dashy/conf.ymlは重要なコンポーネントです。ここにカスタム設定が保存され、コンテナを更新または再作成しても設定が永続化されます。ファイルを保存したら、ターミナルでディレクトリに移動し、以下のコマンドを実行します。

docker compose up -d

コンテナが起動すると、Dashyはブラウザのhttp://your-homelab-ip:8080でアクセスできるようになります。

Homerのインストール

対照的に、Homerはよりミニマリストでありながら非常に効果的なダッシュボード体験を提供します。そのシンプルさと速度は、ユーザーによって頻繁に強調されています。Dashyと同様に、Homerのデプロイはdocker-compose.yamlファイルを使用するのが最も簡単です。

version: '3.8'
services:
  homer:
    container_name: homer
    image: b4bz/homer:latest
    ports:
      - 8081:8080
    volumes:
      - ./appdata/homer:/www/assets
    environment:
      - UID=1000
      - GID=1000
    restart: unless-stopped

ここでは、Homerがポート8081で実行されるように設定されています。ボリュームマウント./appdata/homer:/www/assetsは非常に重要です。ここにHomerのconfig.ymlや、アイコンのような追加するカスタムアセットが置かれます。このセットアップにより、簡単な外部設定が可能になります。Homerも同じDocker Composeコマンドを使ってデプロイします。

docker compose up -d

その後、Homerはhttp://your-homelab-ip:8081でアクセスできるようになります。

設定: 中央コマンドの調整

選択したダッシュボードが稼働したら、それを特定のHomeLab環境に合わせて調整することで真の価値が生まれます。DashyとHomerはどちらもYAMLを構成に使用しており、これは人間が読めるデータシリアライゼーション標準であり、カスタマイズを大幅に簡素化します。

Dashyの設定

Dashyのconf.yml設定ファイルは、詳細なパーソナライズを可能にする広範なオプションを提供します。主に、マウントされた./appdata/dashyディレクトリ内にあるconf.ymlファイルを編集します。このファイルがまだ存在しない場合は、DashyのGitHubリポジトリからサンプルをコピーするか、Dashyが最初の実行時に基本的なファイルを生成するようにして、それを後で変更することができます。

通常、Dashyの設定では、カテゴリとして機能するセクションを定義し、そのセクション内に個々のアイテム(サービス)を追加します。各アイテムには、名前、URL、アイコン、説明、さらには組み込みのヘルスチェックを含めることができます。

# Dashyのconf.yml抜粋
appConfig:
  theme: 'material'
  layout: 'auto'
  enable мороsearch: true

pageInfo:
  title: '私のHomeLabダッシュボード'
  description: 'すべてのHomeLabサービスへの集中アクセス'

sections:
  - name: 'メディアサービス'
    icon: 'FaTv'
    items:
      - title: 'Jellyfin'
        url: 'http://192.168.1.100:8096'
        icon: 'fas fa-tv'
        target: '_blank'
        description: '私のセルフホスト型メディアサーバー'
        statusCheck: true
      - title: 'Sonarr'
        url: 'http://192.168.1.100:8989'
        icon: 'fas fa-download'
        target: '_blank'
        description: 'TV番組自動化'
  - name: 'ネットワークツール'
    icon: 'FaNetworkWired'
    items:
      - title: 'Pi-hole'
        url: 'http://192.168.1.5'
        icon: 'fab fa-adversal'
        target: '_blank'
        description: 'ネットワーク全体のアドブロック'
        statusCheck: true

conf.ymlを編集した後、ボリュームマウントが正しく設定されていれば、Dashyは多くの場合自動的にリロードされます。そうでない場合は、docker compose restart dashyコマンドを素早く実行することで、変更が即座に適用されます。より高度なカスタマイズについては、公式のDashyドキュメントを参照して、さまざまなテーマ、カスタムアイコン、認証方法、ウィジェットを探索してください。

Homerの設定

Homerのconfig.ymlファイルは、マウントされた./appdata/homerディレクトリ内にあり、同様に分かりやすくユーザーフレンドリーです。これは明確さとクリーンな視覚的表現を重視しています。まずダッシュボードのタイトルとサブタイトルを定義し、その後、さまざまなサービスを論理的なグループに構成します。

# Homerのconfig.yml抜粋
title: '私のHomeLab'
subtitle: 'ダッシュボードセントラル'
logo: 'assets/logo.png'

columns:
  - # 最初の列
    name: '生産性'
    icon: 'fas fa-laptop-code'
    items:
      - name: 'Nextcloud'
        logo: 'assets/nextcloud.png'
        url: 'https://cloud.homelab.local'
        target: '_blank'
      - name: 'Jira'
        logo: 'assets/jira.png'
        url: 'http://jira.homelab.local:8080'
        target: '_blank'

  - # 2番目の列
    name: '監視'
    icon: 'fas fa-chart-line'
    items:
      - name: 'Grafana'
        logo: 'assets/grafana.png'
        url: 'http://grafana.homelab.local'
        target: '_blank'
        subtitle: 'メトリクスダッシュボード'
        # オプション: ステータス用のカスタムアイコンを追加
        # status: 'http://grafana.homelab.local/api/health'

Homerは、fas fa-laptop-codeのようなクラス名でFont Awesomeアイコンを直接サポートしています。また、nextcloud.pngのようなカスタム画像ロゴを、./appdata/homerフォルダに直接配置し、設定で参照することで含めることもできます。Dashyと同様に、config.ymlの変更を保存すると、Homerは自動的にそれらを認識するか、docker compose restart homerを実行して適用することができます。

検証と監視: 稼働時間とアクセシビリティの確保

集中型ダッシュボードは、信頼性があり、サービスのリアルタイムな状態を正確に反映する場合にのみ真に効果的です。したがって、初期設定後にダッシュボードを検証および監視することは非常に重要なステップとなります。

アクセスと機能チェック

初期セットアップと構成が完了したら、最初のステップはダッシュボードのURLにアクセスすることです。Dashyの場合はhttp://your-homelab-ip:8080、Homerの場合はhttp://your-homelab-ip:8081となるでしょう。アクセス後、次の点を確認してください。

  • 設定したすべてのサービスがダッシュボードに期待通り表示されていることを確認します。
  • 各リンクをクリックすると、正しいサービスに正常に移動することを確認します。
  • 適用したカスタムアイコンやテーマが正しく表示されていることを確認します。

サービスのヘルスチェックを設定している場合(Dashyはこれをネイティブでサポートしています)、ステータスインジケーターが現在の状態を正確に反映しているかを確認します。適切に設定されたダッシュボードは、サービスがダウンタイムを経験している場合に、それを即座に表示するはずです。

プロアクティブな監視

ダッシュボードは迅速な視覚的概要を提供しますが、ダッシュボードアプリケーション自体を直接監視することも賢明です。これを既存のHomeLab監視スタックに統合することで、「シングルペインオブグラス」が24時間体制で稼働し、アクセス可能であることを保証します。

ネットワーク上の別のマシンからcurlwgetのような基本的なツールを使用して、ダッシュボードのウェブサーバーが応答しているかどうかを定期的に確認できます。例えば:

curl -I http://your-homelab-ip:8080

HTTP/1.1 200 OKの応答は、ウェブサーバーが稼働しており機能していることを確認します。より高度な監視ソリューションについては、以下のオプションを検討してください。

  • UptimeRobotまたはHealthchecks.io: これらの外部サービスは、定期的にダッシュボードのURLにpingを送信し、到達不能になった場合にアラートを送信できます。
  • Prometheus/Grafana: これらが既にセットアップされている場合、簡単なHTTPプローブを設定して、ダッシュボードの可用性と応答時間を追跡できます。

ダッシュボードの保守

ダッシュボードを最新の状態に保つことは、セキュリティと新機能の活用のためにも不可欠です。DashyもHomerもDocker経由でデプロイされるため、このプロセスは比較的簡単です。

# DashyまたはHomerの場合
docker compose pull
docker compose up -d

このコマンドシーケンスは、ダッシュボードアプリケーションの最新イメージをプルし、その後コンテナを再作成します。これにより、永続ボリュームマウントのおかげで、設定を失うことなく最新バージョンを実行できます。プロジェクトのGitHubページでリリースノートを定期的に確認することを忘れないでください。これにより、更新、新機能、および注意が必要な可能性のある破壊的変更について常に情報が得られます。

DashyとHomerを6ヶ月間使用した後、これらのダッシュボードのセットアップと保守に投資した時間は、計り知れないほど価値があったと自信を持って言えます。これにより、私のHomeLabの効率が劇的に向上し、大きな安心感をもたらしました。かつてはバラバラだったサービスの集まりが、今ではまとまりがあり、管理しやすく、本当に楽しいHomeLab体験に感じられます。

Share: