version: "3.9" services: playout: build: context: ./backend/playout dockerfile: Dockerfile container_name: linearvoid-playout restart: unless-stopped env_file: - .env volumes: - ./data/playlist:/app/playlist:ro - ./data/hls:/app/hls networks: - linearvoid-net depends_on: - redis chat: build: context: ./backend/chat dockerfile: Dockerfile container_name: linearvoid-chat restart: unless-stopped env_file: - .env ports: - "${CHAT_PORT:-3000}:3000" networks: - linearvoid-net depends_on: - redis - db nginx: build: context: ./infrastructure/nginx dockerfile: Dockerfile container_name: linearvoid-nginx restart: unless-stopped ports: - "${NGINX_PORT:-8080}:80" volumes: - ./frontend/dist:/usr/share/nginx/html:ro - ./data/hls:/usr/share/nginx/html/hls:ro networks: - linearvoid-net depends_on: - playout - chat redis: image: redis:7-alpine container_name: linearvoid-redis restart: unless-stopped command: redis-server --appendonly yes volumes: - redis-data:/data networks: - linearvoid-net db: image: postgres:15-alpine container_name: linearvoid-db restart: unless-stopped environment: POSTGRES_DB: linearvoid POSTGRES_USER: linearvoid POSTGRES_PASSWORD: linearvoid volumes: - postgres-data:/var/lib/postgresql/data networks: - linearvoid-net networks: linearvoid-net: driver: bridge volumes: redis-data: postgres-data: