Difference between revisions of "Mirrors"

From VideoLAN Wiki
Jump to navigation Jump to search
m (Fix email)
 
(10 intermediate revisions by 2 users not shown)
Line 1: Line 1:
 +
{{see also|MirrorManagement}}
 +
 
= Mirrors =
 
= Mirrors =
  
Our mirrors are kindly operated by sponsors, you can find the complete list [http://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.
+
Our mirrors are kindly operated by sponsors, you can find the complete list [https://www.videolan.org/videolan/mirrors.html here]. If you would like to provide a mirror to the VideoLAN project please read the following sections.
  
 
== Requirements ==
 
== Requirements ==
  
* A public mirror available in HTTP
+
* A public mirror in '''HTTPS''' (we won't accept new mirrors in HTTP)
* About 30 GB of disk space at this time
+
* About 90 GB of disk space at this time
 
* At least 1 Gbps connectivity
 
* At least 1 Gbps connectivity
* At least 4 rsync per day (more is better!)
+
* At '''least''' 4 rsync per day (once every hour is better!)
* Either rsync or FTP access to scan the actual state of the mirror
+
* Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)
  
 
== Setting up a mirror ==
 
== Setting up a mirror ==
Line 17: Line 19:
  
 
Edit your crontab (crontab -e) to sync the cron every hour:<br />
 
Edit your crontab (crontab -e) to sync the cron every hour:<br />
'''31 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp ''/path/to/repository/destination'''''
+
'''11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp ''/path/to/repository/destination'''''
  
 
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].
 
Setup a web server to serve the repository preferably with [http://wiki.nginx.org/ nginx] or [http://httpd.apache.org/ Apache].
Line 29: Line 31:
 
     gid = nogroup
 
     gid = nogroup
 
     read only = yes</nowiki>
 
     read only = yes</nowiki>
 +
 +
Finally make sure the rsync server daemon is started during system startup!
  
 
NOTE: if you're using a CDN in front of the repository be sure to clear the cache at least once a day!
 
NOTE: if you're using a CDN in front of the repository be sure to clear the cache at least once a day!
 +
 +
== How do we manage mirrors ==
 +
 +
On the VideoLAN side, in order to provide the best service to our users we're running [https://github.com/etix/mirrorbits Mirrorbits], a mirror management software that will transparently redirect users to the closest mirror.
 +
 +
It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.
  
 
== Contact us ==
 
== Contact us ==

Latest revision as of 16:35, 5 January 2022

Mirrors

Our mirrors are kindly operated by sponsors, you can find the complete list here. If you would like to provide a mirror to the VideoLAN project please read the following sections.

Requirements

  • A public mirror in HTTPS (we won't accept new mirrors in HTTP)
  • About 90 GB of disk space at this time
  • At least 1 Gbps connectivity
  • At least 4 rsync per day (once every hour is better!)
  • Either an rsync or FTP server access to scan the actual state of your mirror (rsync is preferred)

Setting up a mirror

The first step is to clone the rsync repository using the following command:
rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp /path/to/repository/destination

Edit your crontab (crontab -e) to sync the cron every hour:
11 * * * * sleep $(($RANDOM/1024)); rsync --verbose --recursive --times --links --hard-links --perms --stats --delete-after --timeout=300 rsync://rsync.videolan.org/videolan-ftp /path/to/repository/destination

Setup a web server to serve the repository preferably with nginx or Apache.

Finally setup a read-only rsync daemon using a similar configuration:

[videolan]
    path = /path/to/repository/destination
    comment = VideoLAN repository
    uid = nobody
    gid = nogroup
    read only = yes

Finally make sure the rsync server daemon is started during system startup!

NOTE: if you're using a CDN in front of the repository be sure to clear the cache at least once a day!

How do we manage mirrors

On the VideoLAN side, in order to provide the best service to our users we're running Mirrorbits, a mirror management software that will transparently redirect users to the closest mirror.

It is also in charge of scanning the mirrors, ensuring they are up and running and it knows which files are served by your mirror. The system will automatically scan you mirror (using rsync or FTP) every now and then and do some health checks on the HTTP side every minute. If you have any concern related to a high bandwidth usage please tell us, we will reduce the weight of your mirror.

Contact us

Once your mirror is setup, please contact us and be sure to send:

  • A name and contact email address
  • HTTP, FTP (if applicable) and rsync URLs to the file tree on your server
  • The name, URL and logo of the operator / organization / sponsor you represent (preferably in 137x54)

After reviewing your application your mirror will be added to our load balancer.