Production target: https://debugpath.dev
Self-hostable investigation workspace for turning messy production evidence into one coherent debug surface.
DebugPath is a browser-first debug artifact workspace for production investigations. It is being built as a Bun monorepo with an Astro web app, an Elysia API, shared Zod contracts, PostgreSQL metadata, MinIO-backed artifact storage, and Caddy for local integration parity.
This repo now has the Phase 3 investigation shell underway:
apps/webserves the public overview, sign-in flow, investigation list, and investigation edit shell as Astro-owned pages.apps/apinow includes session-backed auth routes, workspace-aware investigation CRUD routes, audit-event writes for account and investigation actions, and the PostgreSQL access layer.db/migrations/0001_initial_schema.sqlcreates the initial relational model for users, workspaces, investigations, artifacts, notes, ingestion jobs, bundles, and share links.db/migrations/0002_auth_sessions_and_audit.sqladds password-backed auth, server-side sessions, and audit-event storage.db/scripts/migrate.tsapplies deterministic SQL migrations with checksum tracking.db/scripts/seed.tscreates a rerunnable local seed graph rooted indebugpath.devsample data and a seed login for the local shell.apps/api/test/integration/auth.integration.test.tsverifies registration, sign-in, investigation CRUD, and negative authorization checks against PostgreSQL.
Phase 3 is not fully done yet. The app shell is real, but broader audit coverage, browser automation, and the next artifact-ingestion tranche still remain.
Astro owns routes, layouts, page data loading, and first-rendered investigation shells. Vue is not part of the current app shell. Only introduce Vue for a specific DebugPath workflow when plain Astro plus HTML becomes awkward because of sustained client-side state, such as:
- dense timeline filtering
- inspector state that spans multiple panes
- drag-and-drop upload state that becomes complex
- bundle composition with substantial multi-select interactions
If that threshold is not met, stay with Astro.
apps/
api/
web/
packages/
contracts/
db/
migrations/
scripts/
seeds/
ops/
docker/
compose.yaml
Caddyfile
-
Install dependencies:
bun install
-
Optional: copy
.env.example,apps/api/.env.example, orapps/web/.env.exampleinto local.envfiles if you need to override defaults. -
Start the local stack:
bun run dev
That command:
- starts or refreshes PostgreSQL on
localhost:5433, MinIO, and Caddy via Docker Compose - runs the Elysia API on
http://localhost:3000 - runs the Astro app on
http://localhost:4321 - exposes the integrated entrypoint at
http://localhost:8080
bun run devauto-detects a host LAN IP for the Caddy upstreams on this macOS setup. If another host needs different routing, overrideDEBUGPATH_WEB_UPSTREAMandDEBUGPATH_API_UPSTREAMin.env. - starts or refreshes PostgreSQL on
-
Apply the database schema and seed local data:
bun run db:migrate bun run db:seed
-
Sign in through the integrated app shell at
http://localhost:8080/login.Local seeded credentials after
bun run db:seed:- email:
[email protected] - password:
debugpath-dev-password
- email:
-
Stop infrastructure when you are done:
bun run infra:down
The repo verification flow remains:
bun run verifyCurrent build verification for the database-backed shell also expects PostgreSQL coverage:
bun run db:migrate
bun run db:seed
bun run test:api:integrationapps/webowns Astro pages, layouts, sign-in rendering, investigation list rendering, and the first investigation CRUD shell.apps/apiowns auth, session handling, workspace-aware investigation routes, audit-event writes, versioned API entrypoints, and the database access layer.packages/contractsowns request and response contracts.- PostgreSQL is the source of truth for accounts, workspaces, investigations, and the wider normalized investigation model.
- Object storage remains the blob layer once artifact ingestion lands in Phase 4.