Introduction
- Some open source organizations have become so popular they cannot provide their own bandwidth to distribute their software. They manage to survive by utilizing donated bandwidth from other organizations that are willing to provide mirrors.
- A mirror network can grow surprisingly large, which makes it hard to manage and has inherent security concerns.
- Bouncer provides an admin interface and a set of tools to manage and monitor any mirror network.
NOTE: This documentation needs to be updated as it was taken from the old wiki for bouncer. Use the information here with caution. Better documentation will be updated soon.
Main Features
Bounce Script
The bounce script is a simple PHP script that takes a set of inputs, and redirects the request to a mirror that is known to be available and have the correct file. It does not redirect people to invalid or non-existent files because Sentry keeps tabs on file and mirror status.
When the bounce script is hit, it increments database counts that can give you a quick glimpse at how many times something has been downloaded - in the past this was a favorite feature. It's not the most accurate, but accurate enough to give you a sense of how popular your product is.
Sentry
Bouncer v2
In bouncer v2, it was a multi-threaded Python daemon that queries and tests your mirror network to make sure it is intact. It is responsible for running scheduled tasks (via cron) that can perform a number of tests:
- Check that mirrors respond
- Check that files exist on mirrors
- Check that all files on all mirrors pass their hash code comparison
- Run full tests on new mirrors and files
- Spot checks on one randomly selected file on each mirror
Sentry in bouncer v2 also performed many other important tasks:
- Generating detailed HTML reports to summarize what happened during each test. It can be programmed to write these reports to any directory on your system.
- Emailing a specified email address when a particular even happens.
Mozilla/Bounce v3
Sentry is a perl script that queries and tests your mirror network to make sure it is intact.
- Check that mirrors respond
- Check that file exists on the mirrors
- Check files exist on mirrors and do an md5sum for a specified chunk of the file
Admin Interface
The admin interface lets you create, read, update and delete database contents in the Bouncer database. It lets you also adjust statuses for mirrors or files, and can give you an overview explaining the status of your mirror network.
