mirror of
https://github.com/meehow/privtracker.git
synced 2026-05-06 23:34:37 +08:00
139 lines
4.7 KiB
HTML
139 lines
4.7 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<link rel="stylesheet" href="water.css">
|
|
<link rel="canonical" href="https://privtracker.com/">
|
|
<title>PrivTracker - Private BitTorrent tracker for everyone</title>
|
|
<script>
|
|
document.addEventListener("DOMContentLoaded", () => {
|
|
document.querySelectorAll(".url").forEach(url => {
|
|
url.innerText = url.innerText.replace('{{origin}}', window.location.origin);
|
|
})
|
|
})
|
|
function makeRoom() {
|
|
const randomValues = new Uint8Array(16);
|
|
crypto.getRandomValues(randomValues);
|
|
const roomID = Array.from(randomValues).map(byte => byte.toString(16).padStart(2, '0')).join('');
|
|
|
|
document.querySelectorAll(".url").forEach(url => {
|
|
url.innerText = url.innerText.replace('{{room}}', roomID);
|
|
});
|
|
|
|
document.querySelector('#hidden').style.display = 'block';
|
|
}
|
|
function copyToClipboard() {
|
|
if (navigator.clipboard) {
|
|
navigator.clipboard.writeText(document.querySelector('.url').innerText);
|
|
} else {
|
|
window.alert('"Copy to clipboard" works only on https websites.');
|
|
}
|
|
}
|
|
</script>
|
|
<style>
|
|
.image-container {
|
|
position: relative;
|
|
display: inline-block;
|
|
}
|
|
|
|
.image-container img {
|
|
display: block;
|
|
}
|
|
|
|
.image-container .url {
|
|
position: absolute;
|
|
color: #1a1a1a;
|
|
background-color: white;
|
|
font-size: 13px;
|
|
}
|
|
|
|
.image-container .url.gtk {
|
|
top: 54%;
|
|
left: 32%;
|
|
width: 59%;
|
|
font-family: Ubuntu, Helvetica, Arial, san-serif;
|
|
}
|
|
|
|
.image-container .url.mac {
|
|
top: 28%;
|
|
left: 18%;
|
|
width: 72%;
|
|
font-family: 'San Francisco', Helvetica, Arial, san-serif;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<nav style="float: right">
|
|
<a href="https://github.com/meehow/privtracker">Source code</a>
|
|
</nav>
|
|
<div>
|
|
<h1>PrivTracker</h1>
|
|
<h2>Private BitTorrent tracker for everyone</h2>
|
|
<p>
|
|
PrivTracker allows you to share torrent files only with your friends and nobody else.
|
|
Unlike public trackers, it shares peers only within a group using the same announce URL.
|
|
It really works like a private tracker, but can be generated with one click of a button.
|
|
</p>
|
|
|
|
<button onclick="makeRoom()">I'm in. Generate private tracker for me</button>
|
|
|
|
<div id="hidden" style="display:none">
|
|
<h3>Your announce URL:</h3>
|
|
<code class="url">{{origin}}/{{room}}/announce</code>
|
|
<button onclick="copyToClipboard()">Copy to clipboard</button>
|
|
<p>(You can also use any random string as the Room ID. We don't store it anywhere.)</p>
|
|
</div>
|
|
|
|
<h2>How to create private torrent?</h2>
|
|
<h3>Using <a href="https://transmissionbt.com/" target="_blank">transmission</a> on Linux:</h3>
|
|
<ul>
|
|
<li>File <b>→</b> New…</li>
|
|
<li>Select file to share</li>
|
|
<li>In <b>Trackers</b> field enter <code class="url">{{origin}}/{{room}}/announce</code></li>
|
|
<li>Select <b>Private torrent</b></li>
|
|
<li>Click <b>New</b></li>
|
|
<li>Click <b>Add</b> in next window</li>
|
|
<li>Click <b>Open</b> to start seeding</li>
|
|
<li>Done. Now you can send torrent file to your friends…</li>
|
|
</ul>
|
|
<div class="image-container">
|
|
<img src="new_torrent_gtk.png" alt="New Torrent screenshot">
|
|
<div class="url gtk">{{origin}}/{{room}}/announce</div>
|
|
</div>
|
|
<h3>Using <a href="https://transmissionbt.com/" target="_blank">transmission</a> on Mac:</h3>
|
|
<ul>
|
|
<li>File <b>→</b> Create Torrent File…</li>
|
|
<li>Select file to share</li>
|
|
<li>Click <b>+</b> under <b>Trackers</b> field and enter <code
|
|
class="url">{{origin}}/{{room}}/announce</code></li>
|
|
<li>Select <b>Private</b>
|
|
<li>Select <b>Open when created</b></li>
|
|
<li>Click <b>Create</b></li>
|
|
<li>Click <b>Add</b> to start seeding</li>
|
|
<li>Done. Now you can send torrent file to your friends…</li>
|
|
</ul>
|
|
<div class="image-container">
|
|
<img src="new_torrent_mac.png" alt="New Torrent screenshot">
|
|
<div class="url mac">{{origin}}/{{room}}/announce</div>
|
|
</div>
|
|
|
|
<h2>The Problem PrivTracker solves</h2>
|
|
<p>
|
|
Sharing large files has always been difficult without compromising privacy or simplicity.
|
|
Centralized services require full uploads before sharing, often with account registration and fees for
|
|
large files.
|
|
Hosting a file server demands technical knowledge, like opening firewall ports, and requires your
|
|
computer to stay online.
|
|
PrivTracker solves this by enabling private torrent sharing within a trusted group.
|
|
Using UPnP, most torrent clients can automatically handle port opening, and only one person in the group
|
|
needs an open port for everyone to download.
|
|
Unlike public trackers, PrivTracker shares peers' IPs only within the group and keeps files off public
|
|
networks like DHT, ensuring privacy and efficient sharing.
|
|
</p>
|
|
</div>
|
|
</body>
|
|
|
|
</html> |