Sets up the initial project infrastructure only, no business modules yet: - apps/api: Express/TypeScript backend skeleton (healthcheck route, zod-validated env config, error handling, Prisma initialized with no models yet, Postgres as the target DB) - apps/web: React/Vite/TypeScript frontend skeleton, Capacitor-ready for the future mobile app - packages/shared: empty placeholder for types/schemas shared between api and web once the data model is defined - Tooling: Biome (lint/format), Mocha+Chai+Supertest (api tests), Cypress (web e2e smoke test), GitHub Actions CI (lint + test + build + e2e) - docker-compose.yml for local Postgres - README documents setup steps, including the Cypress binary caveat (pnpm install doesn't always fetch the native binary — needs `cypress install` run locally per machine) Fixes along the way: - apps/web/cypress.config.ts: disable GPU on browser launch for headless/sandboxed environments - apps/web/tsconfig.*: split into solution/app/node tsconfig files (standard Vite pattern) — the previous single-file setup caused `tsc -b` to emit compiled .js/.d.ts next to vite.config.ts and cypress.config.ts
20 lines
538 B
YAML
20 lines
538 B
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
restart: unless-stopped
|
|
environment:
|
|
POSTGRES_USER: ${POSTGRES_USER:-batchcooking}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD:-batchcooking}
|
|
POSTGRES_DB: ${POSTGRES_DB:-batchcooking}
|
|
ports:
|
|
- "${POSTGRES_PORT:-5432}:5432"
|
|
volumes:
|
|
- postgres_data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER:-batchcooking}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 5
|
|
|
|
volumes:
|
|
postgres_data:
|