本文へ移動
runlot

自分のマシンで runlot を動かす

同じプロダクトを、自社のサーバーまたは Kubernetes クラスターで、自分の PostgreSQL・オブジェクトストア・ライセンスファイルとともに動かせます。データが外に出ることはありません。

セルフホストの runlot は、runlot.io で使うプロダクトそのものを、お好きな場所にインストールして使う形態です。コントロールプレーン・データノード・Git ホスティング・ダッシュボードは、お持ちのマシンで動きます。メタデータは自分で運用する PostgreSQL に置き、バックアップとファイルは自分で運用する S3 互換ストアに保存します。私たちが提供するのは、署名付きのライセンスファイルだけです。

どのインストールにも当てはまる 3 つの事実があります。ほかの内容より先にお読みください。

マスターキーはお客様が保持し、私たちはコピーを持ちません

Terminal
openssl rand -hex 32

すべてのバックアップは、この値から導出したキーで暗号化されます。インストーラーは設定からこの値を読み取り、キーの生成を行いません。値を失うとすべてのバックアップが読み取れなくなり、私たちにできることはありません。ほかのルートシークレットと同じ場所に、マシンが失われても残る形で保管してください。

この拒否は意図したものです。再生成できるキーは、私たちが保持できるキーでもあります。そうなると、「データが外に出ることはありません」という言葉は私たちに対しても成り立たなくなります。

ライセンスはファイルで、オフラインで検証されます

ライセンスは、私たちがオフラインで保管するキーで署名された 1 行のテキストです。コントロールプレーンは 1 分ごとに再読み込みします。ライセンスサーバーも、アクティベーションの呼び出しも、テレメトリーもありません。プロダクトから私たちへネットワークリクエストが送られることはありません。

状態変わること
validなし。
graceダッシュボードにバナーが表示されます。有効期限の日から 30 日間は、すべて通常どおり動作します。
restricted新規デプロイ・新規プロジェクト・新規サインアップは license_* エラーで拒否されます。すでに動作中のものは引き続き処理を続けます。 ファイルを差し替えれば、再起動なしで 1 分以内に制限が解除されます。

ライセンスの期限が切れても、動作中のアプリが止まることはありません。この状態表は、そのルールを軸に作られています。

3 つの構成

ティアマシン何がどこで動くか
eval1すべてを 1 台のホストに置き、PostgreSQL と MinIO はメタパッケージから導入します。お試し用で、本番環境には向きません。
single2コントロールプレーン 1 台とデータノード 1 台です。PostgreSQL と S3 はお客様側で用意します。データノード 1 台で最大 64 個のプロジェクトを保持できます。
ha4 台以上コントロールプレーン 1 台と N+1 台のデータノードです。ノードを失ってもそのプロジェクトの移行先があります。

データノードを VM のままにして、コントロールプレーンだけを Helm chart で Kubernetes 上で動かすこともできます。データノードはあえて通常のマシンにしています。プロジェクトごとに 1 つのプロセスを専用の cgroup で動かし、そのために必要な権限は Pod よりも VM のほうが付与しやすいためです。

次のステップ

このページの目次