feat(deploy): add video quality and TURN configuration
- Add .env.example with documented video quality bitrate settings - Configure VP8/VP9/H264/AV1 codec bitrates for optimal quality - Add STUN/TURN server configuration for NAT traversal - Document required firewall rules for media traffic - Update branding: watermark, variables, interface config Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
68016c30f6
commit
0e9c78c86a
|
|
@ -57,31 +57,33 @@ $unsupportedDesktopBrowserTextFontSize: 1.25rem;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The size of the default watermark.
|
* The size of the default watermark.
|
||||||
|
* Jeffsi Meet - Larger logo
|
||||||
*/
|
*/
|
||||||
$watermarkWidth: 71px;
|
$watermarkWidth: 140px;
|
||||||
$watermarkHeight: 32px;
|
$watermarkHeight: 40px;
|
||||||
|
|
||||||
$welcomePageWatermarkWidth: 71px;
|
$welcomePageWatermarkWidth: 140px;
|
||||||
$welcomePageWatermarkHeight: 32px;
|
$welcomePageWatermarkHeight: 40px;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Welcome page variables.
|
* Welcome page variables.
|
||||||
|
* Jeffsi Meet - Purple gradient theme
|
||||||
*/
|
*/
|
||||||
$welcomePageDescriptionColor: #fff;
|
$welcomePageDescriptionColor: #fff;
|
||||||
$welcomePageFontFamily: inherit;
|
$welcomePageFontFamily: inherit;
|
||||||
$welcomePageBackground: none;
|
$welcomePageBackground: none;
|
||||||
$welcomePageTitleColor: #fff;
|
$welcomePageTitleColor: #fff;
|
||||||
|
|
||||||
$welcomePageHeaderBackground: linear-gradient(0deg, rgba(0, 0, 0, 0.2), rgba(0, 0, 0, 0.2)), url('../images/welcome-background.png');
|
$welcomePageHeaderBackground: linear-gradient(135deg, #0f0a1a 0%, #1e1040 25%, #2d1b4e 50%, #1a1035 75%, #0f0a1a 100%);
|
||||||
$welcomePageHeaderBackgroundPosition: center;
|
$welcomePageHeaderBackgroundPosition: center;
|
||||||
$welcomePageHeaderBackgroundRepeat: none;
|
$welcomePageHeaderBackgroundRepeat: no-repeat;
|
||||||
$welcomePageHeaderBackgroundSize: cover;
|
$welcomePageHeaderBackgroundSize: cover;
|
||||||
$welcomePageHeaderPadding: 1rem;
|
$welcomePageHeaderPadding: 1rem;
|
||||||
$welcomePageHeaderTitleMaxWidth: initial;
|
$welcomePageHeaderTitleMaxWidth: initial;
|
||||||
$welcomePageHeaderTextAlign: center;
|
$welcomePageHeaderTextAlign: center;
|
||||||
$welcomePageButtonBg: #0074E0;
|
$welcomePageButtonBg: #8b5cf6;
|
||||||
$welcomePageButtonHoverBg: #4687ED;
|
$welcomePageButtonHoverBg: #a855f7;
|
||||||
$welcomePageButtonFocusOutline: #00225A;
|
$welcomePageButtonFocusOutline: #6366f1;
|
||||||
|
|
||||||
$welcomePageHeaderContainerMarginTop: 104px;
|
$welcomePageHeaderContainerMarginTop: 104px;
|
||||||
$welcomePageHeaderContainerDisplay: flex;
|
$welcomePageHeaderContainerDisplay: flex;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,141 @@
|
||||||
|
# Jeffsi Meet - Environment Configuration Example
|
||||||
|
# Copy this to .env on the server and update values as needed
|
||||||
|
# Location on server: /opt/jeffsi-meet/.env
|
||||||
|
|
||||||
|
# ==========================================
|
||||||
|
# Core Configuration
|
||||||
|
# ==========================================
|
||||||
|
|
||||||
|
# Directory where all configuration will be stored
|
||||||
|
CONFIG=/opt/jeffsi-meet/config
|
||||||
|
|
||||||
|
# System time zone
|
||||||
|
TZ=Europe/Berlin
|
||||||
|
|
||||||
|
# Public URL for the web service
|
||||||
|
PUBLIC_URL=https://meet.jeffemmett.com
|
||||||
|
|
||||||
|
# JVB Network Configuration
|
||||||
|
# IMPORTANT: Set this to your server's public IP
|
||||||
|
JVB_ADVERTISE_IPS=YOUR_SERVER_PUBLIC_IP
|
||||||
|
|
||||||
|
# Authentication
|
||||||
|
ENABLE_AUTH=0
|
||||||
|
ENABLE_GUESTS=1
|
||||||
|
AUTH_TYPE=internal
|
||||||
|
|
||||||
|
# Memory limits
|
||||||
|
JICOFO_MAX_MEMORY=1024m
|
||||||
|
VIDEOBRIDGE_MAX_MEMORY=3072m
|
||||||
|
|
||||||
|
# Container restart policy
|
||||||
|
RESTART_POLICY=unless-stopped
|
||||||
|
|
||||||
|
# Jitsi image version - use stable for production
|
||||||
|
JITSI_IMAGE_VERSION=stable
|
||||||
|
|
||||||
|
# Recording (requires Jibri)
|
||||||
|
ENABLE_RECORDING=1
|
||||||
|
|
||||||
|
# JVB Ports (ensure these are open in firewall)
|
||||||
|
JVB_PORT=10101
|
||||||
|
JVB_COLIBRI_PORT=8085
|
||||||
|
JICOFO_REST_PORT=8889
|
||||||
|
|
||||||
|
# ==========================================
|
||||||
|
# Security Passwords - MUST BE GENERATED
|
||||||
|
# Run: ./gen-passwords.sh
|
||||||
|
# ==========================================
|
||||||
|
|
||||||
|
JICOFO_AUTH_PASSWORD=GENERATE_SECURE_PASSWORD
|
||||||
|
JVB_AUTH_USER=jvb
|
||||||
|
JVB_AUTH_PASSWORD=GENERATE_SECURE_PASSWORD
|
||||||
|
JIGASI_XMPP_PASSWORD=GENERATE_SECURE_PASSWORD
|
||||||
|
JIGASI_TRANSCRIBER_PASSWORD=GENERATE_SECURE_PASSWORD
|
||||||
|
JIBRI_RECORDER_PASSWORD=GENERATE_SECURE_PASSWORD
|
||||||
|
JIBRI_XMPP_PASSWORD=GENERATE_SECURE_PASSWORD
|
||||||
|
|
||||||
|
# ==========================================
|
||||||
|
# STUN/TURN Configuration (for NAT traversal)
|
||||||
|
# ==========================================
|
||||||
|
|
||||||
|
# Use coturn for TURN relay
|
||||||
|
TURN_HOST=YOUR_SERVER_PUBLIC_IP
|
||||||
|
TURN_PORT=3478
|
||||||
|
TURNS_PORT=5349
|
||||||
|
TURN_TRANSPORT=udp
|
||||||
|
STUN_HOST=YOUR_SERVER_PUBLIC_IP
|
||||||
|
STUN_PORT=3478
|
||||||
|
|
||||||
|
# TURN credentials (must match coturn config)
|
||||||
|
TURN_USERNAME=turnuser
|
||||||
|
TURN_PASSWORD=YOUR_TURN_SECRET
|
||||||
|
TURN_CREDENTIALS=YOUR_TURN_SECRET
|
||||||
|
TURN_TTL=86400
|
||||||
|
|
||||||
|
# P2P STUN servers (comma-separated)
|
||||||
|
P2P_STUN_SERVERS=stun:YOUR_SERVER_PUBLIC_IP:3478,stun:stun.l.google.com:19302
|
||||||
|
|
||||||
|
# JVB STUN servers
|
||||||
|
JVB_STUN_SERVERS=YOUR_SERVER_PUBLIC_IP:3478,stun.l.google.com:19302
|
||||||
|
|
||||||
|
# ==========================================
|
||||||
|
# Video Quality Bitrates (in bps)
|
||||||
|
# Higher values = better quality but more bandwidth
|
||||||
|
# ==========================================
|
||||||
|
|
||||||
|
# VP8 Bitrates (good compatibility)
|
||||||
|
VIDEOQUALITY_BITRATE_VP8_LOW=200000
|
||||||
|
VIDEOQUALITY_BITRATE_VP8_STANDARD=700000
|
||||||
|
VIDEOQUALITY_BITRATE_VP8_HIGH=2000000
|
||||||
|
VIDEOQUALITY_BITRATE_VP8_FULL=4000000
|
||||||
|
VIDEOQUALITY_BITRATE_VP8_ULTRA=6000000
|
||||||
|
VIDEOQUALITY_BITRATE_VP8_SS_HIGH=3500000
|
||||||
|
|
||||||
|
# VP9 Bitrates (best quality/bandwidth ratio - RECOMMENDED)
|
||||||
|
VIDEOQUALITY_BITRATE_VP9_LOW=150000
|
||||||
|
VIDEOQUALITY_BITRATE_VP9_STANDARD=500000
|
||||||
|
VIDEOQUALITY_BITRATE_VP9_HIGH=1500000
|
||||||
|
VIDEOQUALITY_BITRATE_VP9_FULL=3000000
|
||||||
|
VIDEOQUALITY_BITRATE_VP9_ULTRA=4500000
|
||||||
|
VIDEOQUALITY_BITRATE_VP9_SS_HIGH=2500000
|
||||||
|
|
||||||
|
# H264 Bitrates (good for mobile)
|
||||||
|
VIDEOQUALITY_BITRATE_H264_LOW=200000
|
||||||
|
VIDEOQUALITY_BITRATE_H264_STANDARD=700000
|
||||||
|
VIDEOQUALITY_BITRATE_H264_HIGH=2000000
|
||||||
|
VIDEOQUALITY_BITRATE_H264_FULL=4000000
|
||||||
|
VIDEOQUALITY_BITRATE_H264_ULTRA=6000000
|
||||||
|
VIDEOQUALITY_BITRATE_H264_SS_HIGH=3500000
|
||||||
|
|
||||||
|
# AV1 Bitrates (most efficient, newer codec)
|
||||||
|
VIDEOQUALITY_BITRATE_AV1_LOW=100000
|
||||||
|
VIDEOQUALITY_BITRATE_AV1_STANDARD=400000
|
||||||
|
VIDEOQUALITY_BITRATE_AV1_HIGH=1200000
|
||||||
|
VIDEOQUALITY_BITRATE_AV1_FULL=2500000
|
||||||
|
VIDEOQUALITY_BITRATE_AV1_ULTRA=4000000
|
||||||
|
VIDEOQUALITY_BITRATE_AV1_SS_HIGH=2000000
|
||||||
|
|
||||||
|
# Preferred codec (VP9 recommended for quality/bandwidth)
|
||||||
|
VIDEOQUALITY_PREFERRED_CODEC=VP9
|
||||||
|
|
||||||
|
# Resolution settings
|
||||||
|
RESOLUTION=720
|
||||||
|
RESOLUTION_MIN=180
|
||||||
|
RESOLUTION_WIDTH=1280
|
||||||
|
RESOLUTION_WIDTH_MIN=320
|
||||||
|
|
||||||
|
# Simulcast (multiple quality layers for adaptive streaming)
|
||||||
|
ENABLE_SIMULCAST=true
|
||||||
|
ENABLE_REMB=true
|
||||||
|
ENABLE_TCC=true
|
||||||
|
|
||||||
|
# ==========================================
|
||||||
|
# Firewall Rules Required
|
||||||
|
# ==========================================
|
||||||
|
# Ensure these ports are open:
|
||||||
|
# - JVB_PORT/udp (default 10101) - Media traffic
|
||||||
|
# - 3478/udp,tcp - STUN/TURN
|
||||||
|
# - 5349/udp,tcp - TURN TLS
|
||||||
|
# - 49152-49200/udp - TURN relay ports
|
||||||
|
# - 80/tcp, 443/tcp - Web traffic (if not using reverse proxy)
|
||||||
File diff suppressed because one or more lines are too long
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 777 B |
|
|
@ -9,9 +9,9 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
var interfaceConfig = {
|
var interfaceConfig = {
|
||||||
APP_NAME: 'Jitsi Meet',
|
APP_NAME: 'Jeffsi Meet',
|
||||||
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)',
|
AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(139,92,246,0.6)',
|
||||||
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)',
|
AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(139,92,246,0.3)',
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A UX mode where the last screen share participant is automatically
|
* A UX mode where the last screen share participant is automatically
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue