Skip to content
Strata v1.2.6

Quick Start

🚀 How do I run Strata? Choose Docker (recommended, 5 minutes), local development, or Tauri desktop app.

  • Docker — for containerized development (recommended). Works with standalone docker-compose v2 OR Docker Desktop.
  • Node.js 24 — required only for local development without Docker. nodejs.org

Strata ships one docker-compose.yml with two flavours toggled by env vars.

ScriptPurpose
npm run docker:devStart stack, keep DB, use existing images (no rebuild)
npm run docker:resetRebuild images + fresh DB, BuildKit cache preserved
npm run docker:nukeRebuild images + fresh DB, BuildKit cache cleared
npm run docker:prodRebuild images for production + start all services, keep DB
npm run docker:downStop all containers

First time or after a Dockerfile change — build images and start with demo data:

Terminal window
npm run docker:reset

Daily development — start the already-built stack in seconds:

Terminal window
npm run docker:dev

Production-like mode (Swagger off, restart=always, NODE_ENV=production):

Terminal window
npm run docker:prod

Nuclear option — when you suspect a corrupted npm or Prisma cache:

Terminal window
npm run docker:nuke
ServiceURL
Backend APIhttp://localhost:3000/api/v1
Swagger UIhttp://localhost:3000/swagger
Frontendhttp://localhost:4321
Docshttp://localhost:8001/docs/

For the “real” Strata experience — a native macOS window and menu bar.

ScriptPurpose
npm run tauri:devRebuild app + launch dev mode (devtools on), keep DB
npm run tauri:resetRebuild app + fresh DB, Astro cache preserved
npm run tauri:nukeRebuild app + fresh DB, Astro cache cleared
npm run tauri:buildBuild distributable .app bundle, does not launch
npm run tauri:prodBuild .app bundle + launch in production mode, keep DB

Development — rebuild and launch with devtools:

Terminal window
npm run tauri:dev

Beta testing — build the production .app and launch it locally:

Terminal window
npm run tauri:prod

The .app auto-spawns the NestJS backend (port 3456) and Astro frontend (port 4321) as sidecars. In tauri:dev, SQLite lives at backend/.data/strata-dev.db (shared with Docker dev). In production .app builds, SQLite lives at ~/Library/Application Support/Strata/strata.db.

Reset dev data — fresh DB with seeded demo data, keep Astro build cache:

Terminal window
npm run tauri:reset

The window title shows the version (e.g. Strata 1.4.2). tauri:dev shows (DEV) and uses backend/.data/strata-dev.db. Production .app builds use ~/Library/Application Support/Strata/strata.db. See Versioning and Recovery for the full story.

Terminal window
npm run release -- X.Y.Z

This validates the semver format, checks your working tree is clean, creates git tag vX.Y.Z, and pushes it to origin. After tagging, run docker:prod or tauri:prod to build and start the new version.

If npm run docker:dev or docker:reset fails because a port is already taken:

Terminal window
# Find what's occupying port 3000 (NestJS API)
lsof -i :3000
# PID shown in the second column — replace 12345 with the actual PID
kill 12345
# Same for the frontend (4321) and docs (8001) if needed
lsof -i :4321
lsof -i :8001

The most common cause is a stale local NestJS process from a previous npm run start:dev that wasn’t stopped. The docker:dev and docker:reset commands include an automatic port check that prints the blocking PID and the exact kill command to run.

docker:dev starts the existing images without rebuilding or resetting the database. To get clean, freshly seeded demo data:

Terminal window
npm run docker:reset

This wipes strata-dev.db, rebuilds images, runs migrations, and re-seeds the demo assets.

After importing a backup via Settings → Import, the frontend may show old data from the React Query cache. Refresh the page (Cmd+R) to reload the latest data.

These messages appear in the Docker build output and are safe to ignore:

WarningWhy it appearsSeverity
Entry docs → 404 was not foundAstro Starlight always generates a 404 page — this log line is from Astro’s build step, not an actual errorSafe to ignore
npm warn deprecated glob@...Transitive dependency of build tools (not Strata’s direct dep) — will go away when upstream tools updateSafe to ignore
WARN Docker Compose requires buildx pluginUsing standalone docker-compose v1/v2 instead of docker compose plugin — both work correctlySafe to ignore
Terminal window
cd backend
npm test # Unit tests (Jest)
npm run test:e2e # E2E tests (Supertest)
Terminal window
cd front
npm test # Unit tests (Vitest)
npm run test:e2e # E2E tests (Playwright)
strata/
├── backend/ ← NestJS API (port 3000)
├── front/ ← Astro + React UI (port 4321)
├── docs/ ← Astro Starlight documentation
├── .bruno/ ← Bruno API collection (all endpoints)
└── docker-compose.yml