Files
petmaster/docker-compose.yml
T
Robert Perez 8d742518f8 feat: Full petmaster CRM with NestJS API and React frontend
- Client management (CRUD with JSONB custom fields)
- Pet profiles
- Service catalog with per-client pricing
- Booking calendar with recurring appointments
- Invoicing with Stripe integration
- Real-time messaging (WebSocket)
- Self-booking portal
- Staff assignment
- Docker multi-stage builds
- Prisma schema + seed
2026-07-11 00:17:49 +00:00

51 lines
1.2 KiB
YAML

services:
postgres:
image: postgres:16-alpine
environment:
POSTGRES_DB: petmaster
POSTGRES_USER: petmaster
POSTGRES_PASSWORD: petmaster_secret
ports:
- "5432:5432"
volumes:
- pgdata:/var/lib/postgresql/data
healthcheck:
test: ["CMD-SHELL", "pg_isready -U petmaster"]
interval: 5s
timeout: 5s
retries: 5
api:
build:
context: ./api
dockerfile: Dockerfile
ports:
- "3000:3000"
environment:
DATABASE_URL: postgresql://petmaster:petmaster_secret@postgres:5432/petmaster?schema=public
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:-sk_test_placeholder}
STRIPE_WEBHOOK_SECRET: ${STRIPE_WEBHOOK_SECRET:-whsec_placeholder}
JWT_SECRET: ${JWT_SECRET:-change-me-in-production}
CORS_ORIGIN: http://localhost:3001
depends_on:
postgres:
condition: service_healthy
volumes:
- ./api/src:/app/src # hot-reload in dev
command: >
sh -c "npx prisma migrate deploy && npm run start:dev"
web:
build:
context: ./web
dockerfile: Dockerfile
ports:
- "3001:3001"
environment:
REACT_APP_API_URL: http://localhost:3000
depends_on:
- api
volumes:
pgdata: