High-performance WebTorrent tracker
- handles 300k peers on single CPU thanks to uWebSockets.js I/O backend
- handles HTTP and HTTPS connections simultaneously
- IPv4 and IPv6 support
- robust and well-tested: CI, unit tests, static code analyzis, 100% TypeScript
- supports tracker "scrape" extension
- statistics under /stats.json URL
- p2p-media-loader - an open-source engine for P2P streaming of live and on demand video directly in a web browser HTML page
- Novage, LLC - P2P development, support & consulting
- WebTorrent - streaming torrent client for the web https://webtorrent.io
- uWebSockets.js - the Node.js bindings to µWebSockets, one of the most efficient web servers available
Node.js 10.x or 11.x is required.
npm install
npm run build
./bin/wt-tracker [config.json]
or
node dist/run-uws-tracker.js [config.json]
or
npm start [config.json]
See config.json
Name | Type | Description |
---|---|---|
servers.websockets.path | string | URL pattern for the WebSockets endpoint |
servers.websockets.maxPayloadLength | number | The maximum length of received message |
servers.websockets.midleTimeout | number | The maximum amount of seconds that may pass without sending or getting a message. Being idle for more than this, and the connection is severed. |
servers.websockets.mcompression | 0,1,2 | 0 = no compression, 1 = shared compressor, 2 = dedicated compressor (see details) |
tracker.maxOffers | number | The maximum number of client's WebRTC SDP offers that are processed |
tracker.announceInterval | number | Desired announce interval in seconds required from the clients |