NOTE - as of August, 2021, the ASF itself is not accepting further mirror site applications.
Organizations may wish to create a download mirror that includes the releases of most or all of the Apache Software Foundation's projects. You may mirror either the full distributions tree, or a reduced tree that excludes a few very resource-intensive (disk-wise and bandwidth-wise) projects (see Mirroring techniques).
Here is how to set up such a mirror.
Hosting a mirror has a few requirements:
We encourage you to
<Directory /path/to/mirror>
IndexOptions FancyIndexing NameWidth=* FoldersFirst ScanHTMLTitles DescriptionWidth=*
HeaderName HEADER.html
ReadmeName README.html
AllowOverride FileInfo Indexes
Options Indexes SymLinksIfOwnerMatch FollowSymLinks
ErrorDocument 404 default
</Directory>
Note that our HEADER.html files do not contain the HTML preamble, so it is important not to enable the SuppressHTMLPreamble
option.
Make sure that the server does not send a Content-Encoding
header for any of the compressed archives. The hashes and signatures used to check downloads are created for the compressed archives so it is vital that the browser is not told to decompress them. For example, .tar.gz
and .tgz
files are compressed TAR files. They should have a suitable Content-Type - e.g. application/x-gzip
- but no Content-Encoding
should be sent. If the server incorrectly sends Content-Encoding: x-gzip
(for example), many browsers will automatically decompress the response. This produces a TAR file which will not verify when checked against the hashes or sigs.
We only support rsync for updating mirrors.
Update your mirror with:
rsync -avz --delete --safe-links rsync.apache.org::apache-dist /path/to/mirror
cronjob minute 0
). Pick a random minute between 5 and 55. Never run cronjobs at minute 0 unless the nature of the job requires it.To exclude resource-intensive projects, replace ::apache-dist
with ::apache-dist-most
. Do not use --exclude
.
If there is a problem with file/directory permissions, make sure you use a proper umask in your cronjob:
umask 022 ; rsync ...
Private mirrors of ASF downloads cannot host the following file types:
exclude => ['/tmp/', '*.md5', '*.MD5', '*.sha1', '*.sha',
'*.sha256', '*.sha512', '*.asc', 'MD5SUM', 'SHA*SUM*',
'*.mds', '*.sha2', '*.sha3', 'META',
'*.sig', '*.KEYS', 'KEYS', 'KEYS.txt',
'.svn/', '/.rsync.td/',
'/openoffice',
'/zzz/rsync-module/apache-dist', '.revision'],
Here is how to add information explaining who is hosting the private download mirror:
/local/path/to/mirror/README.html
--exclude "/README.html"
The contents of README.html appear near the bottom of your mirror's home page.
"/README.html"
.Please limit the contents of the README.html to something like:
This mirror is donated by www.domain.com [url] to support the Apache open source community.
Search engines interpret referring to specific services or products as PageRank manipulation. This could hurt your site's ranking.
If your mirror is not working properly, check the following:
404 Not Found
error. You can verify this by modifying one of the valid URLs that you tested above.If you want to verify that the download is a true mirror of what the ASF project posted, using KEYS and signatures, THIS INFORMATION IS COMING.
If you have any questions, contact us at users@infra.apache.org
.
Copyright 2023, The Apache Software Foundation, Licensed under the Apache License, Version 2.0.
Apache® and the Apache feather logo are trademarks of The Apache Software Foundation...