## translation metadata
# Revision: $Revision$
# Translation-Priority: 4-optional

#include "head.wmi" TITLE="Tor: Running a Mirror" CHARSET="UTF-8"
<div id="content" class="clearfix">
  <div id="breadcrumbs">
    <a href="<page index>">Home &raquo; </a>
    <a href="<page docs/documentation>">Documentation &raquo; </a>
    <a href="<page docs/running-a-mirror>">Running a Mirror</a>
  </div>
  <div id="maincol">
    <h1>Tor: Running a Mirror</h1>
    <hr>

    <p>Thank you for wanting to mirror the Tor website.  All of
    our mirrors are publicly listed on <a href="<page getinvolved/mirrors>">our mirrors
    page</a>.  We've included some sample commands and configuration below
    to make the initial setup and ongoing maintenance a minimal effort.
    The Tor website and distribution directory currently require roughly
    30 GB of disk space, but this number can fluctuate. Expect space
    requirements of up to 50 GB.
    </p>
    <h2><a class="anchor" href="#sysconfig">Configuring your System</a></h2>
    <p>
    If you would like to run a mirror, it's as easy as these commands to download
    everything a mirror should share with the world:
    </p>
    <tt>
<pre>
rsync -aq --exclude dist --delete rsync://rsync.torproject.org/website-mirror/ /var/www/mirrors/torproject.org
rsync -aq --delete rsync://rsync.torproject.org/dist-mirror/ /var/www/mirrors/torproject.org/dist
</pre>
    </tt>

    <p>
    In order to assure we have reliable and up to date mirrors,
    please ensure your mirror does at least the following:<br/><br/>

    Updates <b>no less</b> than every six hours, but no more frequent than every
    hour.<br/><br/>

    Allows "Directory Index / Indexes" (Index viewing) of the /dist
    directory.<br/><br/>

    Have a valid contact email for administrative communications should your
    server have issues.<br/><br/>

    It is highly recommended for all mirror operators to subscribe to <A
    href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-mirrors">tor-mirrors mailing
    list</A> where all mirror listing modification requests should go (ADD,
    CHANGE, DELETE, any other requests/notifications).  Also, any technical
    assistance in setting up your mirror may be found here as well.<br/><br/>

    </p>
    <br><br>
    <p>
    An example cronjob to update a full mirror once every 6 hours may look like so:
    </p>
    <tt>
<pre>
# m h  dom mon dow   command
0 */6 * * * rsync -aq --exclude dist --delete rsync://rsync.torproject.org/website-mirror/ /var/www/mirrors/torproject.org
5 */6 * * * rsync -aq --delete rsync://rsync.torproject.org/dist-mirror/ /var/www/mirrors/torproject.org/dist
</pre>
    </tt>
    <p>
    For mirror operators that use Apache, we have created a sample virtual host
    configuration file to use:
    </p>
    <tt>
<pre>
&lt;VirtualHost 10.10.10.10:80&gt;
    ServerAdmin youremail@example.com<br/>
    ServerName  ServerNameHere<br/>

    DocumentRoot /var/www/mirrors/torproject.org<br/>

    &lt;Directory /var/www/mirrors/torproject.org/&gt;<br/>
        # Be sure to enable the autoindex and negotiation modules<br/>
        Options MultiViews Indexes<br/>
        DirectoryIndex index<br/>
        AllowOverride None<br/>
    &lt;/Directory&gt;<br/>

&lt;/VirtualHost&gt;
</pre>
    </tt>
    <p>
    For mirror operators that use nginx, we created a sample virtual host
    configuration file to use:
    </p>
    <tt>
<pre>
server {
    listen 10.10.10.10:80;
    server_name your.example.com;

    root /var/www/mirrors/torproject.org;
    index index.html.en;

    location  / {
        autoindex on;
    }
}
</pre>
    </tt>
    <p>
    If you use nginx, please ensure the text/html line in
    <tt>/etc/nginx/mime.types</tt> matches:
    </p>
    <tt>
<pre>
text/html                             en html htm shtml;
</pre>
    </tt>
    <br/><br>
    Please ensure that you keep your mirror updated (we suggest automating this
    task with something like '<tt>cron</tt>'). Our website, source code and
    binary releases change often. An update frequency of six hours is recommended.  Tor users everywhere will thank you.
    </p>
    <br/>
    <h2><a class="anchor" href="#mirrorops">Joining the mirror community</a></h2>
    <p>
    If you are running a mirror, please subscribe to the <A
    href="https://lists.torproject.org/cgi-bin/mailman/listinfo/tor-mirrors">tor-mirrors
    mailing list</A>, and introduce yourself there. Help for mirror
    support and configuration issues may also be found on the list.
    </p>

    <p>
    In order to add your mirror, please send a
    single, comma delimited line of text based on <a
    href="https://gitweb.torproject.org/project/web/webwml.git/plain/include/tor-mirrors.csv">this
    file</a> to the mirrors list. Your mirror will then be added manually
    if it passes availability testing and your provided information is
    confirmed. Some general pointers on mirrors are:
    <ol><li> Try not to run your mirror behind a content delivery network
    (such as Akamai, Cloudflare, Fastly, etc) as most of them block
    access from countries where the mirror is needed the most.</li>
    <li> Try not to redirect http to https. Many places in the world
    cannot use https due to local or national firewalls.</li>
    </ol>
    </p>
  </div>
  <!-- END MAINCOL -->
  <div id = "sidecol">
#include "side.wmi"
#include "info.wmi"
  </div>
  <!-- END SIDECOL -->
</div>
<!-- END CONTENT -->
#include <foot.wmi>