diff options
| author | skylar <me@casper> | 2026-11-01 05:43:24 -0800 |
|---|---|---|
| committer | skylar <me@casper> | 2026-11-01 05:43:24 -0800 |
| commit | e69ad01e700e80fa959dfee08cd556ca0d777ffd (patch) | |
| tree | 645fc9db2142e87a5ef302733a77ba2fec848d88 /deploy/turnserver.conf | |
Yesod: self-hosted WebXR rooms
Start a room in a world and hang out in VR from the headset's browser:
A-Frame + Networked-A-Frame over EasyRTC, with a coturn relay that can hide
everyone's IP address. Ships with the Campfire, Temple, Cabin, Balcony and
Test room worlds.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'deploy/turnserver.conf')
| -rw-r--r-- | deploy/turnserver.conf | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/deploy/turnserver.conf b/deploy/turnserver.conf new file mode 100644 index 0000000..efddc5e --- /dev/null +++ b/deploy/turnserver.conf @@ -0,0 +1,64 @@ +# coturn for Yesod: STUN plus a TURN relay for voice when two people can't +# reach each other directly, and for everyone who hides their IP address. +# Credentials are short-lived HMACs minted by the app (yesod.service) from the +# shared secret below. +# +# On install, set realm to your domain and replace STATIC_AUTH_SECRET with +# TURN_SECRET from /etc/yesod/env (see README.md). + +listening-port=3478 +realm=example.org +use-auth-secret +static-auth-secret=STATIC_AUTH_SECRET +fingerprint + +# Relay ports (open these UDP ports in the firewall). With "Hide my IP +# address" on, everyone relays: each person holds one allocation, and one +# port, per other person in the room. The app's cap of 60 people in rooms of +# up to 8 needs at most 60 x 7 = 420. If you change MAX_PEOPLE or +# MAX_CONNECTIONS, keep these in step. +min-port=49160 +max-port=49999 + +# Each person gets their own TURN username from the app; 7 others plus a +# little slack for reconnects. The total matches the app's limits above. +user-quota=10 +total-quota=450 +stale-nonce=600 + +# No TLS listener (nginx owns 443), no admin CLI, no TCP relays. +no-tls +no-dtls +no-cli +no-tcp-relay +no-multicast-peers + +# Never relay into private, loopback or reserved address space. +denied-peer-ip=0.0.0.0-0.255.255.255 +denied-peer-ip=10.0.0.0-10.255.255.255 +denied-peer-ip=100.64.0.0-100.127.255.255 +denied-peer-ip=127.0.0.0-127.255.255.255 +denied-peer-ip=169.254.0.0-169.254.255.255 +denied-peer-ip=172.16.0.0-172.31.255.255 +denied-peer-ip=192.0.0.0-192.0.0.255 +denied-peer-ip=192.0.2.0-192.0.2.255 +denied-peer-ip=192.88.99.0-192.88.99.255 +denied-peer-ip=192.168.0.0-192.168.255.255 +denied-peer-ip=198.18.0.0-198.19.255.255 +denied-peer-ip=198.51.100.0-198.51.100.255 +denied-peer-ip=203.0.113.0-203.0.113.255 +denied-peer-ip=224.0.0.0-255.255.255.255 +denied-peer-ip=::1 +denied-peer-ip=64:ff9b::-64:ff9b::ffff:ffff +denied-peer-ip=::ffff:0.0.0.0-::ffff:255.255.255.255 +denied-peer-ip=100::-100::ffff:ffff:ffff:ffff +denied-peer-ip=2001::-2001:1ff:ffff:ffff:ffff:ffff:ffff:ffff +denied-peer-ip=2002::-2002:ffff:ffff:ffff:ffff:ffff:ffff:ffff +denied-peer-ip=fc00::-fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff +denied-peer-ip=fe80::-febf:ffff:ffff:ffff:ffff:ffff:ffff:ffff + +# No logs: coturn otherwise records every session with both ends' addresses. +# (To debug a relay problem, swap these for "syslog" and "verbose" for a while.) +no-stdout-log +log-file=/dev/null +simple-log |