140 lines
3.8 KiB
YAML
140 lines
3.8 KiB
YAML
# =============================================================================
|
|
# Quinn Analytics Deployment (data.transquinnftw.com)
|
|
# =============================================================================
|
|
# transquinnftw analytics cluster — website + provider dashboards + event collection.
|
|
# Sources span two external repos:
|
|
# Collector + BFF: @applications/@analytics
|
|
# Dashboards: lilith-platform/codebase/features/platform-analytics/
|
|
|
|
deployment:
|
|
id: quinn.data
|
|
name: Quinn Analytics
|
|
feature: platform-analytics
|
|
domain: data.transquinnftw.com
|
|
description: Website analytics dashboard (/) + provider analytics dashboard (/provider/) + event collection
|
|
|
|
orchestration:
|
|
dependencies: []
|
|
entryPoints:
|
|
- quinn.data.frontend
|
|
lifecycle:
|
|
keepAlive: true
|
|
autostart: false
|
|
|
|
services:
|
|
- id: website-frontend
|
|
type: frontend
|
|
port: 5122
|
|
source: external
|
|
repo: lilith-platform
|
|
entrypoint: codebase/features/platform-analytics/frontend-website
|
|
description: Website analytics dashboard — traffic, referrers, page views (Vite + React)
|
|
staticDist: /var/www/quinn.data/website/dist
|
|
healthCheck:
|
|
type: http
|
|
path: /
|
|
|
|
- id: provider-frontend
|
|
type: frontend
|
|
port: 5111
|
|
source: external
|
|
repo: lilith-platform
|
|
entrypoint: codebase/features/platform-analytics/frontend-provider
|
|
description: Provider analytics dashboard — profile performance, earnings, acquisition (Vite + React)
|
|
staticDist: /var/www/quinn.data/dist
|
|
healthCheck:
|
|
type: http
|
|
path: /
|
|
|
|
- id: bff
|
|
type: backend
|
|
port: 4005
|
|
source: external
|
|
repo: "@applications/@analytics"
|
|
entrypoint: services/bff
|
|
description: |
|
|
Website analytics BFF (user-data). Proxies tracking to collector.
|
|
Queries /api/* are composed and forwarded to quinn-api (which serves the
|
|
analytics query surface against the prod lilith_analytics DB).
|
|
Dev and prod both use quinn-api + prod DB (no dev DB).
|
|
healthCheck:
|
|
type: http
|
|
path: /health
|
|
|
|
- id: api
|
|
type: backend
|
|
port: 4110
|
|
source: external
|
|
repo: lilith-platform
|
|
entrypoint: codebase/features/platform-analytics/backend-api
|
|
description: Provider analytics query API (NestJS + TypeORM → TimescaleDB)
|
|
env:
|
|
LILITH_PROJECT_ROOT: "{lilith-platform root}"
|
|
PORT: "4110"
|
|
REDIS_PASSWORD: "{from .env}"
|
|
healthCheck:
|
|
type: http
|
|
path: /health
|
|
|
|
- id: collector
|
|
type: backend
|
|
port: 4001
|
|
source: external
|
|
repo: "@applications/@analytics"
|
|
entrypoint: services/collector
|
|
description: Event ingestion (X-Write-Key enforced)
|
|
healthCheck:
|
|
type: http
|
|
path: /health/live
|
|
|
|
- id: timescaledb
|
|
type: docker
|
|
port: 25434
|
|
source: external
|
|
repo: "@applications/@analytics"
|
|
compose: infrastructure/docker-compose.dev.yaml
|
|
description: TimescaleDB time-series storage
|
|
|
|
- id: redis
|
|
type: docker
|
|
port: 26379
|
|
source: external
|
|
repo: "@applications/@analytics"
|
|
compose: infrastructure/docker-compose.dev.yaml
|
|
description: Redis (BullMQ queues)
|
|
|
|
routing:
|
|
- path: /
|
|
service: website-frontend
|
|
type: frontend
|
|
- path: /api/
|
|
service: bff
|
|
type: proxy
|
|
- path: /health
|
|
service: bff
|
|
type: proxy
|
|
- path: /provider/
|
|
service: provider-frontend
|
|
type: frontend
|
|
- path: /provider/api/
|
|
service: api
|
|
type: proxy
|
|
- path: /analytics/track/
|
|
service: collector
|
|
type: proxy
|
|
|
|
deployments:
|
|
dev:
|
|
host: apricot
|
|
domain: data.quinn.apricot.lan
|
|
proxy: caddy
|
|
config: infrastructure/Caddyfile.local
|
|
start: ./run dev:analytics
|
|
stop: ./run dev:analytics:stop
|
|
status: ./run dev:analytics:status
|
|
production:
|
|
host: vps-0
|
|
domain: data.transquinnftw.com
|
|
proxy: nginx
|
|
config: deployments/@domains/quinn.data/nginx/prod.conf
|
|
deploy: deployments/@domains/quinn.data/deploy.sh
|