72 lines
1.8 KiB
YAML
72 lines
1.8 KiB
YAML
services:
|
|
mediamtx:
|
|
image: bluenviron/mediamtx:latest
|
|
container_name: vsp-mediamtx
|
|
restart: unless-stopped
|
|
network_mode: host
|
|
volumes:
|
|
- ./config/mediamtx.yml:/mediamtx.yml:ro
|
|
- vsp-recordings:/recordings
|
|
environment:
|
|
- MTX_PATH=/mediamtx.yml
|
|
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: vsp-redis
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:6379:6379"
|
|
volumes:
|
|
- vsp-redis:/data
|
|
|
|
app:
|
|
build: .
|
|
container_name: vsp-app
|
|
restart: unless-stopped
|
|
ports:
|
|
- "127.0.0.1:8000:8000"
|
|
volumes:
|
|
- ./:/app:ro
|
|
- vsp-recordings:/recordings
|
|
- vsp-data:/data
|
|
environment:
|
|
- DATABASE_URL=sqlite:////data/vsp.db
|
|
- REDIS_URL=redis://redis:6379/0
|
|
- MEDIAMTX_API=http://localhost:9997
|
|
- PLATERECOGNIZER_TOKEN=${PLATERECOGNIZER_TOKEN:-}
|
|
- SMTP_HOST=${SMTP_HOST:-}
|
|
- SMTP_PORT=${SMTP_PORT:-587}
|
|
- SMTP_USER=${SMTP_USER:-}
|
|
- SMTP_PASS=${SMTP_PASS:-}
|
|
- SMTP_FROM=${SMTP_FROM:-}
|
|
- TWILIO_SID=${TWILIO_SID:-}
|
|
- TWILIO_TOKEN=${TWILIO_TOKEN:-}
|
|
- TWILIO_FROM=${TWILIO_FROM:-}
|
|
- TELEGRAM_BOT_TOKEN=${TELEGRAM_BOT_TOKEN:-}
|
|
- TELEGRAM_CHAT_ID=${TELEGRAM_CHAT_ID:-}
|
|
- ALERT_EMAIL_TO=${ALERT_EMAIL_TO:-}
|
|
- ALERT_SMS_TO=${ALERT_SMS_TO:-}
|
|
- ALERT_COOLDOWN_SEC=${ALERT_COOLDOWN_SEC:-30}
|
|
depends_on:
|
|
- redis
|
|
|
|
nginx:
|
|
image: nginx:alpine
|
|
container_name: vsp-nginx
|
|
restart: unless-stopped
|
|
ports:
|
|
- "8081:80"
|
|
- "8444:443"
|
|
volumes:
|
|
- ./frontend:/usr/share/nginx/html:ro
|
|
- ./config/nginx.conf:/etc/nginx/conf.d/default.conf:ro
|
|
- ./config/ssl.crt:/etc/nginx/ssl/ssl.crt:ro
|
|
- ./config/ssl.key:/etc/nginx/ssl/ssl.key:ro
|
|
depends_on:
|
|
- app
|
|
|
|
volumes:
|
|
vsp-recordings:
|
|
vsp-redis:
|
|
vsp-data:
|