69 lines
1.9 KiB
YAML
69 lines
1.9 KiB
YAML
services:
|
|
postgres:
|
|
image: postgres:16-alpine
|
|
environment:
|
|
POSTGRES_DB: ${POSTGRES_DB}
|
|
POSTGRES_USER: ${POSTGRES_USER}
|
|
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
|
|
ports:
|
|
- "127.0.0.1:5432:5432"
|
|
volumes:
|
|
- postgres-data:/var/lib/postgresql/data
|
|
healthcheck:
|
|
test: ["CMD-SHELL", "pg_isready -U ${POSTGRES_USER} -d ${POSTGRES_DB}"]
|
|
interval: 5s
|
|
timeout: 5s
|
|
retries: 10
|
|
|
|
livekit:
|
|
image: livekit/livekit-server:v1.9.10
|
|
command: --config /etc/livekit.yaml
|
|
volumes:
|
|
- ./infra/livekit/livekit.yaml:/etc/livekit.yaml:ro
|
|
environment:
|
|
LIVEKIT_KEYS: "${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET}"
|
|
ports:
|
|
- "127.0.0.1:7880:7880"
|
|
- "7881:7881"
|
|
- "50000-50100:50000-50100/udp"
|
|
|
|
api:
|
|
image: screenshare-api:${SCREENSHARE_VERSION:-latest}
|
|
build:
|
|
context: ./apps/ScreenShareApi
|
|
env_file: .env
|
|
environment:
|
|
PORT: 8080
|
|
LIVEKIT_API_KEY: ${LIVEKIT_API_KEY}
|
|
LIVEKIT_API_SECRET: ${LIVEKIT_API_SECRET}
|
|
LIVEKIT_PUBLIC_URL: ${LIVEKIT_PUBLIC_URL:-ws://localhost:7880}
|
|
DATABASE_JDBC_URL: jdbc:postgresql://postgres:5432/${POSTGRES_DB}
|
|
DATABASE_USER: ${POSTGRES_USER}
|
|
DATABASE_PASSWORD: ${POSTGRES_PASSWORD}
|
|
AUTH_JWT_ISSUER: ${AUTH_JWT_ISSUER}
|
|
AUTH_JWT_AUDIENCE: ${AUTH_JWT_AUDIENCE}
|
|
AUTH_JWT_REALM: ${AUTH_JWT_REALM}
|
|
AUTH_JWT_SECRET: ${AUTH_JWT_SECRET}
|
|
BOOTSTRAP_ADMIN_USERNAME: ${BOOTSTRAP_ADMIN_USERNAME}
|
|
BOOTSTRAP_ADMIN_PASSWORD: ${BOOTSTRAP_ADMIN_PASSWORD}
|
|
BOOTSTRAP_ADMIN_DISPLAY_NAME: ${BOOTSTRAP_ADMIN_DISPLAY_NAME}
|
|
depends_on:
|
|
livekit:
|
|
condition: service_started
|
|
postgres:
|
|
condition: service_healthy
|
|
ports:
|
|
- "127.0.0.1:8080:8080"
|
|
|
|
web:
|
|
image: screenshare-web:${SCREENSHARE_VERSION:-latest}
|
|
build:
|
|
context: ./apps/ScreenShareWeb
|
|
depends_on:
|
|
- api
|
|
ports:
|
|
- "127.0.0.1:5173:80"
|
|
|
|
volumes:
|
|
postgres-data:
|