Skip to content

Files

Latest commit

author
John Rogers
Mar 6, 2025
362d461 · Mar 6, 2025

History

History
147 lines (102 loc) · 4.45 KB

TEMPLATE_README.md

File metadata and controls

147 lines (102 loc) · 4.45 KB

ColourStream Application Template

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.

Template Files

  • docker-compose.template.yml: Template Docker Compose configuration
  • global.env.template: Template for global environment variables
  • backend/.env.template: Template for backend-specific environment variables
  • mirotalk/.env.template: Template for MiroTalk-specific environment variables
  • setup-template.sh: Script to help initialize configuration from templates

Getting Started

Automatic Setup (Recommended)

Run the setup script to automatically create configuration files with your domain and generate secure passwords:

./setup-template.sh

The script will:

  1. Prompt for your domain name and admin email
  2. Generate secure random passwords for all services
  3. Create configuration files from templates with your settings
  4. Display a summary of the configuration for your reference

Manual Setup

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

Next Steps

  1. 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
  2. Configure your DNS to point the subdomains to your server:

    • live.colourstream.yourdomain.com
    • video.colourstream.yourdomain.com
  3. Start the application:

docker-compose up -d

Services

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

Domain Structure

The application uses two main subdomains:

  • live.colourstream.yourdomain.com: Main application interface and API
  • video.colourstream.yourdomain.com: Video conferencing interface

Configuration Files

docker-compose.yml

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

global.env

Contains environment variables shared across multiple services, including:

  • Database credentials
  • Domain configuration
  • WebAuthn settings
  • JWT configuration

backend/.env

Contains backend-specific configuration, including:

  • API server settings
  • OvenMedia API integration
  • WebAuthn configuration
  • OpenID Connect settings (optional)

mirotalk/.env

Contains MiroTalk-specific configuration, including:

  • STUN/TURN server settings
  • Authentication configuration
  • Server settings

Security Considerations

  • 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

Customization

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

Troubleshooting

If you encounter issues:

  1. Check the logs for each service: docker-compose logs [service-name]
  2. Verify your DNS configuration
  3. Ensure SSL certificates are correctly installed
  4. Check network connectivity between services