Repository navigation
Expand file tree
/
Copy pathenv.example
More file actions
136 lines (114 loc) · 5.76 KB
/
Copy pathenv.example
File metadata and controls
136 lines (114 loc) · 5.76 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
# LoungeMesh environment — one file for both local dev and production.
#
# Quick start (local dev):
# npm run setup ← generates .env from this template, keeps passwords on re-run
# npm run docker:up ← starts Jitsi + LoungeMesh → http://127.0.0.1:8780
#
# Production deploy (Linux server, run once):
# ./scripts/loungemesh.sh bootstrap \
# --app-host=loungemesh.example.com \
# --jitsi-host=jitsi.example.com \
# --public-ip=1.2.3.4 \
# --email=admin@example.com
#
# Re-runs are always safe — passwords and custom keys are never overwritten.
# Pass --force to reset non-secret keys from this template.
# ── LoungeMesh SPA ─────────────────────────────────────────────────────────────
# URL the browser uses to reach Jitsi's XMPP endpoint (WebSocket / BOSH).
# Local dev : http://127.0.0.1:8001 (Jitsi serves on this port)
# Production : https://your-app-or-jitsi-domain.com (Caddy proxies xmpp-websocket)
VITE_JITSI_PUBLIC_URL=http://127.0.0.1:8001
VITE_XMPP_DOMAIN=meet.jitsi
VITE_XMPP_MUC_DOMAIN=muc.meet.jitsi
VITE_USE_WEBSOCKET=true
VITE_SESSION_PREFIX=lms
# Local docker-jitsi has no TURN service, so don't ask Prosody for extdisco
# credentials. Set false only after configuring TURN_HOST/TURNS_HOST.
VITE_DISABLE_STUN_TURN_DISCOVERY=true
# Uncomment to stream media debug logs to the browser console:
# VITE_MEDIA_DEBUG=true
# ── Docker Compose / Jitsi ────────────────────────────────────────────────────
CONFIG=./docker/jitsi-config
TZ=UTC
# LoungeMesh SPA port (Caddy proxies :443 → this in production)
LOUNGEMESH_PORT=8780
HTTP_PORT=8001
HTTPS_PORT=8444
# Jitsi's public URL used by its nginx, BOSH, and token generation.
# Local dev : http://127.0.0.1:8001
# Production : https://your-jitsi-domain.com
PUBLIC_URL=http://127.0.0.1:8001
# Optional: human-readable public URL for the LoungeMesh SPA (used by deploy checks)
# Production : https://your-app-domain.com
# LOUNGEMESH_PUBLIC_URL=
ENABLE_AUTH=0
ENABLE_GUESTS=1
ENABLE_XMPP_WEBSOCKET=1
# Keep 0; LoungeMesh uses openBridgeChannel:'datachannel', so no colibri-websocket
# proxy is required for receiver constraints.
ENABLE_COLIBRI_WEBSOCKET=0
DISABLE_HTTPS=1
ENABLE_HTTP_REDIRECT=0
# ── XMPP domains (match Jitsi's internal network — do not change) ─────────────
XMPP_DOMAIN=meet.jitsi
XMPP_SERVER=xmpp.meet.jitsi
XMPP_AUTH_DOMAIN=auth.meet.jitsi
XMPP_GUEST_DOMAIN=guest.meet.jitsi
XMPP_MUC_DOMAIN=muc.meet.jitsi
XMPP_INTERNAL_MUC_DOMAIN=internal-muc.meet.jitsi
XMPP_HIDDEN_DOMAIN=hidden.meet.jitsi
XMPP_RECORDER_DOMAIN=recorder.meet.jitsi
PROSODY_TRUSTED_PROXIES=127.0.0.1,::1,172.16.0.0/12
COLIBRI_WEBSOCKET_REGEX=.+
# ── JVB / ICE host address ────────────────────────────────────────────────────
# Tells JVB which IP to advertise for ICE (WebRTC media transport).
# Without this, remote participants cannot send or receive audio/video.
#
# Local dev : your machine's LAN IP (not 127.0.0.1 or Docker bridge)
# macOS : ipconfig getifaddr en0
# Linux : hostname -I | awk '{print $1}'
# Uncomment and set:
# DOCKER_HOST_ADDRESS=192.168.1.10
#
# Production : your server's public Elastic IP (replaced by bootstrap --public-ip)
DOCKER_HOST_ADDRESS=__PUBLIC_IP__
JVB_ADVERTISE_IPS=__PUBLIC_IP__
JVB_PORT=10000
JICOFO_REST_PORT=8888
JVB_COLIBRI_PORT=8090
# JVB's WebSocket server-ID — only relevant when ENABLE_COLIBRI_WEBSOCKET=1.
# Local dev: 127.0.0.1:8001 → PRODUCTION: your-jitsi-domain.com
JVB_WS_DOMAIN=127.0.0.1:8001
JVB_WS_TLS=0
# ── Jitsi auth passwords ──────────────────────────────────────────────────────
# Auto-generated on first `npm run setup`. Never committed. Preserved on re-runs.
JICOFO_AUTH_PASSWORD=replace-me-run-setup-script
JVB_AUTH_PASSWORD=replace-me-run-setup-script
JIGASI_XMPP_PASSWORD=replace-me-unused
JIGASI_TRANSCRIBER_PASSWORD=replace-me-unused
JIBRI_RECORDER_PASSWORD=replace-me-unused
JIBRI_XMPP_PASSWORD=replace-me-unused
# ── Eventyay plugin (optional) ────────────────────────────────────────────────
# VITE_EVENTYAY_API_BASE=http://localhost:8000
# VITE_EVENTYAY_JWT_ENDPOINT=http://localhost:8000/api/v1/loungemesh/token/
# VITE_ALLOW_IFRAME_FROM=http://localhost:8000
# ── Database & Redis Caching (LoungeMesh Server Backend) ──────────────────────
# PostgreSQL DB credentials for Docker container initialization
POSTGRES_USER=loungemesh
POSTGRES_PASSWORD=loungemesh
POSTGRES_DB=loungemesh
POSTGRES_PORT=5432
# Redis caching port exposed on host
REDIS_PORT=6379
# Backend DB connection strings (used by Prisma and Redis client)
DATABASE_URL=postgresql://loungemesh:loungemesh@postgres:5432/loungemesh?schema=public&connection_limit=20&pool_timeout=15
REDIS_URL=redis://redis:6379
# ── Cryptography and Authentication (Express Backend Server) ─────────────────
# JWT encryption secret and AES-256-GCM OAuth encryption key (auto-generated on first setup)
JWT_SECRET=replace-me-run-setup-script
ENCRYPTION_KEY=replace-me-run-setup-script
# Google OAuth App credentials (retrieve from Google Cloud Console)
GOOGLE_CLIENT_ID=
GOOGLE_CLIENT_SECRET=
# Whitelisted origins for dynamic OAuth redirect callbacks (comma separated)
ALLOWED_OAUTH_ORIGINS=http://localhost:8780,https://loungemesh.com,https://www.loungemesh.com