- Created complete documentation in docs/ directory - Added PROJECT_OVERVIEW.md with feature highlights and getting started guide - Added ARCHITECTURE.md with system design and technical details - Added SECURITY.md with comprehensive security implementation guide - Added DEVELOPMENT.md with development workflows and best practices - Added DEPLOYMENT.md with production deployment instructions - Added API.md with complete REST API documentation - Added CONTRIBUTING.md with contribution guidelines - Added CHANGELOG.md with version history and migration notes - Reorganized all documentation files into docs/ directory for better organization - Updated README.md with proper documentation links and quick navigation - Enhanced project structure with professional documentation standards
94 lines
2.1 KiB
YAML
94 lines
2.1 KiB
YAML
# Docker Compose for SRS + Caddy Live Streaming Setup
|
|
version: '3.8'
|
|
|
|
services:
|
|
# SRS (Simple Realtime Server) for RTMP
|
|
srs:
|
|
image: ossrs/srs:5
|
|
container_name: easystream_srs
|
|
ports:
|
|
- "1935:1935" # RTMP port
|
|
- "8080:8080" # HTTP port for HLS
|
|
- "1985:1985" # API port
|
|
volumes:
|
|
- ./srs.conf:/usr/local/srs/conf/srs.conf
|
|
- ./f_data/streams:/usr/local/srs/objs/nginx/html/live
|
|
environment:
|
|
- SRS_LOG_LEVEL=info
|
|
restart: unless-stopped
|
|
networks:
|
|
- easystream_network
|
|
|
|
# Caddy for HTTP/HTTPS (your existing setup)
|
|
caddy:
|
|
image: caddy:2-alpine
|
|
container_name: easystream_caddy
|
|
ports:
|
|
- "80:80"
|
|
- "443:443"
|
|
volumes:
|
|
- ./Caddyfile:/etc/caddy/Caddyfile
|
|
- ./f_data:/var/www/html/f_data
|
|
- caddy_data:/data
|
|
- caddy_config:/config
|
|
environment:
|
|
- DOMAIN=${DOMAIN:-localhost}
|
|
restart: unless-stopped
|
|
networks:
|
|
- easystream_network
|
|
|
|
# Your PHP application
|
|
php:
|
|
build: .
|
|
container_name: easystream_php
|
|
volumes:
|
|
- .:/var/www/html
|
|
environment:
|
|
- SRS_HOST=srs
|
|
- SRS_RTMP_PORT=1935
|
|
- SRS_HTTP_PORT=8080
|
|
- SRS_API_PORT=1985
|
|
networks:
|
|
- easystream_network
|
|
depends_on:
|
|
- srs
|
|
|
|
# Redis for queue system
|
|
redis:
|
|
image: redis:7-alpine
|
|
container_name: easystream_redis
|
|
ports:
|
|
- "6379:6379"
|
|
volumes:
|
|
- redis_data:/data
|
|
restart: unless-stopped
|
|
networks:
|
|
- easystream_network
|
|
|
|
# MySQL database
|
|
mysql:
|
|
image: mysql:8.0
|
|
container_name: easystream_mysql
|
|
environment:
|
|
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD:-rootpassword}
|
|
MYSQL_DATABASE: ${MYSQL_DATABASE:-easystream}
|
|
MYSQL_USER: ${MYSQL_USER:-easystream}
|
|
MYSQL_PASSWORD: ${MYSQL_PASSWORD:-password}
|
|
volumes:
|
|
- mysql_data:/var/lib/mysql
|
|
- ./deploy:/docker-entrypoint-initdb.d
|
|
ports:
|
|
- "3306:3306"
|
|
restart: unless-stopped
|
|
networks:
|
|
- easystream_network
|
|
|
|
volumes:
|
|
caddy_data:
|
|
caddy_config:
|
|
redis_data:
|
|
mysql_data:
|
|
|
|
networks:
|
|
easystream_network:
|
|
driver: bridge |