8d742518f8
- 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
62 lines
1.3 KiB
Markdown
62 lines
1.3 KiB
Markdown
# Petmaster CRM - Docker Compose Setup
|
|
|
|
## Quick Start
|
|
|
|
Start all services:
|
|
docker compose up --build
|
|
|
|
Or detached mode:
|
|
docker compose up -d --build
|
|
|
|
Services will be available at:
|
|
- Frontend: http://localhost:3001
|
|
- API: http://localhost:3000
|
|
- API Docs: http://localhost:3000/api/docs
|
|
- PostgreSQL: localhost:5432
|
|
|
|
## Configuration
|
|
|
|
Copy and configure environment:
|
|
cp .env.example .env
|
|
cp api/.env.example api/.env
|
|
|
|
Edit .env with your settings:
|
|
STRIPE_SECRET_KEY=sk_live_your_key_here
|
|
JWT_SECRET=your_secure_secret
|
|
|
|
## Stop Services
|
|
|
|
Remove containers:
|
|
docker compose down
|
|
|
|
Remove containers and volumes:
|
|
docker compose down -v
|
|
|
|
## Database
|
|
|
|
Run migrations manually:
|
|
docker compose exec api npx prisma migrate dev --name init
|
|
|
|
Seed the database:
|
|
docker compose exec api npx prisma db seed
|
|
|
|
## Development
|
|
|
|
The API has hot-reload enabled via volume mount (./api/src:/app/src).
|
|
Changes to TypeScript files will automatically restart the NestJS server.
|
|
|
|
The frontend uses react-scripts for development with hot reload.
|
|
|
|
## Production
|
|
|
|
For production deployment:
|
|
|
|
1. Set production environment variables
|
|
2. Use multi-stage Docker builds (already configured)
|
|
3. Consider adding:
|
|
- Reverse proxy (nginx/traefik)
|
|
- SSL certificates (Let's Encrypt)
|
|
- Redis for WebSocket scaling
|
|
- SMTP for email notifications
|
|
- Stripe webhook endpoint
|