Voice-only conference calls on your local network. No accounts, no relay servers, no cloud — just a Go binary that serves a web app and peers connect directly via WebRTC (Opus, 48 kHz).
- Go 1.21 or later
- Any modern browser (Chrome, Firefox, Safari, Edge)
make runOr manually:
go mod download
go build -o lightvoice .
./lightvoiceThe server starts on port 8443 (HTTPS). On first launch it generates a self-signed TLS certificate (cert.pem / key.pem) in the current directory. HTTPS is required so browsers allow microphone access from non-localhost devices.
The terminal shows the URLs available on your local network:
+-----------------------------------------+
| LightVoice Server |
+-----------------------------------------+
| Share these URLs on your local network:|
| |
| https://192.168.1.42:8443 |
| https://localhost:8443 (this machine)|
| ... |
+-----------------------------------------+
Share any of the https://... URLs with people on the same Wi-Fi or wired network. They will see a browser security warning for the self-signed cert — click Advanced → Proceed (or Accept the Risk) once, then the app loads.
Install mkcert, then:
mkcert -install
mkcert -cert-file cert.pem -key-file key.pem localhost 127.0.0.1 192.168.1.42
./lightvoiceReplace 192.168.1.42 with your machine's actual LAN IP.
./lightvoice -port 8443
Mac (LightVoice binary)
├── HTTPS server → serves web client (HTML/CSS/JS embedded in binary)
└── WebSocket /ws → WebRTC signaling (offer/answer/ICE exchange)
Browser A ──(WebRTC P2P audio)──► Browser B
↖──────────────────────────↙
(no server in the audio path)
Audio flows directly between browsers — the Mac server only handles signaling (a few small JSON messages per connection). CPU and memory usage stays near zero once peers are connected.
- Codec: Opus (48 kHz, mono)
- Echo cancellation, noise suppression, auto gain control: enabled
- Audio latency: requested minimum
- Transport: WebRTC SRTP (encrypted, P2P)