Quickstart
Docker Compose (recommended)
The fastest way to get Llaboratory running:
git clone https://github.com/ampyard/Llaboratory.git
cd Llaboratory
cp .env.example .env # then edit .env with your API keys
docker compose up --build
cd Llaboratory
cp .env.example .env # then edit .env with your API keys
docker compose up --build
Important: Set at least one API key in .env before running docker compose up. The backend reads keys from the environment at startup — sessions will fail fast if a referenced variable is unset.
Open http://localhost:5173 for the UI. The frontend proxies API calls to the backend container on port 8000.
Manual setup
Backend
# Requires Python 3.11+ and uv
cd backend
uv venv
uv pip install -e ".[dev]"
cp ../.env.example ../.env # fill in your API keys
uv run uvicorn app.main:app --reload
cd backend
uv venv
uv pip install -e ".[dev]"
cp ../.env.example ../.env # fill in your API keys
uv run uvicorn app.main:app --reload
Frontend
# Requires Node.js 18+
cd frontend
npm install
npm run dev
cd frontend
npm install
npm run dev
Open http://localhost:5173 — the frontend proxies /api to :8000.
Configuration
Copy .env.example to .env in the project root and set at least one API key:
OPENAI_API_KEY=sk-...
OPENROUTER_API_KEY=sk-or-...
# or any OpenAI-compatible provider
OPENROUTER_API_KEY=sk-or-...
# or any OpenAI-compatible provider
API keys are read from environment variables at session start. They are never stored in the database or export bundles.
Running tests
Backend
cd backend && uv run pytest -v --tb=short
Frontend
cd frontend && npm test