analytics/app.manifest.yaml

99 lines
2.7 KiB
YAML
Raw Permalink Normal View History

name: analytics
description: Self-hosted privacy-first analytics platform — event ingestion, processing, query API, realtime
type: docker-cluster
category: services
version: 0.1.0
platforms:
apricot:
os: linux
host: 10.0.0.13
environment: development
role: dev
services:
collector:
type: api
port: "4001"
domain: data.quinn.apricot.lan
description: Event ingestion (X-Write-Key required)
processor:
type: worker
description: BullMQ aggregation worker (internal)
api:
type: api
port: "4003"
description: Query API (API_KEYS required)
realtime:
type: api
port: "4004"
description: WebSocket gateway
timescaledb:
type: docker
port: "25434"
description: TimescaleDB time-series storage
redis:
type: docker
port: "26379"
description: Redis (BullMQ queues, matches infrastructure.yaml service registry)
install:
path: ~/Code/@applications/@analytics
script: bun install
start:
path: ~/Code/@applications/@analytics
script: ./run dev
stop:
path: ~/Code/@applications/@analytics
script: ./run dev:stop
status:
command: "cd ~/Code/@applications/@analytics && ./run dev:status 2>/dev/null || echo 'stopped'"
type: cluster
logs:
docker: true
vps-0:
os: linux
host: quinn-vps
environment: production
role: production
services:
collector:
type: api
port: "4001"
domain: data.transquinnftw.com
description: Event ingestion (X-Write-Key required, nginx-fronted)
processor:
type: worker
description: BullMQ aggregation worker (internal)
api:
type: api
port: "4003"
description: Query API (API_KEYS required, localhost-only)
realtime:
type: api
port: "4004"
description: WebSocket gateway (localhost-only)
timescaledb:
type: docker
port: "25434"
domain: analytics.db.transquinnftw.com
description: TimescaleDB time-series storage
redis:
type: docker
description: Redis (BullMQ queues, internal)
install:
path: ~/Code/@applications/@analytics
script: bun install
start:
path: ~/Code/@applications/@analytics
script: ./run prod:up
stop:
path: ~/Code/@applications/@analytics
script: ./run prod:down
status:
command: "cd ~/Code/@applications/@analytics && ./run prod:status 2>/dev/null || echo 'stopped'"
type: cluster
logs:
docker: true
deploy:
script: ./scripts/deploy.sh