English [en]   Deutsch [de]   español [es]   日本語 [ja]   Shqip [sq]  

Meet the GNU Hackers at  GHM 2017  • August 25–27 •  Register Now!

Using and running mirrors

Downloading from mirrors

First, for users/downloaders: the address http://ftpmirror.gnu.org/ multiplexes between the mirrors, trying to choose one that is nearby and up to date. E.g., http://ftpmirror.gnu.org/emacs/ goes to a mirror's directory of GNU Emacs. We recommend using this generic ftpmirror.gnu.org address wherever possible in links, documentation, etc., to reduce load on the main GNU server.

Mirroring the GNU FTP server

Mirroring the GNU FTP server requires approximately 63GB disk space (as of February 2017). You can rsync directly from ftp.gnu.org:

rsync -rltpHS --delete-excluded rsync://ftp.gnu.org/gnu/ /your/dir/

However, please consider mirroring from another site, again to reduce load on the GNU server. These sites provide access to all the material on ftp.gnu.org. They update from us nightly (at least) and you may access them with (via rsync):

rsync is so much more efficient than other protocols that we always recommend rsync for mirror transfers, with the options above, to ensure an exact copy.

You can keep your mirror private, but we appreciate the support if you can make your mirror public. To add your mirror to the public mirror list, we require (and recommend) a daily update frequency. After establishing your mirror, please contact <webmasters@gnu.org> so we can review it. Please provide the following:

In general, mirrors run by both individuals and organizations that want to support free software are welcome and appreciated. Mirrors that are run for the purpose of gaining advertising links or other recognition from our site, or that are engaged in unethical activity, are not accepted on our list.

Web setup for mirrors

It is very useful to make your mirror available to users via http, so please support this if you can. Please set up your web server configuration to avoid sending .gz.sig files (signatures of compressed files, of which there are many on our servers) as gzip-encoded. For Apache, this means:

AddType application/pgp-signature .sig
# make sure .sig files are _not_ sent with "Content-Encoding: gzip".
<Files *.gz.sig>
  RemoveEncoding .gz
<Files *.tgz.sig>
  RemoveEncoding .tgz

Variation: if your AddEncoding lines do not have a leading dot for the extension, for instance like this:

AddEncoding x-gzip gz tgz

then the RemoveEncoding lines should also not have a leading dot.

Finally, we highly recommend the following setting, so that users can see full filenames in generated listings instead of having them be truncated:

IndexOptions NameWidth=*

Mirroring the GNU Alpha release server

ftp.gnu.org and other sites also offer alpha.gnu.org (around 10GB) for your mirroring pleasure:

Nightly updates are sufficient for GNU FTP and Alpha material.

Mirroring nongnu releases from Savannah

We also greatly appreciate additional mirrors of the nongnu projects hosted at savannah.nongnu.org. The total is currently around 51GB. To do this, we recommend you retrieve and update the files using rsync, with the same options as above for ftp.gnu.org, namely:

rsync -rltpHS --delete-excluded rsync://dl.sv.gnu.org/releases/ /your/dir

These options ensure that it is an exact mirror. (There will probably be some permission errors; just ignore them. They are due to choices or mistakes by individual project maintainers.)

It is fine to update savannah/nongnu once a day as well; twice a day if you like. More than that is not worth the bandwidth, the contents are not that dynamic.

If you can help with this, please email us with the url to your mirror so we can add you to the list. Thanks!

(Not) Mirroring the GNU web server

We no longer recommend creating web mirrors, because it has turned out that (a) few people can make use of them, and (b) many mirrors either became out of date or went offline relatively frequently. We don't want outdated information about the GNU project to be disseminated.

Nonetheless, if you wish to mirror www.gnu.org for your own purposes, that is ok with us. We recommend using mod_proxy. Here is an unsupported recipe of Apache directives for your <VirtualHost>:

ServerName gnumirror.example.org
CacheRoot "/var/cache/mod_proxy"
CacheDefaultExpire 86400 # for Apache 2.0+, value is in seconds
ProxyPass / http://www.gnu.org/
CacheEnable disk /

(Thanks to Juri Hoerner for providing this Apache information.)


 [FSF logo] “Our mission is to preserve, protect and promote the freedom to use, study, copy, modify, and redistribute computer software, and to defend the rights of Free Software users.”

The Free Software Foundation is the principal organizational sponsor of the GNU Operating System. Support GNU and the FSF by buying manuals and gear, joining the FSF as an associate member, or making a donation, either directly to the FSF or via Flattr.