Implementation:Ucbepic Docetl Docker Compose Launch
| Knowledge Sources | |
|---|---|
| Domains | DevOps, Web_Application |
| Last Updated | 2026-02-08 01:40 GMT |
Overview
Concrete Docker Compose and FastAPI setup for launching the DocWrangler playground.
Description
The DocETL playground is launched via docker compose up which starts a combined container running both the FastAPI backend and Next.js frontend. The FastAPI app is configured with CORS middleware, health check endpoint, and route modules for pipeline execution, file management, and document conversion. Environment variables configure ports, API keys, and allowed origins.
Usage
Use docker compose up for production-like deployment. For development, run the backend (uvicorn) and frontend (npm run dev) separately with appropriate environment variables.
Code Reference
Source Location
- Repository: docetl
- File: docker-compose.yml (L2-39), server/app/main.py (L17-40)
Signature
# Docker deployment
docker compose up
# Manual backend
cd server && uvicorn app.main:app --host 0.0.0.0 --port 8000 --reload
# Manual frontend
cd website && npm run dev
# FastAPI app setup (server/app/main.py)
app = FastAPI()
app.add_middleware(CORSMiddleware, allow_origins=[...])
app.include_router(pipeline.router)
app.include_router(filesystem.router)
app.include_router(convert.router)
@app.get("/health")
def health_check():
return {"status": "healthy"}
Import
docker compose up
I/O Contract
Inputs
| Name | Type | Required | Description |
|---|---|---|---|
| OPENAI_API_KEY | env var | Conditional | LLM API key |
| FRONTEND_DOCKER_COMPOSE_PORT | env var | No | Frontend port (default 3031) |
| BACKEND_DOCKER_COMPOSE_PORT | env var | No | Backend port (default 8081) |
| BACKEND_ALLOW_ORIGINS | env var | No | CORS allowed origins |
Outputs
| Name | Type | Description |
|---|---|---|
| Backend | FastAPI server | Running on configured port (default 8000) |
| Frontend | Next.js app | Running on configured port (default 3000) |
| Health endpoint | GET /health | Returns {"status": "healthy"} |
Usage Examples
# Quick start with Docker
echo "OPENAI_API_KEY=sk-..." > .env
docker compose up
# Access playground at http://localhost:3031