# Quick Reference: Development & Production

_For detailed setup instructions, see `GETTING_STARTED.md`_

## Development Commands

```bash
# Initial setup
cp .env.dev.example .env && pnpm install

# Daily development
pnpm dev:start    # Start services (PostgreSQL + Redis)
pnpm dev          # Start apps with hot reload

# Database management
pnpm dev:migrate  # Run database migrations
pnpm db:studio    # Open Prisma Studio (database GUI)
pnpm dev:tools    # Admin tools (Adminer + Redis Commander)

# Service management
pnpm dev:status   # Check service status
pnpm dev:logs     # View service logs
pnpm dev:restart  # Restart services
pnpm dev:stop     # Stop all services
pnpm dev:reset    # Reset development environment

# Code quality
pnpm lint         # Run linting across all packages
pnpm type-check   # Run TypeScript checks
pnpm format       # Format code with Prettier
```

## Default Ports

- **Frontend**: http://localhost:3000 (configurable via `NEXT_PORT`)
- **Backend**: http://localhost:4000 (configurable via `BFF_PORT` or `PORT`)
- **Adminer**: http://localhost:8080 (when using `pnpm dev:tools`)
- **Redis Commander**: http://localhost:8081 (when using `pnpm dev:tools`)

## Hiding Next dev proxy deprecation warnings (Portal ➝ BFF)

If you see Node warnings like `(node:...) [DEP0060] DeprecationWarning: The util._extend API is deprecated`, they typically come from Next's internal dev proxy used for `rewrites()` (see `apps/portal/next.config.mjs`).

The preferred fix is to **bypass the Next rewrite-proxy** and call the BFF directly via CORS:

- **Portal**: set `NEXT_PUBLIC_API_BASE=http://localhost:4000`
- **BFF**: set `CORS_ORIGIN=http://localhost:3000`

Then restart `pnpm dev`.

## Production Commands

_For detailed deployment guide, see `DEPLOY.md`_

```bash
# Setup
cp .env.production.example .env  # Edit with production values

# Deploy
pnpm prod:deploy    # Build + start + migrate

# Management
pnpm prod:status    # Check service status
pnpm prod:logs      # View service logs
pnpm prod:update    # Update deployment
pnpm prod:restart   # Restart services
pnpm prod:stop      # Stop services
pnpm prod:backup    # Backup data
pnpm prod:cleanup   # Clean up old resources
```

## Production Endpoints

- **Portal**: https://yourdomain.com
- **API**: https://yourdomain.com/api
- **Health**: https://yourdomain.com/healthz

## Security Notes

- Nginx enforces HTTPS, HSTS, CSP and rate limiting
- Backend disables `x-powered-by`, supports `trust proxy`
- Never commit `.env` file - keep secrets secure
