Getting Started¶
What IRIS Runs¶
IRIS currently ships as one repository with:
- a FastAPI backend
- PostgreSQL / TimescaleDB storage
- Redis Streams and TaskIQ workers
- a Vue 3 frontend
The backend owns HTTP, scheduler wiring, stream consumers, and worker process startup.
Quick Start With Docker¶
Default full-stack launch:
docker compose up --build
Dedicated backend-only modes:
Embedded backend:
docker compose -f docker-compose.backend-embedded.yml up --build backend
External PostgreSQL / Redis:
DATABASE_URL=postgresql+psycopg://iris:iris@db.example.internal:5432/iris \
REDIS_URL=redis://redis.example.internal:6379/0 \
docker compose -f docker-compose.backend-external.yml up --build backend
Development mode with bind mounts and automatic container restart on file changes:
docker compose -f docker-compose.backend-dev.yml up --build --watch backend
Default local endpoints:
- Backend:
http://localhost:8000 - Frontend:
http://localhost:3000in the full-stackdocker-compose.yml - Postgres:
localhost:55432 - Redis:
localhost:56379
Embedded and dev modes start PostgreSQL 17 + TimescaleDB and Redis inside the backend container unless DATABASE_URL and/or REDIS_URL are explicitly provided.
Host-Side Backend Development¶
- Prepare the backend environment:
cd backend
cp .env.example .env
uv sync --group dev
- Ensure
DATABASE_URLandREDIS_URLin.envpoint to reachable services.
Notes:
.env.exampledefaults tolocalhost:55432andlocalhost:56379, which match the ports exposed by the embedded/dev backend compose files.- TimescaleDB support is required. Plain PostgreSQL is not sufficient for the full migration set.
-
Market-data API key setup is documented in Market Data API Keys.
-
Run prestart:
uv run python -m iris.core.bootstrap.prestart
- Run backend tests:
uv run pytest
- Run the backend locally:
uv run python -m iris.main
When running the backend outside Docker, migrations are not applied from the app lifespan. You must run iris.core.bootstrap.prestart or apply Alembic migrations yourself before starting iris.main.
Frontend Development¶
npm --prefix frontend install
npm --prefix frontend run dev
Useful Repository Commands¶
From the repository root:
make openapi-check
make api-matrix-check
make api-capabilities-check
make lint backend
make lint frontend
To build the documentation site locally:
uvx --with mkdocs-material mkdocs build
Configuration Notes¶
backend/.env.exampleis configured for host-side development against the published embedded/dev Docker ports.- The default local setup does not require production market-data credentials to boot the product.
- Official key acquisition links for credentialed providers live in Market Data API Keys.
- The repository includes mode/profile-aware HTTP exposure, so not every route is available in every runtime profile.