ObjectOS
デプロイ

Docker

ObjectOS をコンテナで実行する — 評価、ステージング、本番のいずれにも対応。

Docker

Docker は、多くのチームが本番環境へ到達するために選ぶ経路です。これは、ランタイムが本来意図されている運用方法と一致します。すなわち、インスタンスごとに 1 つのステートレスなコンテナ、外部データベース、ファイル用の外部オブジェクトストア、そして実行時に注入されるシークレットです。

ビルド済みイメージを取得する

main へのプッシュごとに、およびタグ付きリリースごとに、ランタイムイメージを GitHub Container Registry へ公開しています。

docker pull ghcr.io/objectstack-ai/objectos:latest

利用可能なタグ:

タグチャネル
latestmain の最新ビルド(初回評価に推奨)
mainlatest と同じだが明示的
sha-<short>特定のコミットに固定(本番に推奨)
vX.Y.Z, X.Y, Xタグ付きリリース

本番環境では、sha-<short> または semver タグに固定してください。latest は変動します。

同梱サンプルで実行する

docker run --rm -p 3000:3000 \
  -e OS_AUTH_SECRET="$(openssl rand -hex 32)" \
  ghcr.io/objectstack-ai/objectos:latest

次に http://localhost:3000 を開きます。このイメージには空のサンプルアプリが同梱されているため、独自のアーティファクトを指定する前に、ランタイムが起動し Console/Account が描画されることを確認できます。

OS_AUTH_SECRET は起動に必須です。これをローテーションすると既存のセッションは無効になります。

独自のアーティファクトで実行する

アプリ定義は単一のファイルです: dist/objectstack.json。これは次の方法で生成されます。

ソース方法
独自のプロジェクトobjectstack.config.ts を編集した後に pnpm exec objectstack compile
テンプレートテンプレートリポジトリ からクローンし、pnpm install && pnpm exec objectstack compile を実行
アプリ marketplace公開アプリの一部として提供

このファイルを /artifacts/objectstack.json にマウントし、ランタイムがそれを指すように設定します。

docker run --rm -p 3000:3000 \
  -e OS_AUTH_SECRET="$(openssl rand -hex 32)" \
  -e OS_ARTIFACT_FILE=/artifacts/objectstack.json \
  -v "$PWD/dist:/artifacts:ro" \
  -v objectos-data:/var/lib/objectos \
  ghcr.io/objectstack-ai/objectos:latest

objectos-data ボリュームには、SQLite データベース(外部 DB が構成されていない場合)とローカルに保存されたアップロードファイルが保持されます。

SQLite の代わりに Postgres を使用する

docker run --rm -p 3000:3000 \
  -e OS_AUTH_SECRET="$(openssl rand -hex 32)" \
  -e OS_ARTIFACT_FILE=/artifacts/objectstack.json \
  -e OS_DATABASE_DRIVER=postgres \
  -e OS_DATABASE_URL='postgres://user:pass@db.internal:5432/myapp' \
  -v "$PWD/dist:/artifacts:ro" \
  ghcr.io/objectstack-ai/objectos:latest

ドライバーと接続オプションの完全な一覧については、ランタイム構成を参照してください。

Docker Compose

リファレンスとなる docker-compose.yml はリポジトリの docker/ 配下にあります。

git clone https://github.com/objectstack-ai/objectos.git
cd objectos
mkdir -p docker/artifacts
cp /path/to/your/objectstack.json docker/artifacts/
export OS_AUTH_SECRET="$(openssl rand -hex 32)"
docker compose -f docker/docker-compose.yml up

デフォルトポートは 3000 です。OBJECTOS_PORT=3200 docker compose ... で上書きします。

独自のイメージをビルドする

アーティファクト、カスタムプラグイン、または独自の SSL/CA バンドルを埋め込む必要がある場合:

git clone https://github.com/objectstack-ai/objectos.git
cd objectos
docker build -f docker/Dockerfile -t myorg/objectos:custom .

同梱の Dockerfile はマルチステージビルドで、Node 20 Alpine 上にスリムなランタイムイメージを生成します。

分離して管理すべきもの

資産配置すべき場所
アーティファクト(objectstack.json)イメージ(イミュータブル)またはマウントされたボリューム
業務データベース外部管理の Postgres / MySQL / Mongo
アイデンティティとセッション同じデータベース
アップロードファイル外部管理の S3 / R2 / ディスクボリューム
シークレット(OS_AUTH_SECRET、DB URL、API キー)シークレットマネージャー(環境変数として注入)
ログstdout — ログドライバーによって収集

検証

起動後:

curl -fsS http://localhost:3000/health
# {"status":"ok",...}

次に http://localhost:3000/_account/register でサインインし、API が応答することを確認します。

curl http://localhost:3000/api/v1/data/<your-object>

次のステップ

On this page