RenalFusion is a web application for annotating glomeruli in whole-slide kidney biopsy images. It's built on top of the Digital Slide Archive (DSA) / Girder platform for slide storage and tile serving, and provides an annotation workspace on top of it.
Status: active research prototype. Core pieces — auth, DSA/Girder wiring, the tile viewer, and annotation persistence — are still being built out. See
NEXT_STEPS.mdfor the current punch list. This repo does not ship with any slide images, annotations, or patient data — you'll need your own DSA instance to use it against real slides.
- Next.js (App Router) + TypeScript
- SQLite (via
better-sqlite3) for local app data - DSA/Girder as the slide/annotation backend (external dependency, not included)
- Vitest for tests
Requires Node 18+ (Node 24 recommended — matches the Docker image).
npm install --legacy-peer-deps
cp .env.example .env.local
# then edit .env.local — see "Configuration" below
npm run devOpen http://localhost:3000.
Copy .env.example to .env.local and fill in:
| Variable | Description |
|---|---|
DSA_BASE_URL |
Base URL of a running Digital Slide Archive / Girder instance (no trailing slash). Required for any of the /api/dsa/* routes to work. |
DATABASE_URL |
Path to the local SQLite file (defaults to /app/data/renalfusion.db in Docker). |
NEXTAUTH_SECRET |
Secret used to sign session cookies. Generate with openssl rand -base64 32. |
PORT / NODE_ENV |
Standard Next.js runtime settings. |
RenalFusion doesn't include or stand up a DSA instance — you need access to one (self-hosted or otherwise) for the DSA-backed features to function.
cp .env.example .env
docker compose up --buildThis builds and runs the app on port 8210 (mapped to 3000 in the
container), with ./data mounted in for the SQLite database.
There's also a one-off migrate profile for importing data from a legacy
SQLite database:
docker compose --profile migrate run migratenpm test # run the test suite once
npm run test:coverage # with coverageCopyright © 2026 University of Florida and the project contributors. Released under the MIT License.