コミュニティソリューション

ZimaOSのカスタムウィジェット:今すぐ作れるもの

A ZimaOS user proposed native customizable widgets for weather, Pi-hole, memos, AI chat and API-driven cards on the home dashboard.

現在の回答:任意のHTMLやJavaScriptウィジェットは、公開されているZimaOSの機能ではありません

2026年の提案では、天気、ポモドーロタイマー、Pi-holeの操作、メモ、AIチャット、カスタムエンドポイントのレスポンスを表示できるウィジェットが求められていました。現在のZimaOSでは、組み込みのシステムカードと連携用のOpenAPIが公開されていますが、ユーザーが任意のHTML、CSS、JavaScriptをホームダッシュボードに貼り付けられるネイティブ機能については説明されていません。つまり、この要望は引き続き製品拡張のアイデアである一方、API駆動の外部ダッシュボードはすでに実用化できます。

システムのストレージカードとネットワークカードの下にカスタムウィジェット領域を配置したZimaOSダッシュボードのモックアップ
この提案では、標準のZimaOSシステム、GPU、ストレージ、ネットワークカードの下に、設定可能なウィジェットセクションを配置しています。

ダッシュボードのスクレイピングではなく、ZimaOS OpenAPIでデータを取得する

現在のZimaOSは、ストレージ、ユーザー、システムサービス向けのプログラムインターフェースを提供しています。カスタムダッシュボードはこれらのAPIを呼び出して独自のカードを表示できるため、非公開のフロントエンドルートに依存する必要がありません。ZimaOS OpenAPIが、安定した連携インターフェースです。

カスタムダッシュボードを最速で実現するならHomarr

ネイティブ連携よりもビジュアルなレイアウト構成が目的なら、Homarrはドラッグ&ドロップ対応のウィジェット、連携機能、アイコン、認証機能をすでに提供しています。HomarrのDockerインストールで、現在の導入方法を確認できます。ZimaOSアプリの要件は、追加サービスに必要なリソースを見積もるのに役立ちます。

管理画面内で任意のJavaScriptを実行することが高リスクである理由

認証済みのNASダッシュボード内で制限のないJavaScriptを実行できるウィジェットは、高い権限を持つオリジンを共有することになります。悪意のあるウィジェットや不具合のあるウィジェットは、データの読み取り、操作の実行、セッション情報の取得を行う可能性があります。ネイティブウィジェットを導入する場合は、サンドボックス化、権限スコープ、管理されたウィジェットAPIが必要になるでしょう。

OWASPのクロスサイトスクリプティングのリスクでは、ブラウザーにおける基本的なセキュリティ問題が説明されています。

監視には読み取り専用ウィジェットを優先する

CPU使用率、ストレージ容量、温度、稼働時間、サービスの健全性は、書き込み操作よりも安全に表示しやすい情報です。「Pi-holeを無効化」や「コンテナを再起動」といったボタンには、ダッシュボード上のクリックによってインフラの状態が変わるため、より強力な認証、監査可能性、確認操作が必要です。

数秒おきではなく、効率的にポーリングする

頻繁なポーリングは、低消費電力のサーバーに常時バックグラウンドリクエストを発生させます。ストレージ、温度、サービスの健全性については、30~60秒間隔で十分なことが多いでしょう。天気情報は数分に1回程度で足ります。可能な場合は、すべてを同じ間隔でポーリングするのではなく、イベント駆動の更新を使用してください。

シークレットはサーバー側で管理する

ウィジェットが天気、Pi-hole、AI、その他のサービス用のAPIトークンを必要とする場合は、ブラウザーのJavaScriptに埋め込まないでください。認証情報をクライアントバンドルの外部に保持できるバックエンドプロキシまたはサーバーサイド連携を使用します。サービスをブラウザーから利用する必要がある場合は、ZimaOSのHTTPSプロキシが役立ちます。

最大限の自由度が必要なら、別のダッシュボードを使用する

スタンドアロンのダッシュボードコンテナを使えば、ZimaOS自体を変更せずにレイアウトと連携を完全に制御できます。また、ZimaOSのフロントエンドが再設計されても、より問題なく使い続けられます。すべてのシステム操作をカスタムレイヤーに複製するのではなく、権限が必要な作業についてはネイティブの管理ダッシュボードへ戻るリンクを設けてください。

安全なネイティブウィジェットシステムに必要なもの

優れた実装には、ウィジェットマニフェスト、要求された権限、分離されたレンダリング、レート制限、バージョン互換性、サーバー側のシークレット、読み取り専用ウィジェットと状態を変更するウィジェットの明確な区別が必要です。元の要望で最も重要なのは、制限のないコード実行ではなく、正式な拡張インターフェースを求めている点です。

カスタムダッシュボードはZimaOSとは別にバージョン管理する

ウィジェットのコード、APIアダプター、設定は、ソース管理システムで管理してください。ZimaOSがAPIのバージョンや認証フローを変更した場合でも、コンテナ内に手作業で編集したスクリプトを失うことなく、意図的に連携を更新できます。小規模な互換性レイヤーを用意すれば、同じダッシュボードから複数のZimaOSデバイスに接続でき、コードの重複も避けられます。

よくある質問

ZimaOSにカスタムウィジェットを直接追加できますか?

現在公開されている資料では、ユーザー定義の任意のHTML/JavaScriptウィジェットが組み込み機能として提供されているとは説明されていません。

OpenAPIを使ってZimaOSのダッシュボードを構築できますか?

はい。外部ダッシュボードからサポート対象のZimaOS APIを利用し、独自のウィジェットを表示できます。

APIキーをJavaScriptに保存してもよいですか?

いいえ。サービスの認証情報はサーバー側で管理してください。

Homarrはよい代替手段ですか?

ネイティブのZimaOS UIを変更するのではなく、カスタマイズ可能なダッシュボードを求めている場合には適しています。

なぜ任意のJavaScriptを許可しないのですか?

ダッシュボードは認証済みの管理画面であるため、制限のないスクリプトは重大なXSSおよび権限リスクを生じさせます。