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

ZimaOSアプリのHTTPSとカスタムアプリの追加方法

A new ZimaOS user discovered dashboard HTTPS did not secure Docker apps and arbitrary GitHub URLs could not be added directly as App Store repositories.

ZimaOSのダッシュボードHTTPSでは、すべてのDockerアプリが自動的に保護されるわけではありません。独自のポートで待ち受けるアプリには、ネイティブHTTPSまたはリバースプロキシが必要です。また、GitHubリポジトリのURLを適当に指定しても、有効なZimaOS App Storeのソースにはなりません。リポジトリは現在のストアプロトコルに従う必要があります。

2026年4月の元スレッドでは、この2つの初心者向け質問が一緒に扱われていました。明確な答えは、アプリのTLSにはリバースプロキシを使い、見つからないソフトウェアには互換性のあるストアまたはカスタムComposeを使う、というように分けて考えることです。

ダッシュボードのHTTPSでアプリが保護されない理由

ZimaOSのHTTPS設定は、ダッシュボードのホスト名を保護します。http://SERVER:8080で動作するDockerアプリは、別個のサービスのままです。HTTPSリバースプロキシガイドでは、この境界について説明しています。

アプリのHTTPSにはリバースプロキシを使う

https://app.example.com
        ↓
リバースプロキシ / TLS
        ↓
http://app-container:port

Nginx Proxy ManagerやCaddyを使えば、TLSを終端してアプリに転送できます。

ローカルHTTPSとパブリックHTTPSは異なる

LAN内だけで使う場合は、内部DNSとローカルCAを利用できます。パブリックドメインには、有効な証明書と、リモートアクセスおよびセキュリティに関する明確なルールが必要です。

GitHubの生URLでエラーになる理由

App Storeが求めているのは、任意のアプリケーションソースコードではなく、互換性のあるストア出力です。

現在のZimaOS App Storeプロトコル

現在のZimaOS App Store開発者ガイドでは、store-config.jsonsupported-languages.jsonApps/ツリー、生成されたdist/出力を含むv2ストアについて説明しています。

1つのアプリならカスタムComposeを使う

1つのプロジェクトだけが必要なら、ストア全体を作成する必要はありません。正しいポート、ボリューム、x-casaosメタデータを含むDocker Composeをインポートまたは作成してください。現在のDocker Composeとx-casaosのリファレンスで形式を確認できます。

ポート80と443に注意する

リバースプロキシでは通常、80/443番ポートを使用しますが、これらはすでにZimaOSが使用している可能性があります。デプロイ前に、どのサービスがポートを使用しているか確認してください。

TLSを設定する前にリバースプロキシの名前を決める

ユーザーがapp.home.arpa、プライベートドメイン、またはパブリックドメインのどれを開くのかを決めてください。証明書は名前を検証するため、DNS名を決める前にTLSを設定すると、警告や重複したプロキシエントリにつながりやすくなります。

直接アクセスできないアプリをプロキシしない

プロキシホストを追加する前に、通常のHTTPアドレスでバックエンドアプリを開いてください。http://SERVER:PORTがすでに壊れている場合、HTTPSを追加しても、元の問題がプロキシエラーの背後に隠れるだけです。

ストア全体を構築する前に、1つのアプリパッケージを使う

複数のアプリケーションを繰り返しインストールする場合は、サードパーティ製ストアが便利です。1つの不足しているアプリだけが必要なら、カスタムComposeのほうがテスト、更新、監査が簡単です。カタログ配布、メタデータ、アセット、再現可能な更新が必要な場合にのみ、リポジトリを構築してください。

公開前にComposeを検証する

現在のZimaOS開発者向けドキュメントでは、有効なDocker Composeに加えて、トップレベルのx-casaosメタデータが必要です。まずComposeスタックをテストし、その後でカタログメタデータを追加してください。コンテナの実行環境とストアのパッケージ化を同時にデバッグしないようにしましょう。

プロキシの管理インターフェースを非公開にする

Nginx Proxy Managerなどのリバースプロキシをデプロイする場合、管理UIはLANまたはプライベートVPN内に置く必要があります。パブリックな通信は、プロキシが意図したHTTP/HTTPSリスナーにのみ到達できるようにし、管理ポートには到達できないようにしてください。

同様に、有効な証明書を取得したからといって、プライベートアプリを公開しないでください。TLSは通信を保護しますが、認証やネットワークアクセス制御の代わりにはなりません。

FAQ

ZimaOSのHTTPSですべてのアプリが保護されますか?

いいえ。各アプリのエンドポイントには、個別のHTTPSまたはリバースプロキシが必要です。

GitHubのリポジトリなら何でもApp Storeに追加できますか?

いいえ。互換性のあるストアであるか、Composeとしてパッケージ化されたアプリである必要があります。

ローカルHTTPSにパブリックドメインは必要ですか?

いいえ。内部DNSと、信頼されたローカル証明書を利用できます。

不足しているアプリを1つインストールする最も簡単な方法は何ですか?

現行形式のカスタムDocker Composeアプリを使用してください。