デプロイ

デプロイ

自社のインフラストラクチャで ObjectOS を実行します。オープンな Community イメージとライセンスされた Enterprise イメージ、ひとつのランタイム、ひとつの設定の契約、そしてライセンスが追加するものを説明します。

対応エディション

ObjectOS にはセルフマネージドのエディションが 2 つあり、デプロイ方法は同じです。ObjectOS Community はオープンソースのランタイムイメージで、ObjectOS Enterprise はライセンスされたイメージで、すべての Enterprise 機能を含むひとつのエディションです。どちらも同じランタイムを実行し、同じ設定(データベース、認証シークレット、シークレットキー)を読み込みます。違いは、イメージの入手元、アプリの組み込み方、ライセンスで有効になるものです。このセクションの各ページは両方を対象に一度だけ書かれており、ライセンスされたイメージがより多くを行う箇所では、最後に Enterprise で追加されるもの のセクションがあります。

2 つのイメージ

CommunityEnterprise
イメージghcr.io/objectstack-ai/objectstack、公開ライセンスされた Enterprise イメージ。プライベートレジストリから取得し、レジストリの認証情報はライセンスとともに提供されます
固定する方法内部の ObjectStack CLI と一致する正確なバージョンタグ(X.Y.Z)、そしてバイトが変わってはならない場所ではそのダイジェスト(理由)リリースノートに記載されたイメージのダイジェスト
アーキテクチャlinux/amd64 と linux/arm64linux/amd64 のみ
アプリの組み込み方os build でコンパイルした objectstack.json を、マウントする、自分のイメージにコピーする、または OS_ARTIFACT_URL で指定する。空のランタイムでは、代わりに Console のマーケットプレイスからアプリをインストールします。3 つの実行形態のいずれか:イメージにバンドルされたアプリ、公開済みアーティファクト、またはイメージの Enterprise プラグインと組み合わせた公開済みアーティファクト(後述)
設定が必須の変数OS_DATABASE_URL、OS_AUTH_SECRET、OS_SECRET_KEY(イメージはすでに OS_PORT=8080 を設定しています)同じもの、加えて OS_LICENSE_KEY と意図して設定した OS_CLOUD_URL
コピーできる設定これらのページの例各リリースとともに提供されるデプロイバンドル
ライセンスで有効になるもの—製品内 AI(AI Builder、「データに質問する」)、AI ガバナンス、階層セキュリティ、1 つのデプロイメント上の複数の組織、デフォルトで有効な SCIM、顧客管理の鍵、エアギャップ運用。キットは現在 1 つのノードで動作します。複数のレプリカにまたがる高可用性は開発中で、まだ提供していません。

エディションの比較に完全な一覧があります。Community で構築したアプリは通常の ObjectStack メタデータであり、Enterprise でもそのまま動作します。

すべてのデプロイメントが決める 3 つのこと

判断意味
どのバイトを実行するか正確なイメージをひとつに固定します。latest のような移動するタグは知らないうちに付け替えられることがあり、正確なバージョンタグもそのバージョンが再ビルドされれば同様です。それが起きないのはダイジェストだけです。以前のものは残しておきます。それがロールバックです。
設定をどこに置くかイメージとアプリの外です。データベース URL、シークレット、デプロイメントの識別情報は、実行時に注入される環境変数であり、決して焼き込みません。契約は環境変数にあります。
どのデータベースか本番は PostgreSQL で実行します。OS_DATABASE_URL がない場合、ランタイムはホームディレクトリの下に SQLite ファイルを書き込みます。これは永続的な単一ホストには適していますが、コンテナの一時的なファイルシステムではデータが失われます。

アプリの組み込み方

Community イメージにはアプリが含まれていません。os build がコンパイルするアーティファクト dist/objectstack.json を、次の 3 つの方法のいずれかで渡します。

方法やり方使う場面
マウントするイメージがデフォルトで探す /srv/app/objectstack.json にファイルをマウントしますイメージのビルドを一切したくない
自分のイメージにコピーする公式イメージを FROM とする 2 段階の Dockerfileリリースごとに自己完結したイメージを 1 つ出荷する
URL で指定するOS_ARTIFACT_URL、任意で #sha256= による完全性の固定アプリのアップグレードを環境の変更と再起動で済ませたい

Docker に 3 つすべてを示しています。アーティファクトがまったくない場合、ランタイムは空のカーネルで起動し、アプリは Console のマーケットプレイスからインストールします。

ガイド

  • Docker:イメージを実行し、設定し、プロキシの背後に置き、アップグレードします。
  • Kubernetes:オーケストレーター上の同じイメージと、維持すべき性質。
  • エアギャップ:Enterprise のみ。ライセンスモードとしてのエアギャップと、起動時に拒否される組み合わせ。

コンテナランタイムがない場合は、Node.js 22 のホスト上で、同じアーティファクトを os start で実行できます。ObjectOS Community をローカルで実行するを参照してください。

Enterprise で追加されるもの

さらに 2 つの判断:ライセンスとクラウドの姿勢

判断意味
どのライセンスかライセンスは追加オプションではなく、通常の手順の一部です。デプロイメントの形態によっては、ライセンスがないと起動を拒否します。
どのクラウドの姿勢かこのランタイムがコントロールプレーンと通信するかどうか。これはライセンスモードと結びついており、サポートされない組み合わせは、黙って劣化するのではなく起動時に拒否されます。

実際には、この 2 つはひとつの判断です。間違えるとゆっくりとした漏れではなく、起動の失敗になります。サポートされる組み合わせの全体はエアギャップに記載されています。組み合わせがなぜそうなっているかを説明しているページなので、サイトがネットワークに接続されている場合でも読んでください。

デプロイバンドル

リリースにはデプロイバンドルが付属します。Compose スタック、サポートされる各形態の環境テンプレート、そしてそのバージョンの正確なコマンド(レジストリの参照、ダイジェスト、サプライチェーン検証の手順を含む)を記載した README です。

これらのページが扱うのは判断です。なぜダイジェストなのか、どの形態にどのライセンスモードか、マルチノードで何が必須になるか、ランタイムが何を拒否するか。バンドルが扱うのはコピーする値です。両者が食い違うように見えるときは、イメージとともに提供されたバンドルが正しいものです。バンドルは、それが設定するランタイムとともにバージョン管理されています。

3 つの実行形態

Enterprise イメージは 3 つの方法でアプリを実行でき、その選択によって利用できるものが変わります。単なるパッケージングの問題ではありません。

形態アプリの出どころ使う場面
Config-authoredイメージ自身にバンドルされたアプリケーション。イメージ内で作成されたメタデータと、そこにインストールされたもの単一組織のデプロイメント。Compose スタックが設定するデフォルトで、設定が不要な形態です。
Artifact-pinnedURL で指定された公開済みのアプリアーティファクト。デプロイメントの設定が実行される前に解決されます公開済みのアプリを 1 つ実行し、イメージを再ビルドせずに、環境の変更と再起動でアプリをアップグレードしたい。この経路では、デプロイメントの Enterprise プラグインは読み込まれないことに注意してください。
Composedこのデプロイメントの Enterprise プラグインと組み合わせた公開済みのアプリアーティファクト複数の組織が 1 つのデータベースを共有する。これはホスト型の単一アプリ SaaS の形態であり、エアギャップライセンスのみで、起動時に強制されます。

各形態には、デプロイバンドル内に専用の環境テンプレートがあります。別のものを手直しするのではなく、自分の形態のものをコピーしてください。テンプレートは姿勢を決める値が異なり、それらはまさにランタイムが何かを提供する前に確認する値です。