ZCR (ZUNDA CONNECT ROUTER) の上でアプリを動かす アプリコンテナのガイドです。
ルーターの中で LXD コンテナを動かし、Cloudflare Tunnel や Tailscale、UniFi コントローラーのような
アプリをルーター 1 台で完結させる機能です。別途サーバーを置く必要がありません。
コンテナは指定した LAN に参加するので、LAN の機器から見ると同じネットワークにいる 1 台のホストとして
振る舞います。DHCP で固定 IP が振られ、ポートを公開すれば LAN や WAN から到達できます。
アプリコンテナはコンフィグ (Karin Config) の apps セクションに書くものです。画面から直接コンテナを
作る操作はありません。
| 書くこと | 書かなくていいこと |
|---|---|
| 何を動かすか (テンプレート or イメージ) | veth の名前 |
| どの LAN に繋ぐか | MAC アドレス |
| ポートを公開するか | 固定 IPv4 / IPv6 アドレス |
| メモリ・CPU・ボリューム | DHCP 予約 |
| テンプレートへの入力 (トークンなど) | ファイアウォールの穴あけ |
右側はクラウドが自動で計算します。以前は veth-xxxxxxxx を自分で network.ports に書く必要がありましたが、いまは不要です。
コンフィグに書くということは、バージョン管理・ロールバック・予約配信・監査ログ・起動時の復元がそのまま効くということでもあります。
⚠️ apps はデバイス上のコンテナ集合の唯一の正です。コンフィグから消したコンテナはデバイス上からも消えます。永続ボリュームも一緒に消え、中のデータは戻りません。
全体像
A["コンフィグの apps に書く"] --> B["保存 (バージョンができる)"]
B --> C["デバイスに適用"]
C --> D["クラウドが配線を計算, veth 名 / MAC / 固定 IP / ファイアウォール"]
D --> E["デバイスへ配信, UCI + 実行計画"]
E --> F["agent がコンテナを作る, LXD インスタンス + veth"]
F --> G["cloud-init が中身を作る, パッケージ導入・設定・サービス起動"]
G --> H["状態と出力をクラウドへ報告"]
H --> I["デバイス詳細に表示"]
配線の計算からコンテナができるまでは全部自動です。利用者が触るのは最初の 1 ステップだけ。
| テンプレート | 何をするか | 必要な入力 | 公開 | メモリ |
|---|---|---|---|---|
| Cloudflare Tunnel | LAN を Cloudflare 経由で外部公開 | tunnelToken |
不要 | 256MiB |
| Tailscale | Tailscale ノードとして参加 | authKey |
不要 | 256MiB |
| Cloudflare WARP Connector | 拠点を WARP に載せる | connectorToken |
不要 | 512MiB |
| Docker + Portainer | ルーター上で Docker を動かす | なし | LAN | 512MiB〜 |
| UniFi Network Application | UniFi 機器のコントローラー | なし | LAN | 2GiB |
| Omada | TP-Link 機器のコントローラー | なし | LAN | 2GiB |
| REALITY (sing-box) | VLESS + REALITY サーバー | serverAddress / handshakeServer |
WAN | 256MiB |
テンプレートにないものはカスタムイメージで素の OS から立てられます。