ObjectOS
Déploiement

Docker

Exécutez ObjectOS dans un conteneur — pour l'évaluation, la préproduction ou la production.

Docker

Docker est la voie que la plupart des équipes empruntent vers la production. Elle correspond à la manière dont le runtime est censé être exploité : un conteneur sans état par instance, une base de données externe, un magasin d'objets externe pour les fichiers, des secrets injectés à l'exécution.

Récupérer l'image pré-construite

Nous publions l'image du runtime sur le GitHub Container Registry à chaque push sur main et à chaque release taguée :

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

Tags disponibles :

TagCanal
latestDernière build de main (recommandé pour une première évaluation)
mainIdentique à latest, mais explicite
sha-<short>Épinglé sur un commit précis (recommandé pour la production)
vX.Y.Z, X.Y, XReleases taguées

Pour la production, épinglez sur sha-<short> ou un tag semver — latest évoluera.

Exécuter avec l'exemple intégré

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

Ouvrez ensuite http://localhost:3000. L'image est livrée avec un exemple d'application vide afin que vous puissiez vérifier que le runtime démarre et que Console/Account s'affichent avant de le pointer vers votre propre artefact.

OS_AUTH_SECRET est requis pour démarrer. Le faire tourner invalide les sessions existantes.

Exécuter avec votre propre artefact

La définition de votre application tient dans un seul fichier : dist/objectstack.json. Il est produit par :

SourceComment
Votre propre projetpnpm exec objectstack compile après avoir modifié objectstack.config.ts
Un templateClonez depuis le dépôt de templates, exécutez pnpm install && pnpm exec objectstack compile
Marketplace d'applicationsFourni dans le cadre de l'application publiée

Montez le fichier sur /artifacts/objectstack.json et pointez le runtime dessus :

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

Le volume objectos-data contient la base de données SQLite (lorsqu'aucune base de données externe n'est configurée) ainsi que tous les fichiers téléversés stockés localement.

Utiliser Postgres au lieu de SQLite

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

Consultez la Configuration du runtime pour la matrice complète des pilotes et des options de connexion.

Docker Compose

Un fichier docker-compose.yml de référence se trouve dans le dépôt, sous 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

Le port par défaut est 3000 ; remplacez-le avec OBJECTOS_PORT=3200 docker compose ....

Construire votre propre image

Si vous devez intégrer un artefact, des plugins personnalisés ou votre propre bundle SSL/CA :

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

Le Dockerfile fourni est une build multi-étapes qui produit une image runtime légère basée sur Node 20 Alpine.

Ce que vous devez garder séparé

RessourceOù elle doit se trouver
Artefact (objectstack.json)Image (immuable) ou volume monté
Base de données métierPostgres / MySQL / Mongo géré en externe
Identité et sessionsMême base de données
Fichiers téléversésS3 / R2 / volume disque géré en externe
Secrets (OS_AUTH_SECRET, URL de la base, clés d'API)Votre gestionnaire de secrets, injectés en tant que variables d'environnement
Logsstdout — collectés par votre pilote de logs

Vérifier

Après le démarrage :

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

Connectez-vous ensuite sur http://localhost:3000/_account/register et confirmez que l'API répond :

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

Étapes suivantes

On this page