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:latestTags disponibles :
| Tag | Canal |
|---|---|
latest | Dernière build de main (recommandé pour une première évaluation) |
main | Identique à latest, mais explicite |
sha-<short> | Épinglé sur un commit précis (recommandé pour la production) |
vX.Y.Z, X.Y, X | Releases 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:latestOuvrez 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 :
| Source | Comment |
|---|---|
| Votre propre projet | pnpm exec objectstack compile après avoir modifié objectstack.config.ts |
| Un template | Clonez depuis le dépôt de templates, exécutez pnpm install && pnpm exec objectstack compile |
| Marketplace d'applications | Fourni 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:latestLe 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:latestConsultez 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 upLe 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é
| Ressource | Où elle doit se trouver |
|---|---|
Artefact (objectstack.json) | Image (immuable) ou volume monté |
| Base de données métier | Postgres / MySQL / Mongo géré en externe |
| Identité et sessions | Même base de données |
| Fichiers téléversés | S3 / 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 |
| Logs | stdout — 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
- Kubernetes — orchestration de niveau production
- Air-gapped — exécution sans accès Internet sortant
- Préparation à la production — checklist de pré-vol
- Observabilité — logs, métriques, audit