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

api

8765

FastAPI + UI

worker

Celery training worker

postgres

5432

Primary database

redis

6379

Celery broker / result backend

minio

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 — liveness

  • GET /api/ready — database (+ Redis when configured)

  • GET /api/platform — includes celery_enabled and object_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.