ObjectOS
배포

Docker

평가, 스테이징 또는 프로덕션을 위해 ObjectOS를 컨테이너에서 실행합니다.

Docker

Docker는 대부분의 팀이 프로덕션으로 가는 경로입니다. 이는 런타임이 운영되도록 의도된 방식과 일치합니다. 즉, 인스턴스당 하나의 무상태 컨테이너, 외부 데이터베이스, 파일을 위한 외부 객체 스토리지, 런타임에 주입되는 시크릿입니다.

사전 빌드된 이미지 가져오기

main으로 푸시할 때마다 그리고 태그가 지정된 릴리스마다 런타임 이미지를 GitHub Container Registry에 게시합니다.

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

사용 가능한 태그:

Tag채널
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
템플릿templates repo에서 복제하고 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 볼륨은 (외부 DB가 구성되지 않은 경우) SQLite 데이터베이스와 로컬에 저장된 업로드 파일을 보관합니다.

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

드라이버와 연결 옵션의 전체 매트릭스는 Runtime Configuration을 참조하세요.

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
ID 및 세션동일한 데이터베이스
업로드된 파일외부에서 관리되는 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