transfer.coffee/tracker.js
Kumi 2394a9f6ee
feat: improve security and error handling in app
- Added `helmet` middleware for enhanced security with CSP.
- Integrated `dotenv` for configuration management.
- Added validation and error handling for mnemonic and infoHash.
- Improved error handling in TURN credentials generation.
- Enhanced notification and progress feedback for file sharing.
- Added tracker server config validation and error handling.
- Updated dependencies to include `helmet` and `dotenv`.

These changes improve the app's security, robustness, and user experience.
2024-06-24 10:40:32 +02:00

39 lines
No EOL
882 B
JavaScript

import { Server } from "bittorrent-tracker";
import dotenv from "dotenv";
dotenv.config();
const PORT = process.env.TRACKER_PORT || 8106;
const HOST = process.env.TRACKER_HOST || "localhost";
const port = Number(PORT);
if (isNaN(port) || port <= 0) {
throw new Error("Invalid TRACKER_PORT value. It must be a positive number.");
}
const server = new Server({
udp: false,
http: false,
ws: true,
stats: false,
});
server.on("error", (err) => {
console.error(`Error: ${err.message}`);
});
server.on("warning", (err) => {
console.warn(`Warning: ${err.message}`);
});
server.on("listening", () => {
console.log(`Tracker is listening on ws://${HOST}:${PORT}`);
});
try {
server.listen(port, HOST, () => {
console.log(`Tracker server started on ws://${HOST}:${PORT}`);
});
} catch (err) {
console.error(`Failed to start tracker server: ${err.message}`);
}