Start the backend with Docker Compose
The Iris backend and dashboard are packaged as a single Docker container. Clone the repository (or copy Docker Compose maps port
docker-compose.yml) and run:8081 on your host to port 8080 inside the container and mounts ./data for SQLite persistence. Once the container is running, the server:- Serves the backend API at
http://localhost:8081/api - Serves the React dashboard at
http://localhost:8081/ - Creates and persists the SQLite database at
./data/iris.db
Install the SDK
Add the The package ships ESM, CJS, and TypeScript declaration files. It has a single runtime dependency:
@bigchill101/iris client package to your website project:web-vitals.Initialize Iris in your app
Initialize Iris once at the root of your application — for example in
_app.tsx, layout.tsx, or main.ts. Pass autocapture.pageviews: true to enable automatic pageview tracking on every navigation.start() fires an initial $pageview event immediately, then patches history.pushState and listens to popstate so every SPA route change is tracked automatically.The
autocapture option defaults to false if omitted. You must pass an AutocaptureConfig object with the features you want enabled — or enable them individually.Track custom events
Calliris.track() anywhere in your app to record custom events alongside pageviews:Enable event batching (optional)
By default each event sends an immediate HTTP request. Enable batching to queue events and flush them together — useful for high-traffic pages:Verify it's working
Open the dashboard at
http://localhost:8081/ and enter your site’s domain in the domain input field.Navigate around your website a few times, then check the dashboard for:- Pageviews — each navigation increments the count
- Top pages — the URLs you visited appear in the pages table
- Web Vitals — LCP, INP, and CLS scores appear after the browser reports them
Next steps
SDK configuration
Full reference for all
IrisConfig options including batching and debug mode.Tracking events
Learn how to track custom events and what properties are captured automatically.
Self-hosting with Docker
Environment variables, volume mounts, and production deployment considerations.
API reference
Full reference for all backend HTTP endpoints.