summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJordan <me@jordan.im>2022-05-15 18:33:15 -0700
committerJordan <me@jordan.im>2022-05-15 18:33:15 -0700
commitf654b90ff115b824595732e4a87dd901686a9dc1 (patch)
tree214b8951743204559f98484f7672a1e37df99dea
parent78deae288b5cf8e730188199f607f709466d35b6 (diff)
downloadwww-f654b90ff115b824595732e4a87dd901686a9dc1.tar.gz
www-f654b90ff115b824595732e4a87dd901686a9dc1.zip
tracker.jordan.im: usage graphs
-rw-r--r--tracker.jordan.im/index.html54
-rw-r--r--tracker.jordan.im/style.css1
-rwxr-xr-xtracker.jordan.im/update-stats.py20
3 files changed, 73 insertions, 2 deletions
diff --git a/tracker.jordan.im/index.html b/tracker.jordan.im/index.html
new file mode 100644
index 0000000..41ccd88
--- /dev/null
+++ b/tracker.jordan.im/index.html
@@ -0,0 +1,54 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="utf-8"/>
+ <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
+ <link rel="stylesheet" href="style.css" type="text/css" media="all"/>
+ <title>TRACKER.JORDAN.IM(7)</title>
+</head>
+<body>
+<table class="head">
+ <tr>
+ <td class="head-ltitle">TRACKER.JORDAN.IM(7)</td>
+ <td class="head-vol">Miscellaneous Information Manual</td>
+ <td class="head-rtitle">TRACKER.JORDAN.IM(7)</td>
+ </tr>
+</table>
+<div class="manual-text">
+<section class="Sh">
+<h1 class="Sh" id="NAME"><a class="permalink" href="#NAME">NAME</a></h1>
+<code class="Nm">tracker.jordan.im</code> &#x2014;
+<div class="Nd">a free and open bittorrent tracker</div>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="ANNOUNCE"><a class="permalink" href="#ANNOUNCE">ANNOUNCE</a></h1>
+udp://tracker.jordan.im:6969/announce
+</section>
+<section class="Sh">
+<h1 class="Sh" id="STATS"><a class="permalink" href="#STATS">STATS</a></h1>
+The tracker has been online for 308 hrs, serving 787590 torrents with 1984 connections per second.
+</section>
+<section class="Sh">
+<h1 class="Sh" id="DESCRIPTION"><a class="permalink" href="#DESCRIPTION">DESCRIPTION</a></h1>
+This is a service known as a
+ <a class="Lk" href="https://jordan.im/ipfs/bafybeiaysi4s6lnjev27ln5icwm6tueaw2vdykrtjkwiphwekaywqhcjze/wiki/BitTorrent_tracker">bittorrent
+ tracker</a>, which coordinates the reliable transmission of information
+ between peers.
+<p class="Pp">There is very little to be found here. There are no indexes or
+ search boxes. You need to speak the
+ <a class="Lk" href="https://www.bittorrent.org/beps/bep_0003.html">bittorrent
+ protocol</a> and have knowledge of a hash to make use of this service.</p>
+</section>
+<section class="Sh">
+<h1 class="Sh" id="GRAPHS"><a class="permalink" href="#GRAPHS">GRAPHS</a></h1>
+<img src="cpu.png" alt="cpu usage graph">
+<img src="net.png" alt="net usage graph">
+</div>
+<table class="foot">
+ <tr>
+ <td class="foot-date">November 11, 2021</td>
+ <td class="foot-os">Debian</td>
+ </tr>
+</table>
+</body>
+</html>
diff --git a/tracker.jordan.im/style.css b/tracker.jordan.im/style.css
index 740b52f..2524976 100644
--- a/tracker.jordan.im/style.css
+++ b/tracker.jordan.im/style.css
@@ -20,3 +20,4 @@ a { color: var(--ansi4); }
a:visited { color: var(--ansi5); }
a.permalink { color: var(--ansi3); text-decoration: none; }
+img { max-width: 80ch; width: 100%; height: auto; }
diff --git a/tracker.jordan.im/update-stats.py b/tracker.jordan.im/update-stats.py
index bc370b2..f0a1ec7 100755
--- a/tracker.jordan.im/update-stats.py
+++ b/tracker.jordan.im/update-stats.py
@@ -1,10 +1,12 @@
#!/usr/bin/env python3
import fileinput
+import os
+import shutil
import sys
import urllib.request
-INDEX_PATH = '/var/www/html/tracker.jordan.im/index.html'
+WWW = '/var/www/html/tracker.jordan.im'
stats = dict.fromkeys(['torrents', 'connections', 'uptime'])
@@ -30,10 +32,24 @@ s = (
f'with {stats["connections"]} connections per second.\n'
)
-for line in fileinput.input([INDEX_PATH], inplace=True):
+for line in fileinput.input([os.path.join(WWW, 'index.html')], inplace=True):
if line.strip().startswith('The tracker has been'):
line = s
sys.stdout.write(line)
+cpu = 'https://service.greenhost.net/cloud/Instance/graph?id=7615&template=cpu&timeframe=24'
+conn = urllib.request.Request(cpu)
+conn.add_header('Cookie', 'PHPSESSID=XXXXXXXXXXXXXXXXXXXXXXXXXX')
+
+with urllib.request.urlopen(conn) as r, open(os.path.join(WWW, 'cpu.png'), 'wb') as out:
+ out.write(r.read())
+
+net = 'https://service.greenhost.net/cloud/Instance/graph?id=7615&template=net1&timeframe=24'
+conn = urllib.request.Request(net)
+conn.add_header('Cookie', 'PHPSESSID=XXXXXXXXXXXXXXXXXXXXXXXXXX')
+
+with urllib.request.urlopen(conn) as r, open(os.path.join(WWW, 'net.png'), 'wb') as out:
+ out.write(r.read())
+
#import code
#code.interact(local=locals())