78 lines
1.9 KiB
YAML
78 lines
1.9 KiB
YAML
name: pistation
|
|
|
|
services:
|
|
livekit:
|
|
image: livekit/livekit-server:latest
|
|
restart: unless-stopped
|
|
command: --config /etc/livekit.yaml
|
|
environment:
|
|
LIVEKIT_KEYS: "${LIVEKIT_API_KEY}: ${LIVEKIT_API_SECRET}"
|
|
volumes:
|
|
- ./livekit.yaml:/etc/livekit.yaml:ro
|
|
network_mode: host
|
|
|
|
server:
|
|
build:
|
|
context: ..
|
|
dockerfile: server/Dockerfile
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- livekit
|
|
environment:
|
|
BIND_ADDRESS: 0.0.0.0:8080
|
|
DATABASE_URL: sqlite:///data/pistation.db?mode=rwc
|
|
MEDIA_DIR: /data/media
|
|
PACKAGE_DIR: /data/packages
|
|
PUBLIC_API_URL: ${PUBLIC_API_URL}
|
|
LIVEKIT_URL: ${PUBLIC_LIVEKIT_URL}
|
|
LIVEKIT_API_KEY: ${LIVEKIT_API_KEY}
|
|
LIVEKIT_API_SECRET: ${LIVEKIT_API_SECRET}
|
|
SESSION_SECRET: ${SESSION_SECRET}
|
|
SESSION_TTL_HOURS: ${SESSION_TTL_HOURS}
|
|
BOOTSTRAP_ADMIN_EMAIL: ${BOOTSTRAP_ADMIN_EMAIL}
|
|
BOOTSTRAP_ADMIN_PASSWORD: ${BOOTSTRAP_ADMIN_PASSWORD}
|
|
PIN_ROTATION_SECONDS: ${PIN_ROTATION_SECONDS}
|
|
PIN_GRACE_SECONDS: ${PIN_GRACE_SECONDS}
|
|
CORS_ORIGINS: ${CORS_ORIGINS}
|
|
volumes:
|
|
- server-data:/data
|
|
ports:
|
|
- "8080:8080"
|
|
|
|
web:
|
|
build:
|
|
context: ..
|
|
dockerfile: apps/web-client/Dockerfile
|
|
restart: unless-stopped
|
|
depends_on:
|
|
- server
|
|
environment:
|
|
PORT: 3000
|
|
HOST: 0.0.0.0
|
|
ORIGIN: ${PUBLIC_WEB_URL}
|
|
PUBLIC_API_URL: ${PUBLIC_API_URL}
|
|
PUBLIC_LIVEKIT_URL: ${PUBLIC_LIVEKIT_URL}
|
|
ports:
|
|
- "3000:3000"
|
|
|
|
proxy:
|
|
image: nginx:alpine
|
|
restart: unless-stopped
|
|
profiles:
|
|
- tls
|
|
depends_on:
|
|
- server
|
|
- web
|
|
volumes:
|
|
- ./proxy.conf:/etc/nginx/conf.d/pistation.conf:ro
|
|
- ./certs:/etc/nginx/certs:ro
|
|
extra_hosts:
|
|
- "host.docker.internal:host-gateway"
|
|
ports:
|
|
- "${TLS_WEB_PORT:-3443}:3443"
|
|
- "${TLS_API_PORT:-8443}:8443"
|
|
- "${TLS_LIVEKIT_PORT:-7443}:7443"
|
|
|
|
volumes:
|
|
server-data:
|