prompt inicial do projeto completo
This commit is contained in:
@@ -43,8 +43,9 @@ services:
|
||||
image: postgis/postgis:17-3.5
|
||||
environment:
|
||||
POSTGRES_DB: portaria
|
||||
POSTGRES_USER: portaria
|
||||
POSTGRES_USER: portaria # dono do schema — usado só pelo Flyway
|
||||
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
POSTGRES_APP_PASSWORD: ${POSTGRES_APP_PASSWORD} # lido por init/02-roles.sh → cria portaria_app
|
||||
volumes:
|
||||
- pgdata:/var/lib/postgresql/data
|
||||
- ./postgres/init:/docker-entrypoint-initdb.d:ro
|
||||
@@ -60,9 +61,13 @@ services:
|
||||
environment:
|
||||
SPRING_PROFILES_ACTIVE: prod
|
||||
SPRING_DATASOURCE_URL: jdbc:postgresql://postgres:5432/portaria
|
||||
SPRING_DATASOURCE_USERNAME: portaria
|
||||
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
LIVEKIT_URL: ws://livekit:7880
|
||||
# aplicação NUNCA conecta como dona do schema — senão REVOKE e RLS são inócuos (02 §8)
|
||||
SPRING_DATASOURCE_USERNAME: portaria_app
|
||||
SPRING_DATASOURCE_PASSWORD: ${POSTGRES_APP_PASSWORD}
|
||||
SPRING_FLYWAY_USER: portaria
|
||||
SPRING_FLYWAY_PASSWORD: ${POSTGRES_PASSWORD}
|
||||
# livekit está em network_mode:host — o nome de serviço não resolve; alcançado via gateway do host
|
||||
LIVEKIT_URL: ws://host.docker.internal:7880
|
||||
LIVEKIT_API_KEY: ${LIVEKIT_API_KEY}
|
||||
LIVEKIT_API_SECRET: ${LIVEKIT_API_SECRET}
|
||||
STORAGE_ENDPOINT: http://minio:9000
|
||||
@@ -73,6 +78,8 @@ services:
|
||||
OTEL_EXPORTER_OTLP_ENDPOINT: http://otel-collector:4317
|
||||
volumes:
|
||||
- ./secrets:/secrets:ro
|
||||
extra_hosts:
|
||||
- host.docker.internal:host-gateway
|
||||
depends_on:
|
||||
postgres: { condition: service_healthy }
|
||||
minio: { condition: service_started }
|
||||
@@ -110,6 +117,8 @@ services:
|
||||
redis: # exclusivo do LiveKit e do rate limit
|
||||
image: redis:7-alpine # NUNCA para dados que não podem se perder
|
||||
command: redis-server --save "" --appendonly no
|
||||
ports:
|
||||
- 127.0.0.1:6379:6379 # livekit está em host network e alcança via localhost; nunca exponha fora do host
|
||||
restart: unless-stopped
|
||||
|
||||
minio:
|
||||
@@ -185,6 +194,8 @@ room:
|
||||
|
||||
**Redis não é opcional** com múltiplas instâncias do LiveKit: sem ele, o estado das salas se divide silenciosamente entre nós e dois participantes da mesma sala não se enxergam.
|
||||
|
||||
**Capacidade de relay do coturn:** a faixa 49160–49200 são 40 portas ≈ **20 chamadas simultâneas via TURN**. Suficiente para o piloto (TURN só entra quando o UDP direto falha, tipicamente 10–20% das chamadas), mas amplie a faixa em produção junto com o firewall.
|
||||
|
||||
## 4. Dimensionamento de banda
|
||||
|
||||
Uma chamada de portaria tem 2 participantes, vídeo em 480p a ~600kbps mais áudio. O SFU recebe e reenvia:
|
||||
@@ -218,6 +229,7 @@ GH_OWNER=sua-org
|
||||
TAG=latest
|
||||
|
||||
POSTGRES_PASSWORD=
|
||||
POSTGRES_APP_PASSWORD=
|
||||
LIVEKIT_API_KEY=
|
||||
LIVEKIT_API_SECRET=
|
||||
TURN_SECRET=
|
||||
|
||||
Reference in New Issue
Block a user