FoxyFy RTC
Tiny, fast, self-hosted WebRTC signaling
FoxyFy RTC (FFR) — WebRTC signaling without the baggage
FoxyFy RTC is a lightweight, self-hosted WebRTC signaling server designed to replace PeerJS Server and custom “room.php” hacks with a single, robust Go binary.
FFR speaks the PeerJS protocol, handles ID assignment and signaling over secure WebSockets, and integrates tightly with FoxyFy’s TURN/NAT core. The result: reliable WebRTC sessions, predictable reconnection, and clean infrastructure you can actually reason about.
FFR focuses on one job and does it extremely well:
- Assign unique peer IDs to browsers using the PeerJS API.
- Route WebRTC signaling messages (OFFER, ANSWER, CANDIDATE, etc.) between peers.
- Maintain a tiny room registry so hosts and clients can find each other reliably.
- Do all of the above over HTTPS/WSS with proper TLS and OCSP stapling.

Why FoxyFy?
Because FoxyFy RTC delivers exactly what your WebRTC stack needs: fast, predictable signaling without extra moving parts.
Because FoxyFy RTC delivers exactly what your WebRTC stack needs: fast, predictable signaling without extra moving parts.
Fast & lightweight
Single static Go binary (~2.2 MB packed), no dependencies, minimal RAM usage.
First-class TLS & OCSP
Uses the same certificate and OCSP infrastructure as FoxyFy Server and FastTURN.
Single self-contained binary
Install, configure, and run FFR like any other FoxyFy component — no Node, no NPM.
Detailed logging and error reports
Emoji-enabled logs with configurable log levels (debug, info, error) for clean troubleshooting.
Integrated room registry
Simple host/client room model with TTL and automatic cleanup. Ideal for 1:1 sessions.
PeerJS compatible
Works with peerjs.min.js 1.5.x. Drop-in replacement for the PeerJS signaling server.
Exclusive features — only on FoxyFy
Cutting-edge capabilities you won’t find anywhere else.
Hot reloadable
Config reload via signal (like other FoxyFy components) without full process restarts.
Single JSON config with diagnostics
Same config style as FFS/FFN/FFC — one JSON file, with helpful error output if something’s wrong.
Room TTL & auto-GC
Expired rooms and stale peers are cleaned automatically to keep memory footprint small and behavior predictable.
Tight TURN/STUN integration
Designed to pair with FoxyFy NAT Core & TURN (FFN) so you get signaling + media relay from one consistent stack.
Compare FoxyFy
FFR is designed as a drop-in replacement for the PeerJS signaling server — but with FoxyFy’s usual emphasis on minimal footprint and operational clarity.
Fail2ban installs a full Python stack, hundreds of config snippets, and a permanent daemon to police multiple services, layering complex filters and actions on top of your firewall. FoxyFy Ban is a focused, SSH-only banning layer that reads authentication logs directly and hands precise, time-bound blocks to nftables via FoxyFy Guard — delivering comparable SSH hardening with a fraction of the files, memory usage, and operational complexity.
PeerJS + Node.js + PM2 | FoxyFy RTC | |
|---|---|---|
Package size (installed) | 2.1 MB (PeerJS) + 80–200+ MB | 2.2 MB (self-extracting) |
Package files | 15 (PeerJS) + 3,000–10,000+ | 2 |
RAM / boot time | ≈ 158 MB | 8.1 MB |
Execution model | Node.js | GO binary |
Package size & files — On-disk install (binary + configs + modules + core OS libs).
Instead of running a separate Node-based PeerJS server plus custom PHP room scripts, FoxyFy RTC bundles signaling and room matching into one binary. Less code, fewer services, and a cleaner, easier-to-debug WebRTC control plane.

Ready to FoxyFy?
FoxyFy RTC (FFR) ships as part of the FoxyFy NAT Core (FFN) & RTC stack. It’s included at no additional cost for FFN customers and can be deployed on the same nodes that already handle your TLS, HTTP, and media relay.
Run one binary, point your WebRTC apps at it, and your signaling layer is done.
