# WebMap Feature **Purpose**: Multi-tenant domain routing and website management **Status**: Migration in progress --- ## Components | Component | Port | Purpose | |-----------|------|---------| | webmap-router | 4002 | Domain routing (Fastify) | | webmap-api | 4003 | Website CRUD (NestJS) | | webmap-frontend | 5101 | Admin UI (React) | --- ## Structure ``` webmap/ ├── router/ # Fastify domain router │ ├── src/ │ │ ├── services/ │ │ │ ├── deployment-resolver.ts │ │ │ └── config-injector.ts │ │ └── main.ts │ └── package.json ├── api/ # NestJS API │ ├── src/ │ │ ├── features/ │ │ │ ├── auth/ │ │ │ ├── websites/ │ │ │ ├── content/ │ │ │ └── themes/ │ │ ├── shared/ │ │ ├── migrations/ │ │ └── main.ts │ └── package.json ├── frontend/ # React admin UI │ ├── src/ │ └── package.json ├── shared/ # Shared types │ ├── src/ │ └── package.json └── database/ # Migrations and seeds ├── migrations/ └── seeds/ ``` --- ## How It Works 1. **nginx** receives request for `trustedmeet.com/some/path` 2. **nginx** proxies to webmap-router (port 4002) 3. **webmap-router** queries database for domain + path 4. **webmap-router** finds app=marketplace, basePath=/ 5. **webmap-router** reads `/var/www/apps/marketplace/index.html` 6. **webmap-router** injects `__WEBMAP_DEPLOYMENT__` config 7. **webmap-router** returns modified HTML 8. **Browser** loads app with injected config --- ## Database Schema ### websites | Column | Type | Description | |--------|------|-------------| | id | UUID | Primary key | | slug | TEXT | Unique identifier | | domains | TEXT[] | Domain list (GIN indexed) | | branding | JSONB | Display name, logo, etc. | | theme | JSONB | Colors, mode | | is_active | BOOLEAN | Deployment enabled | ### website_apps | Column | Type | Description | |--------|------|-------------| | id | UUID | Primary key | | website_id | UUID | FK to websites | | app | TEXT | App name (marketplace, seo, etc.) | | base_path | TEXT | URL path (/, /_/, /admin/) | | features | JSONB | Feature flags | --- ## Development ```bash # Start all services cd features/webmap # Router cd router && pnpm dev # API cd api && pnpm dev # Frontend cd frontend && pnpm dev ``` --- ## Migration Source - Router: `egirl-platform/@services/webmap-router/` - API: `egirl-platform/@services/webmap-api/` --- ## Related Documentation - [Migration Plan](../../../project/plan/migrations/WEBMAP_MIGRATION.md) - [V1 Launch Plan](../../../project/plan/MVP_LAUNCH_V1.md) - [Technical Docs](../../../docs/technical/WEBMAP_ROUTER.md)