summaryrefslogtreecommitdiff
path: root/stories/projects/opentracker.rst
diff options
context:
space:
mode:
Diffstat (limited to 'stories/projects/opentracker.rst')
-rw-r--r--stories/projects/opentracker.rst33
1 files changed, 24 insertions, 9 deletions
diff --git a/stories/projects/opentracker.rst b/stories/projects/opentracker.rst
index d269fca..11005cb 100644
--- a/stories/projects/opentracker.rst
+++ b/stories/projects/opentracker.rst
@@ -4,7 +4,7 @@
4.. date: 2015/02/19 19:10:08 4.. date: 2015/02/19 19:10:08
5.. title: opentracker 5.. title: opentracker
6.. subtitle: An open and free bittorrent tracker 6.. subtitle: An open and free bittorrent tracker
7.. slug: ../arts/software/opentracker/index 7.. slug: ../arts/software/opentracker
8.. prio: 1000 8.. prio: 1000
9 9
10.. contents:: 10.. contents::
@@ -26,14 +26,28 @@
26Overview 26Overview
27======== 27========
28 28
29*opentracker* is a open and free `bittorrent tracker <http://wiki.theory.org/BitTorrentSpecification>`_ project. It aims for minimal resource usage and is intended to run at your wlan router. Currently it is deployed as an open and free tracker instance. Read our `free and open tracker blog <http://opentracker.blog.h3q.com/>`_ and announce your torrents there (but do not hesitate to setup your own free trackers!). 29*opentracker* is an open and free `bittorrent tracker <http://wiki.theory.org/BitTorrentSpecification>`_ project. It aims for minimal resource usage and is intended to run at your wlan router. Currently it is deployed as an open and free tracker instance. Read our `free and open tracker blog <http://opentracker.blog.h3q.com/>`_ and announce your torrents there (but do not hesitate to setup your own free trackers!).
30 30
31---- 31----
32 32
33Version History 33Version History
34=============== 34===============
35 35
36*opentracker* is currently only available from CVS. A tar ball will be rolled soon. Use ``git clone git://erdgeist.org/opentracker`` or the legacy view ``cvs -d :pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker`` with an empty passwort to check it out. An `*opentracker* gitweb </gitweb/opentracker/>`_ and an `*opentracker* cvsweb (deprecated) </cvsweb/opentracker/>`_ are available. 36Use ``git clone git://erdgeist.org/opentracker`` to check it out. An *opentracker* `gitweb </gitweb/opentracker/>`_ is available.
37
38* CURRENT - not packaged yet
39* V1.0 `<opentracker-1.0.tar.bz2>`_ (2025-01-01)
40
41 * After 18 years of development, a v1.0 was released.
42 * It requires libowfat version >= 0.34.
43 * Since April 2024, opentracker supports IPv4 and IPv6 peers in a single tracker.
44
45 * With TCP announces, both IPv4 and IPv6 peers will now be returned.
46 * Proxy addresses can be networks in CIDR notation now.
47 * For trackers with many insertions and deletions in black/white lists, dynamic access lists were introduced, with fifo allowing to add or delete torrents.
48 * Full scrapes and other data intense queries are now delivered using chunked http transfers, allowing generating them on the fly, saving a lot of memory. Also they are compressed by default now.
49 * UDP replies on the IPv6 side are now limited to amounts of peers that will not cause fragmentation on most routers.
50 * Better prevent expensive stats operations to be triggered by accident. Some torrents included a stats URL as announce URL.
37 51
38---- 52----
39 53
@@ -46,7 +60,6 @@ Until *opentracker* is declared official release ready, the way to install it is
46 cd libowfat 60 cd libowfat
47 make 61 make
48 cd .. 62 cd ..
49 # LEGACY: cvs -d:pserver:anoncvs@cvs.erdgeist.org:/home/cvsroot co opentracker
50 git clone git://erdgeist.org/opentracker 63 git clone git://erdgeist.org/opentracker
51 cd opentracker 64 cd opentracker
52 make 65 make
@@ -55,8 +68,10 @@ That should leave you with an exectuable called ``opentracker`` and one debug ve
55 68
56Some variables in *opentracker*'s Makefile control features and behaviour of *opentracker*. Here they are: 69Some variables in *opentracker*'s Makefile control features and behaviour of *opentracker*. Here they are:
57 70
58* ``-DWANT_V6`` makes *opentracker* an IPv6-only tracker. More in the v6-section below. 71* ``-DWANT_V4_ONLY`` makes *opentracker* bind only on IPv4 addresses.
59* *opentracker* can deliver gzip compressed full scrapes. Enable this with ``-DWANT_COMPRESSION_GZIP`` option. 72* *opentracker* can deliver gzip compressed full scrapes. Enable this with ``-DWANT_COMPRESSION_GZIP`` option (this is the default).
73
74 * To make *opentracker* deliver gzip compressed full scrapes always, enable the ``-DWANT_COMPRESSION_GZIP_ALWAY`` option (this is the default).
60* Normally *opentracker* tracks any torrent announced to it. You can change that behaviour by enabling ONE of ``-DWANT_ACCESSLIST_BLACK`` or ``-DWANT_ACCESSLIST_WHITE``. Note, that you have to provide a whitelist file in order to make *opentracker* do anything in the latter case. More in the closed mode section below. 75* Normally *opentracker* tracks any torrent announced to it. You can change that behaviour by enabling ONE of ``-DWANT_ACCESSLIST_BLACK`` or ``-DWANT_ACCESSLIST_WHITE``. Note, that you have to provide a whitelist file in order to make *opentracker* do anything in the latter case. More in the closed mode section below.
61* *opentracker* can run in a cluster. Enable this behaviour by enabling ``-DWANT_SYNC_LIVE``. Note, that you have to configure your cluster before you can use *opentracker* when this option is on. 76* *opentracker* can run in a cluster. Enable this behaviour by enabling ``-DWANT_SYNC_LIVE``. Note, that you have to configure your cluster before you can use *opentracker* when this option is on.
62* Some statistics *opentracker* can provide are sensitive. You can restrict access to these statistics by enabling ``-DWANT_RESTRICT_STATS``. See section statistics for more details. 77* Some statistics *opentracker* can provide are sensitive. You can restrict access to these statistics by enabling ``-DWANT_RESTRICT_STATS``. See section statistics for more details.
@@ -70,7 +85,7 @@ Some variables in *opentracker*'s Makefile control features and behaviour of *op
70Invocation 85Invocation
71========== 86==========
72 87
73*opentracker* can be run by just typing ``./opentracker``. This will make *opentracker* bind to ``0.0.0.0:6969`` and happily serve all torrents presented to it. If ran as root, *opentracker* will immediately chroot to . (or any directory given with the -d option) and drop all priviliges after binding to whatever tcp or udp ports it is requested. 88*opentracker* can be run by just typing ``./opentracker``. This will make *opentracker* bind to ``0.0.0.0:6969`` and ``[::1]:6969`` and happily serve all torrents presented to it. If ran as root, *opentracker* will immediately chroot to . (or any directory given with the -d option) and drop all priviliges after binding to whatever tcp or udp ports it is requested.
74 89
75When options were few, *opentracker* used to accept all of them from command line. While this still is possible for most options, using them is quite unhandy: an example invocation would look like ``./opentracker -i 23.23.23.7 -p 80 -P 80 -p 6969 -i 23.23.23.8 -p 80 -r http://www.mytorrentsite.com/ -d /usr/local/etc/opentracker -w mytorrents.list -A 127.0.0.1``. 90When options were few, *opentracker* used to accept all of them from command line. While this still is possible for most options, using them is quite unhandy: an example invocation would look like ``./opentracker -i 23.23.23.7 -p 80 -P 80 -p 6969 -i 23.23.23.8 -p 80 -r http://www.mytorrentsite.com/ -d /usr/local/etc/opentracker -w mytorrents.list -A 127.0.0.1``.
76 91
@@ -100,7 +115,7 @@ To make *opentracker* reload it's white/blacklist, send a ``SIGHUP`` unix signal
100Statistics 115Statistics
101========== 116==========
102 117
103Given its very network centric approach, talking to *opentracker* via http comes very naturally. Besides the ``/announce`` and ``/scrape`` paths, there is a third path you can access the tracker by: ``/stats``. This request takes parameters, for a quick overview just inquire `/stats?mode=everything``. 118Given its very network centric approach, talking to *opentracker* via http comes very naturally. Besides the ``/announce`` and ``/scrape`` paths, there is a third path you can access the tracker by: ``/stats``. This request takes parameters, for a quick overview just inquire `/stats?mode=everything`.
104 119
105Statistics have grown over time and are currently not very tidied up. Most modes were written to dump legacy-SNMP-style blocks that can easily be monitored by `MRTG <http://oss.oetiker.ch/mrtg/>`_. These modes are: ``peer``, ``conn``, ``scrp``, ``udp4``, ``tcp4``, ``busy``, ``torr``, ``fscr``, ``completed``, ``syncs``. I'm not going to explain these here. 120Statistics have grown over time and are currently not very tidied up. Most modes were written to dump legacy-SNMP-style blocks that can easily be monitored by `MRTG <http://oss.oetiker.ch/mrtg/>`_. These modes are: ``peer``, ``conn``, ``scrp``, ``udp4``, ``tcp4``, ``busy``, ``torr``, ``fscr``, ``completed``, ``syncs``. I'm not going to explain these here.
106 121
@@ -113,7 +128,7 @@ You can inquire *opentracker*'s version (i.e. CVS versions of all its objects) u
113Philosophy 128Philosophy
114========== 129==========
115 130
116A torrent tracker basically is an http-Server that collects all clients ip addresses into pools sorted by one of the request strings parameters and answers all other clients that specified this exact same parameter a list of all other recent clients. All technologies to implement this are around for more than twenty years. Still most implementations suck performancewise. 131A torrent tracker basically is an http server that collects all clients ip addresses into pools sorted by one of the request strings parameters and answers all other clients that specified this exact same parameter a list of all other recent clients. All technologies to implement this are around for more than twenty years. Still most implementations suck performancewise.
117 132
118Utilizing the highly scalable server framework from `libowfat <http://www.fefe.de/libowfat/>`_, *opentracker* can easily serve multiple thousands of requests on a standard plastic WLAN-router, limited only by your kernels capabilities ;) 133Utilizing the highly scalable server framework from `libowfat <http://www.fefe.de/libowfat/>`_, *opentracker* can easily serve multiple thousands of requests on a standard plastic WLAN-router, limited only by your kernels capabilities ;)
119 134