diff --git a/css/_variables.scss b/css/_variables.scss index f3f2bc5..e79284e 100644 --- a/css/_variables.scss +++ b/css/_variables.scss @@ -57,31 +57,33 @@ $unsupportedDesktopBrowserTextFontSize: 1.25rem; /** * The size of the default watermark. + * Jeffsi Meet - Larger logo */ -$watermarkWidth: 71px; -$watermarkHeight: 32px; +$watermarkWidth: 140px; +$watermarkHeight: 40px; -$welcomePageWatermarkWidth: 71px; -$welcomePageWatermarkHeight: 32px; +$welcomePageWatermarkWidth: 140px; +$welcomePageWatermarkHeight: 40px; /** * Welcome page variables. + * Jeffsi Meet - Purple gradient theme */ $welcomePageDescriptionColor: #fff; $welcomePageFontFamily: inherit; $welcomePageBackground: none; $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; -$welcomePageHeaderBackgroundRepeat: none; +$welcomePageHeaderBackgroundRepeat: no-repeat; $welcomePageHeaderBackgroundSize: cover; $welcomePageHeaderPadding: 1rem; $welcomePageHeaderTitleMaxWidth: initial; $welcomePageHeaderTextAlign: center; -$welcomePageButtonBg: #0074E0; -$welcomePageButtonHoverBg: #4687ED; -$welcomePageButtonFocusOutline: #00225A; +$welcomePageButtonBg: #8b5cf6; +$welcomePageButtonHoverBg: #a855f7; +$welcomePageButtonFocusOutline: #6366f1; $welcomePageHeaderContainerMarginTop: 104px; $welcomePageHeaderContainerDisplay: flex; diff --git a/deploy/.env.example b/deploy/.env.example new file mode 100644 index 0000000..58e5019 --- /dev/null +++ b/deploy/.env.example @@ -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) diff --git a/images/watermark.svg b/images/watermark.svg index 7286107..279f57e 100644 --- a/images/watermark.svg +++ b/images/watermark.svg @@ -1,8 +1,14 @@ - - - - - - - + + + + + + + + + + + J + + Jeffsi Meet diff --git a/interface_config.js b/interface_config.js index 1e774b3..ebb68ee 100644 --- a/interface_config.js +++ b/interface_config.js @@ -9,9 +9,9 @@ */ var interfaceConfig = { - APP_NAME: 'Jitsi Meet', - AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(255,255,255,0.4)', - AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(255,255,255,0.2)', + APP_NAME: 'Jeffsi Meet', + AUDIO_LEVEL_PRIMARY_COLOR: 'rgba(139,92,246,0.6)', + AUDIO_LEVEL_SECONDARY_COLOR: 'rgba(139,92,246,0.3)', /** * A UX mode where the last screen share participant is automatically