Overview
Introduction
DreamLake Server is the central API that manages the entire DreamLake ecosystem. It handles namespaces, spaces, episodes, assets, folder hierarchy, and semantic search.
Core Concepts
| Concept | Description |
|---|---|
| Namespace | Top-level owner scope (user or team). Maps to a URL slug like alice. |
| Space | A project or workspace within a namespace. Contains episodes and assets. |
| Episode | A time-bounded recording unit — e.g. a robot run, an experiment session. |
| Node | A folder in the hierarchical file tree (materialized paths). |
| Asset | A file (video, audio, label track, text track) stored in BSS and indexed here. |
Architecture
CLI (dreamlake-py)
│
├── Upload file ──→ BSS (S3 storage)
│ │
└── Register asset ──→ DreamLake Server (MongoDB index)
│
└──→ DreamLake Frontend (browse + search)DreamLake Server is the metadata layer. All binary data lives in BSS / S3. The server provides:
- Asset registration — link uploaded files to spaces and episodes
- Node hierarchy — folder tree with browse, rename, move, delete
- Episode management — create, update, organize recording sessions
- Search — vector-based semantic search via Qdrant
- Logs & parameters — structured logging and experiment config storage
Tech Stack
| Component | Technology |
|---|---|
| Framework | Fastify |
| Database | MongoDB (via Prisma) |
| Auth | JWT (vuer-auth integration) |
| Search | Qdrant (vector embeddings) |
| Storage | Delegates to BSS (S3) |
Quick Start
# Start dependencies
cd docker && docker compose up -d
# Start the server
cd dreamlake-server && pnpm dev
# → http://localhost:10334