The Tails downloads are served using two different mirror pools (HTTP and DNS), depending on the use case.

HTTP pool

The HTTP pool is a web service that redirects clients to the nearest mirror based on their IP geolocation data:

  • IP geolocation data is automatically and periodically updated from MaxMind's GeoLite2 databases.

  • Downloads are served under the download.tails.net domain (see mirror statistics).

  • Mirrorbits performs the actual redirections according to its own internal score system, which is based on mirrors' weights (imported from mirrors.json) and IP geolocation data (Autonomous Systems, countries and calculated distances).

  • The list of mirrors is maintained by Sysadmins via Puppet (see code and exampe data)

mirrors.json (legacy)

We publish a list of HTTP mirrors in a JSON file on our website which will eventually be deprecated but is still used by the Tails Upgrader (up to Tails 5.8) and some bits of the RM process. That file is managed by Puppet.

The mirrors.json configuration file is essentially a list of mirrors, and for each of them we need a few values:

  • url_prefix: whatever needs to be pre-pended to the path to an ISO (e.g. /stable/tails-i386-2.0/tails-i386-2.0.iso) that is shared between all mirrors, to form a complete URL to that ISO; for example https://mirrors.wikimedia.org/tails/

  • rsync_url: this URL is used by the server-side redirector to periodically check each mirror's health.

  • weight: the probability this mirror has to be picked by the dispatcher code, expressed as a non-negative integer; weight 0 means that the mirror is currently disabled, and will never be redirected to

  • email (optional): the email address of the mirror's operator

  • notes (optional): various additional notes that can be useful to the managers of the mirror pool

DNS pool

A DNS Round Robin pool (at dl.amnesia.boum.org) points to a few fast and reliable mirrors. It is used as a fallback for the versions of Tails Upgrader included up to Tails 5.8, inclusive. The DNS entries are managed by Sysadmins in the same way all the other DNS entries are managed.

Documentation for mirror pool administrators

Documentation is maintained in the Sysadmins private documentation repository.