Tracker

From Archiveteam
Jump to navigation Jump to search
Project admin overview

The tracker software is the center-pivot of Archiveteam's distributed archiving efforts. It hands out items to be downloaded and keeps track of what is completed. Items can be usernames, subdomains, full URLs, basically any unit we can use to break the site into manageable chunks. The progress of each project can be viewed via the leaderboard interface on https://tracker.archiveteam.org.

A leaderboard

The Warrior is the yang to the Tracker's yin. The warriors get the list of current projects from the project file on https://warriorhq.archiveteam.org/.

Userscript

A custom (but unofficial) userscript, which can be installed using Tampermonkey or other userscript managers, can be used to replace the tracker leaderboard JS to enable the display of additional information including b/s and i/s values as well as time estimates.

API

This is a sample project snippet from the projects.json file (line breaks included for readability):

{
    "name": "streetfiles",
    "title": "Streetfiles",
    "description": "Streetfiles is closing April, 30th, 2013.",
    "repository": "https://github.com/ArchiveTeam/streetfiles-grab.git",
    "logo": "http://archiveteam.org/images/7/7b/Streetfiles-logo.png",
    "marker_html": 
        "<a href='http://tracker.archiveteam.org/streetfiles/'>
        <img src='http://archiveteam.org/images/7/7b/Streetfiles-logo.png'
        alt='Streetfiles' width='235' height='50' /></a>",
    "deadline": "2013-04-30T23:59:59Z",
    "host": "streetfiles.org",
    "leaderboard": "http://tracker.archiveteam.org/streetfiles/",
    "lat_lng": [
        51,
        9
    ]
},

It shows where to get the grab code and other project information.

Here is an example root of the file:

{
    "auto_project": "projectslug",
    "broadcast_message": "<p>This message is shown only 
        in the warrior VM web UI at time of writing.</p>",
    "tracker_banner_html": "This is shown on the tracker 
        front page. <em>Wow!</em>",
    "warrior": {"seesaw_version":"0.7.0"},
    "projects": [],
}

Hardware

In 20??-present day (2023), the tracker runs on "several beefy Hetzner servers".

Software

  • A proprietary system consisting of a large wrapper around the original Universal Tracker, a Ruby HTTP application that sends and receives JSON payloads and uses Redis for the data store.
  • Redis A memory-based key-value store
  • Debian is the Linux distribution the stack is built upon.
  • warrior-hq a small Sinatra web app to manage the Warriors and display the geo-location world map.

You can also set up your own tracker.


History

This history is both incomplete (it stops in early 2012) and probably wrong in areas.

Originally, ArchiveTeam coordinated large projects through the wiki, keeping tables of (the analogues of what are called in tracker terminology) items and letting people claim them and update their progress by editing the wiki.[1]Midway through the Google Video project, in April 2011, Underscor created a system called "Listerine" that did this automatically[2][3] (a client for the Listerine protocol can be found here.) This remained an attractive concept (and the name "tracker" seems to have originated during a wistful discussion about this[4]), and later in the year, Alard, the de facto project lead/resident enthusiast of MobileMe, wanted Underscor to set up another Listerine instance for it[5]. Apparently this never happened, since a few weeks later Alard wrote his own system, which had something resembling the current tracker protocol.[6] A few months later, this was replaced by a shell script called "Seesaw", which added automatic uploading with Rsync[7]

Sometime in the late 2010s the open-source tracker was gradually replaced with the proprietary one. Then or in the early 2020s backfeed and multi-item support was added. As of 2023 most of the admin functionality is broken, as far as I know; everything but setting the minimum version and the rate limit is done with non-public methods by the tracker admins.