Mirrors of the Debian web site


List of web mirrors

There are mirrors of the Debian WWW pages in the following countries:

If your country is not listed and you would like to sponsor a mirror, please let us know. If your country is already listed, there's most probably no need for another mirror. We generally do not encourage creating new Debian web site mirrors.

Why we don't need more web mirrors

Our web site mirrors require maintenance (a bit more than the FTP site mirrors, even, since you need to change Apache config files every now and then) and cost the sponsors resources. However, due to the nature of web pages, which you don't need to download regularly and for which you don't care much if they arrive at 2kbps or at 30kbps since they are quite small, the question of whether having many web site mirrors is useful arises.

There were times when the Internet connections over the world weren't fast, and e.g. getting to www.debian.org from another continent was painful and much slower than a typical modem connection. So we organized mirroring and several web site mirrors came to existence. Ten (or eleven, if you count Turkey) of them are in Europe.

However, today we have blazing fast network links, especially in Europe, so there is hardly any need for this many mirrors. In fact, due to the increased speed of network links between Europe and America, it's not even slow to access www.debian.org from Europe.

That is basically why we don't need any more web site mirrors, especially not on continents where there are already mirrors in place. Please respect our wishes. Thank you for your cooperation.

If you have any questions, send mail to mirrors@debian.org.


Reference for existing mirrors

The information below this point is provided only for reference to the maintainers of existing mirrors.

Mirroring process

The recommended method of mirroring is with rsync. There is no anonymous access to the web site files. You can set up authenticated access with the maintainer of the site you wish to mirror from, please send email to mirrors@debian.org.

The mirroring is a pull process, i.e. the client requests the data from the server at their own convenience. To set this up, you can use the websync script and its configuration file, which can be run from crontab, and which will do everything automatically. Follow the directions in the script to make sure everything works fine.

Mirroring from a push mirror

Push mirroring is a form of mirroring using rsync that we have developed to minimize the time it takes for changes to the archive to reach mirrors. The server mirror uses an ssh trigger to tell the client mirror to update itself.

This method is quite secure as ssh is configured to run only a single command. Also, mirroring is still pull so it is not possible to corrupt the contents of the archive via a forged push mirror. Some mirror administrators have shown some reluctance to using this method of mirroring due to fears that the method may open their machine to invasion. This is simply not true.

For a more detailed description of how this works, why it is secure, and how to set a push mirror, please see the complete explanation.

When to mirror

The main site gets updated approximately every four hours.

If your site is being push mirrored, then you don't need to worry about this. If not, you should calculate the mirroring time for your site according to the dates on timestamp files in /mirror/timestamps/ directory of the web site mirror. Add some time, say half an hour, to that time and mirror then.

The easiest way to automatically have the mirror run every day is to use cron. See man crontab for details.

Advertising the sponsor of the mirror

If you wish, you may replace the image sponsor_img.jpg by an (unobtrusive) logo of your own company or organisation, and make sponsor.html a redirect to your own homepage. By default, both of those files are not mirrored. The defaults are named sponsor.deb.html and sponsor.deb.jpg; although you may use these default files, we encourage you to provide your own image. The suggested maximum size for your logo is 120x60px.

Since content negotiation is being used on the web pages to select the preferred language, you may even provide sponsor.html in different languages. To do this you simply create sponsor.<lang>.html for each <lang> you would like.

Make sure you add any files you don't want overwritten to the exclude list for mirroring.

Configuring the web server

Various Web Server Changes

If your machine is running Debian, it was decided to break Debian policy and use /doc in the web pages. This means you should comment out the Alias /doc/ /usr/share/doc/ line from your /etc/apache/srm.conf file.

Note: all of our CGI scripts are run centrally on cgi.debian.org, so you don't need to worry about them.

Content Negotiation

Content Negotiation is a method which lets a browser negotiate with a server the type of document that should be served. While there are a number of uses for this, the most common is to negotiate what language a document should be served in. Using this will allow Debian to serve its pages in multiple languages in a (technically) very elegant fashion.

For those who are using Apache, the change is almost trivial. Simply add this option:

Options +Multiviews

to the <Directory> section for the Debian web pages in your /etc/apache/access.conf file, and restart the server.

Additionally, you need to make sure that the server can handle all the languages that will be on the web site. This is done using the AddLanguage tag. The following is a list of those languages already used - expect to add more later:

  AddLanguage en .en
  AddLanguage ar .ar
  AddLanguage bg .bg
  AddLanguage ca .ca
  AddLanguage cs .cs
  AddLanguage da .da
  AddLanguage de .de
  AddLanguage el .el
  AddLanguage eo .eo
  AddLanguage es .es
  AddLanguage fa .fa
  AddLanguage fi .fi
  AddLanguage fr .fr
  AddLanguage he .he
  AddLanguage hr .hr
  AddLanguage hu .hu
  AddLanguage hy .hy
  AddLanguage id .id
  AddLanguage it .it
  AddLanguage ja .ja
  AddLanguage ko .ko
  AddLanguage lt .lt
  AddLanguage nb .nb
  AddLanguage nl .nl
  AddLanguage pl .pl
  AddLanguage pt .pt
  AddLanguage ro .ro
  AddLanguage ru .ru
  AddLanguage sk .sk
  AddLanguage sl .sl
  AddLanguage sv .sv
  AddLanguage ta .ta
  AddLanguage tr .tr
  AddLanguage uk .uk
  AddLanguage pt-br .pt
  AddLanguage nb .nb
  AddLanguage zh-CN .zh-cn
  AddLanguage zh-HK .zh-hk
  AddLanguage zh-TW .zh-tw

Due to a bug in apache the wrong language can be served in some circumstances, so it is a good idea to add every language served to the LanguagePriority option, like this:

LanguagePriority en fr es ar bg ca cs da de el eo fa fi he hr hu hy id it ja ko lt nb nl pl pt ro ru sk sl sv ta tr uk pt-br nb zh-CN zh-HK zh-TW

In order to avoid serving content-negotiated files with wrong charset, make sure that the AddDefaultCharSet setting is either commented out or set to Off.

If using apache 1, in order to serve directory index files correctly, you will probably need to modify the DirectoryIndex entry in /etc/apache/srm.conf. This won't work with apache 2 though. The following should be sufficient for apache 1:

DirectoryIndex index index.html

To send the correct Content-Type header for favicon.ico, Apache should be instructed to use the image/x-icon type, like this:

AddType image/x-icon .ico

To send the correct Context-Type header for RSS feeds, Apache should be instructed to use the application/rss+xml type, like this:

AddType application/rss+xml .rdf

To avoid problems with content-negotiation with the content under /events, calendar files need to be assigned a lower priority than text/html content:

AddType text/calendar;qs=0.9 .ics

Redirections

Because some parts of the web site were beginning to be too large to be mirrored by most sites, we have separated them from the main site. Although most links should be converted to use the new locations, you're welcome to add a redirect to another site so no links are broken. This can be done in /etc/apache/srm.conf. For example:

Redirect /Lists-Archives http://lists.debian.org/
Redirect /search http://search.debian.org
Redirect /Packages http://packages.debian.org
Redirect /lintian http://lintian.debian.org