Deploy with Docker
Team server mode runs the API, Celery worker, Postgres, Redis, and MinIO.
Quick start
cd OneOpen-ML-Studio
docker compose up -d --build
Open http://localhost:8765. On first visit you are redirected to /setup
to create your team and first admin account.
Optional headless bootstrap (skip the wizard):
export ONEOPEN_BOOTSTRAP_ON_START=true
export ONEOPEN_SESSION_SECRET='long-random-string'
export ONEOPEN_ADMIN_EMAIL=admin@company.com
export ONEOPEN_ADMIN_PASSWORD='strong-password'
docker compose up -d --build
Change secrets for any shared environment:
export ONEOPEN_SESSION_SECRET='long-random-string'
docker compose up -d --build
Services
Service |
Port |
Role |
|---|---|---|
|
8765 |
FastAPI + UI |
|
— |
Celery training worker |
|
5432 |
Primary database |
|
6379 |
Celery broker / result backend |
|
9000 / 9001 |
S3-compatible artifact store (+ console) |
Images stay on the shared /data volume. Export zips and training weights are uploaded to the oneopen MinIO bucket when S3 env vars are set (Compose sets them by default).
Health
GET /api/health— livenessGET /api/ready— database (+ Redis when configured)GET /api/platform— includescelery_enabledandobject_storage
Local development without Docker
# Terminal 1 — API (SQLite, in-process training)
oneopen start
# Optional team stack on the host
export ONEOPEN_DATABASE_URL=postgresql+psycopg://oneopen:oneopen@localhost:5432/oneopen
export ONEOPEN_REDIS_URL=redis://localhost:6379/0
export ONEOPEN_DEPLOYMENT_MODE=team
pip install -e ".[server,yolo]"
oneopen start
# Terminal 2 — Celery worker
oneopen worker
Without ONEOPEN_REDIS_URL, training still runs in a local background thread.