Repository navigation
Expand file tree
/
Copy path.env.example
More file actions
71 lines (58 loc) · 2.78 KB
/
Copy path.env.example
File metadata and controls
71 lines (58 loc) · 2.78 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
# OpenStudio Development Configuration
# ⚠️ Copy this file to .env and replace ALL 'changeme' values with strong, unique passwords
# before running in any environment — especially production.
# Development Mode
# - docker: Run all services in Docker (recommended for most users)
# - local: Run signaling server locally with hot reload (for core development)
DEV_MODE=docker
# Local Development Port (only used when DEV_MODE=local)
# Note: Docker mode always uses port 6736
LOCAL_SIGNALING_PORT=6736
# Icecast credentials — CHANGE THESE before deployment
ICECAST_SOURCE_PASSWORD=changeme
ICECAST_ADMIN_PASSWORD=changeme
ICECAST_ADMIN_USERNAME=admin
ICECAST_RELAY_PASSWORD=changeme
# TURN server — CHANGE THIS before deployment
COTURN_PASSWORD=changeme
# Icecast connection (server-side)
#
# ICECAST_HOST / ICECAST_PORT tell the signaling server where to reach Icecast
# for two things: (a) streaming source connection, (b) the public /stream/*
# listener proxy. They must point to wherever Icecast actually listens.
#
# - docker-compose dev: localhost:6737 (default — Icecast container maps to 6737)
# - system Icecast (apt install icecast2): localhost:8000 (Debian/Ubuntu default)
# - reverse-proxied behind Caddy/nginx: still the local Icecast — Caddy fronts the
# signaling server, which in turn proxies /stream/* to ICECAST_HOST:ICECAST_PORT
#
# Mismatch → /stream/* returns 502 Bad Gateway.
# PUBLIC_DOMAIN is your public hostname. Only deploy/docker-compose.prod.yml
# uses it, to set the Icecast stream directory hostname.
PUBLIC_DOMAIN=studio.example.com
ICECAST_HOST=localhost
ICECAST_PORT=6737
ICECAST_PASS=changeme
# JWT secret (Phase 2 - leave empty for auto-generation)
JWT_SECRET=
# Room TTL (milliseconds, 0 = no expiry, 900000 = 15 min for demo)
ROOM_TTL_MS=0
# Show-notes LLM (OpenAI-compatible API: LM Studio, Ollama OpenAI shim, vLLM, llama.cpp server, etc.)
# Optional — if unreachable, show-notes generation falls back to a simple transcript-derived summary.
# Default port 1234 matches LM Studio. Include the /v1 path.
LLM_BASE_URL=http://localhost:1234/v1
LLM_MODEL=qwen3.5-35b
# LLM API key — only needed for cloud providers like OpenAI, Anthropic, Together, Groq.
# Leave blank for local providers (LM Studio, Ollama, llama.cpp server, vLLM).
LLM_API_KEY=
# --- Server ---------------------------------------------------------------
# Port the signaling server listens on.
PORT=6736
# Comma-separated CORS allowlist. IMPORTANT: when unset or empty EVERY origin
# is permitted, which is fine for local development but not for a public
# deployment. Set it before going live.
# ALLOWED_ORIGINS=https://studio.example.com,https://app.example.com
ALLOWED_ORIGINS=
# Icecast mount point and source username the broadcaster publishes to.
ICECAST_MOUNT=/live.opus
ICECAST_USER=source