Skip to content

Commit 5c2eabf

Browse files
committed
docs: move deployment, terminal usage, and broadcast config to docs/ folder, trim README
1 parent 4fb1b51 commit 5c2eabf

File tree

2 files changed

+56
-61
lines changed

2 files changed

+56
-61
lines changed

README.md

Lines changed: 2 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -211,71 +211,13 @@ When a broadcast is live, a bar appears at the top of the page. Click **Join** t
211211
- **** — minimize the panel without leaving the broadcast
212212
- **** — leave the broadcast entirely
213213

214-
### Audio
215-
216-
Instbyte captures your microphone alongside the screen share by default. Viewers are muted on join — click 🔇 to unmute.
217-
218-
To share audio playing on your screen (videos, music, system sounds), select a **browser tab** in the screen picker and enable **Share tab audio**. Window and full-screen capture do not carry system audio — this is a browser limitation.
219-
220-
### HTTPS requirement
221-
222-
Broadcasting uses `getDisplayMedia` which browsers only allow on secure connections. This means:
223-
224-
- **localhost** — always works. If you run `npx instbyte` on your own machine and open `http://localhost:3000`, you can broadcast.
225-
- **LAN via HTTP** — viewers can watch but cannot broadcast themselves. Only the person running the server can broadcast.
226-
- **LAN via HTTPS** — everyone on the network can broadcast.
227-
228-
### Enabling broadcast for everyone on your network
229-
230-
To let any device on your LAN broadcast, run Caddy alongside Instbyte. Caddy adds HTTPS automatically — no certificate setup needed.
231-
232-
**Install Caddy:**
233-
```bash
234-
# macOS
235-
brew install caddy
236-
237-
# Ubuntu / Debian
238-
sudo apt install caddy
239-
```
240-
241-
**Run alongside Instbyte:**
242-
```bash
243-
# Terminal 1
244-
npx instbyte
245-
246-
# Terminal 2 — replace with your machine's local IP
247-
caddy reverse-proxy --from https://192.168.1.x --to localhost:3000
248-
```
249-
250-
Everyone on the network opens `https://192.168.1.x` instead of the plain HTTP URL. The first visit on each device will show a certificate warning — click **Advanced → Proceed**. After that, full HTTPS, anyone can broadcast.
251-
252-
For a permanent setup with a real domain, see the [Reverse Proxy](#reverse-proxy) section.
253-
254-
### Advanced: broadcast across subnets or over the internet
255-
256-
WebRTC peer connections work natively on a LAN without any relay server. If you're running Instbyte on a VPS or across different subnets, WebRTC needs a TURN relay to punch through NAT.
257-
258-
Install and run [coturn](https://github.com/coturn/coturn) on your server:
259-
```bash
260-
sudo apt install coturn
261-
```
262-
263-
Minimal `/etc/turnserver.conf`:
264-
```
265-
listening-port=3478
266-
fingerprint
267-
lt-cred-mech
268-
user=instbyte:yourpassword
269-
realm=yourdomain.com
270-
```
271-
272-
Then update the STUN_SERVERS config in `client/js/app.js` to point to your TURN server. Teams doing this are already comfortable with server config — the coturn docs cover the rest.
273-
```
214+
For HTTPS setup, enabling broadcast for all devices, and advanced network configuration, see the [Deployment Guide](docs/deployment.md#broadcasting).
274215

275216
---
276217

277218
## Keyboard Shortcuts
278219

220+
```
279221
| Key | Action |
280222
|---|---|
281223
| `/` | Focus search |

docs/deployment.md

Lines changed: 54 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -172,4 +172,57 @@ proxy_pass http://instbyte:3000;
172172

173173
### Keeping it LAN-only
174174

175-
If you don't want external access but still want HTTPS on your local network, tools like [Tailscale](https://tailscale.com) or [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) are good options that require no open ports.
175+
If you don't want external access but still want HTTPS on your local network, tools like [Tailscale](https://tailscale.com) or [Cloudflare Tunnel](https://developers.cloudflare.com/cloudflare-one/connections/connect-networks/) are good options that require no open ports.
176+
177+
## Broadcasting
178+
179+
### Audio
180+
181+
Instbyte captures your microphone alongside the screen share by default. Viewers are muted on join — click 🔇 to unmute.
182+
183+
To share audio playing on your screen (videos, music, system sounds), select a **browser tab** in the screen picker and enable **Share tab audio**. Window and full-screen capture do not carry system audio — this is a browser limitation.
184+
185+
### HTTPS requirement
186+
187+
Broadcasting uses `getDisplayMedia` which browsers only allow on secure connections:
188+
189+
- **localhost** — always works. The person running `npx instbyte` can always broadcast.
190+
- **LAN via HTTP** — viewers can watch but cannot broadcast themselves.
191+
- **LAN via HTTPS** — everyone on the network can broadcast.
192+
193+
### Enabling broadcast for everyone on your network
194+
195+
Run Caddy alongside Instbyte. Caddy adds HTTPS automatically — no certificate setup needed.
196+
```bash
197+
# Install Caddy
198+
brew install caddy # macOS
199+
sudo apt install caddy # Ubuntu / Debian
200+
201+
# Terminal 1
202+
npx instbyte
203+
204+
# Terminal 2 — replace with your machine's local IP
205+
caddy reverse-proxy --from https://192.168.1.x --to localhost:3000
206+
```
207+
208+
First visit on each device will show a certificate warning — click **Advanced → Proceed**. After that, full HTTPS, anyone can broadcast.
209+
210+
### Advanced: broadcast across subnets or over the internet
211+
212+
WebRTC works natively on a LAN without a relay server. For VPS or cross-subnet deployments, WebRTC needs a TURN relay to punch through NAT.
213+
214+
Install [coturn](https://github.com/coturn/coturn):
215+
```bash
216+
sudo apt install coturn
217+
```
218+
219+
Minimal `/etc/turnserver.conf`:
220+
```
221+
listening-port=3478
222+
fingerprint
223+
lt-cred-mech
224+
user=instbyte:yourpassword
225+
realm=yourdomain.com
226+
```
227+
228+
Then update `STUN_SERVERS` in `client/js/app.js` to point to your TURN server.

0 commit comments

Comments
 (0)