This template provides a standardized configuration for deploying the ColourStream application. It includes Docker Compose configuration and environment variables templates that can be customized for your specific deployment.
docker-compose.template.yml
: Template Docker Compose configurationglobal.env.template
: Template for global environment variablesbackend/.env.template
: Template for backend-specific environment variablesmirotalk/.env.template
: Template for MiroTalk-specific environment variablessetup-template.sh
: Script to help initialize configuration from templates
Run the setup script to automatically create configuration files with your domain and generate secure passwords:
./setup-template.sh
The script will:
- Prompt for your domain name and admin email
- Generate secure random passwords for all services
- Create configuration files from templates with your settings
- Display a summary of the configuration for your reference
If you prefer to set up manually, copy the template files to create your working configuration:
cp docker-compose.template.yml docker-compose.yml
cp global.env.template global.env
cp backend/.env.template backend/.env
cp mirotalk/.env.template mirotalk/.env
Then modify the configuration files with your specific domain and credentials:
- Replace
example.com
with your actual domain - Replace placeholder passwords with secure passwords
- Update email addresses and other configuration as needed
-
Set up SSL certificates for your domains:
- You'll need certificates for:
live.colourstream.yourdomain.com
video.colourstream.yourdomain.com
- Place certificates in the appropriate directories:
./certs/certs/live.colourstream.yourdomain.com.crt
./certs/private/live.colourstream.yourdomain.com.key
./certs/certs/video.colourstream.yourdomain.com.crt
./certs/private/video.colourstream.yourdomain.com.key
- You'll need certificates for:
-
Configure your DNS to point the subdomains to your server:
live.colourstream.yourdomain.com
video.colourstream.yourdomain.com
-
Start the application:
docker-compose up -d
The ColourStream application consists of the following services:
- Frontend: React-based web interface
- Backend: Node.js API server
- Postgres: Database for storing application data
- Traefik: Reverse proxy and SSL termination
- OvenMediaEngine: Media streaming server (origin and edge)
- MiroTalk: WebRTC-based video conferencing
- Coturn: TURN server for WebRTC connectivity
The application uses two main subdomains:
live.colourstream.yourdomain.com
: Main application interface and APIvideo.colourstream.yourdomain.com
: Video conferencing interface
The Docker Compose file defines all services, networks, and volumes required for the application. Key configuration areas include:
- Service definitions and dependencies
- Network configuration
- Volume mappings
- Traefik routing rules
- Environment variables
Contains environment variables shared across multiple services, including:
- Database credentials
- Domain configuration
- WebAuthn settings
- JWT configuration
Contains backend-specific configuration, including:
- API server settings
- OvenMedia API integration
- WebAuthn configuration
- OpenID Connect settings (optional)
Contains MiroTalk-specific configuration, including:
- STUN/TURN server settings
- Authentication configuration
- Server settings
- Replace all placeholder passwords with strong, unique passwords
- Secure your SSL certificates and private keys
- Consider implementing additional security measures based on your deployment environment
- Regularly update all services to their latest versions
You can customize the application by modifying the following:
- Environment variables in the various .env files
- Service configurations in
docker-compose.yml
- Frontend and backend code in their respective directories
If you encounter issues:
- Check the logs for each service:
docker-compose logs [service-name]
- Verify your DNS configuration
- Ensure SSL certificates are correctly installed
- Check network connectivity between services