Files
zen-live/compose.hanzo.yml

52 lines
1.7 KiB
YAML

services:
zen-live:
build: .
image: zenlm/zen-live:latest
container_name: zen-live
restart: unless-stopped
ports:
- "${PORT:-8000}:8000"
environment:
# Backend configuration
- HANZO_API_KEY=${HANZO_API_KEY:-}
- TRANSLATE_API_URL=${TRANSLATE_API_URL:-}
- ASR_API_URL=${ASR_API_URL:-}
- HANZO_NODE_URL=${HANZO_NODE_URL:-}
- ZEN_OMNI_PATH=${ZEN_OMNI_PATH:-}
# Authentication
- ZEN_LIVE_USER=${ZEN_LIVE_USER:-}
- ZEN_LIVE_PASS=${ZEN_LIVE_PASS:-}
# Input configuration
- WHIP_ENABLED=${WHIP_ENABLED:-true}
- SRT_INPUT_URL=${SRT_INPUT_URL:-}
- RTMP_INPUT_URL=${RTMP_INPUT_URL:-}
# Server config
- PORT=8000
- MODE=${MODE:-}
- BASE_URL=${BASE_URL:-https://zen-live.hanzo.ai}
healthcheck:
test: ["CMD", "curl", "-f", "http://localhost:8000/api/status"]
interval: 30s
timeout: 10s
retries: 3
start_period: 10s
labels:
# Main UI: zen-live.hanzo.ai
- "traefik.enable=true"
- "traefik.http.routers.zen-live.rule=Host(`zen-live.hanzo.ai`)"
- "traefik.http.routers.zen-live.entrypoints=websecure"
- "traefik.http.routers.zen-live.tls.certresolver=letsencrypt"
- "traefik.http.services.zen-live.loadbalancer.server.port=8000"
# API subdomain: api.zen-live.hanzo.ai
- "traefik.http.routers.zen-live-api.rule=Host(`api.zen-live.hanzo.ai`)"
- "traefik.http.routers.zen-live-api.entrypoints=websecure"
- "traefik.http.routers.zen-live-api.tls.certresolver=letsencrypt"
- "traefik.http.routers.zen-live-api.service=zen-live"
networks:
- hanzo-network
networks:
hanzo-network:
name: hanzo-network
external: true