Skip to content

feat(infra): add cross-platform full-stack launcher #222

Description

@parthrohit22

Problem

PARTHA's current Compose stack starts the API, PostgreSQL, and Redis, while the React frontend must be started separately. This makes clean-checkout evaluation and contributor onboarding less repeatable, and the reverted PR #216 used an incorrect browser API hostname.

Proposed change

Add a source-built frontend development image and Compose service, plus a cross-platform npm run partha Node launcher. The browser-facing API URL must remain http://localhost:8000; PostgreSQL and Redis must remain host-isolated. Ordinary shutdown must preserve the existing database and repository-storage volumes.

Acceptance criteria

  • npm run partha works on macOS, Linux, and Windows when Node/npm and Docker Engine with Compose/buildx are installed.
  • The command builds and starts frontend, API, PostgreSQL, and Redis from the checkout.
  • Frontend is available at http://localhost:5173 and can call the API at http://localhost:8000.
  • Missing Docker, Compose, buildx, or daemon state fails with an actionable message.
  • Ctrl+C/SIGTERM runs docker compose down without deleting named data/storage volumes.
  • PostgreSQL and Redis retain no host port bindings.
  • README documents the launcher, prerequisites, persistence, standalone alternatives, and explicit docker compose down -v reset.
  • Compose, backend, frontend, prototype, and live browser verification pass with real recorded results.
  • OpenAPI and product contracts do not change.

Roadmap alignment

  • §23 workstream: W7 / Platform — repeatable hosted and self-hosted operations and onboarding.
  • §28 criterion: Deployment repeatability — reference environments install and operate predictably.
  • Merge-gate evidence: clean source builds, Compose validation, live readiness checks, browser-to-API verification, signal cleanup, and preservation of isolated data volumes.

This is dev-tooling/onboarding only and does not add a product surface. It follows merged PR #214's host-isolated data-tier posture and replaces the reverted approach from PR #216.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions