62 lines
1.4 KiB
Markdown
62 lines
1.4 KiB
Markdown
# Quickstart (Docker Compose)
|
||
|
||
This is the fastest way to run Mission Control locally or on a single host.
|
||
|
||
## What you get
|
||
|
||
From `compose.yml` you get three services:
|
||
|
||
- Postgres (`db`)
|
||
- FastAPI backend (`backend`) on `http://localhost:8000`
|
||
- Next.js frontend (`frontend`) on `http://localhost:3000`
|
||
|
||
## Prerequisites
|
||
|
||
- Docker + Docker Compose v2 (`docker compose`)
|
||
|
||
## Run
|
||
|
||
From repo root:
|
||
|
||
```bash
|
||
cp .env.example .env
|
||
|
||
docker compose -f compose.yml --env-file .env up -d --build
|
||
```
|
||
|
||
Open:
|
||
- UI: http://localhost:3000
|
||
- Backend health: http://localhost:8000/healthz
|
||
|
||
## Verify
|
||
|
||
```bash
|
||
curl -f http://localhost:8000/healthz
|
||
curl -I http://localhost:3000/
|
||
```
|
||
|
||
## Common gotchas
|
||
|
||
- `NEXT_PUBLIC_API_URL` must be reachable from your **browser**.
|
||
- If it’s missing/blank/wrong, the UI may load but API calls will fail (e.g. Activity feed blank).
|
||
- If you are running locally without Clerk:
|
||
- keep `NEXT_PUBLIC_CLERK_PUBLISHABLE_KEY` unset/blank so Clerk stays gated off in the frontend.
|
||
|
||
## Useful commands
|
||
|
||
```bash
|
||
# tail logs
|
||
docker compose -f compose.yml --env-file .env logs -f --tail=200
|
||
|
||
# stop (keeps data)
|
||
docker compose -f compose.yml --env-file .env down
|
||
|
||
# reset data (DESTRUCTIVE)
|
||
docker compose -f compose.yml --env-file .env down -v
|
||
```
|
||
|
||
## Next
|
||
|
||
- Want a faster contributor loop? See [Development](03-development.md) (DB via Compose, backend+frontend in dev mode).
|
||
- Need to change env vars/migrations/CORS? See [Configuration](06-configuration.md).
|