Strata is a self-hosted personal asset manager that tracks your full net worth — bank accounts, investments, real estate, vehicles, collectibles, anything — across portfolios, snapshots, categories and tags. Backend is a NestJS + Prisma API over SQLite; frontend is an Astro + React + Tailwind UI; both ship in Docker so a fresh laptop is always one command away from a working install.
📚 Live documentation: https://strata.ducatillon.net/docs/
| Path | What lives here |
|---|---|
backend/ |
NestJS 11 API, Prisma schema & migrations, Jest unit + e2e tests |
front/ |
Astro 6 + React 19 + Tailwind v4 UI, Vitest + Playwright tests |
docs/ |
Astro Starlight documentation site (deployed to https://strata.ducatillon.net/docs/) |
.bruno/Strata/ |
Bruno API collection — every endpoint, ready to run |
docker-compose.yml |
Backend + frontend + docs, ready to up |
src-tauri/ |
Tauri v2 desktop wrapper (macOS) — spawns backend + frontend as sidecars |
Requires Docker Desktop (or Docker + Compose).
First run (builds all images):
git clone https://github.com/fducat18/strata.git
cd strata
docker-compose up --buildWith npm scripts (recommended for development):
npm install # installs dev tools (Tauri CLI, etc.)
npm run docker:dev # start with existing images (~10s after first build)
npm run docker:reset # fresh DB + layer-cached build (after schema changes)
npm run docker:nuke # full nuclear reset (wipes images + DB)For the full script reference (docker/tauri/release), see the Quickstart docs.
| Service | URL |
|---|---|
| Backend API | http://localhost:3000/api/v1 |
| Swagger UI | http://localhost:3000/swagger |
| Frontend | http://localhost:6543 |
| Docs | http://localhost:8001 |
The SQLite database persists in backend/.data/strata-dev.db. To start fresh: npm run docker:reset.
Each package has its own README with the full command table:
- Backend — see
backend/README.md - Frontend — see
front/README.md - Docs site —
cd docs && npm install && npm run dev
For architecture, data model, migrations workflow and recovery procedures, read the docs site.
Open the Bruno collection in .bruno/Strata/ for a ready-to-run set of requests against http://localhost:3000/api/v1.
Strata is released under the Apache-2.0 License. See LICENSE.
