If you never used a CDN please do NOT bid!
If you do not understand what is needed please do NOT bid!
You should also understand how DNS works and have experience with Rage4 service.
It saves both of us time.
A basic control panel to control a small CDN is needed.
There wont be any users, only the Admin.
All configuration and settings for pull zones will be saved in the DB and then sent to each Slave server as a config file. Each Pull zone has each own config file that will be replaced when editing that particular zone. When editing global settings all configs should get updated.
Once "Save" button pressed it builds a new nginx configuration for each POP server individually and uploads them. Once uploaded, it makes Nginx on each server to reload the config and apply the new settings.
There should be a way to track hits and bandwidth used on each POP server. This data will then be synced to the CP server each 5 minutes and the usage graphs will be updated. Up to you to figure it out.
The panel should also have a tight integration with Rage4 DNS service. When adding a new server you will have to enter the exact location of the server so that it could be used with Rage4 geo load balancing. All needed settings will automatically be synced with Rage4 when hitting "Apply" button.
So by adding a new server new records are created at Rage4.
When creating/editing new Pull zone all required settings should also be synced with Rage4.
Features:
- Add/remove POP servers
- Manage POP servers
- Usage report per server. (HDD/Bandwidth/CPU/RAM)
- Create Pull zones.
- Purge files
- Configure settings of each Pull zone.
- Bandwidth/Hits reports per server/per pull zone. (Graphs)
- Manage load balancing by integrating Rage4 DNS service via API.
- Simple installation script for CP server and POP servers
If you believe its better to use some other technology than PHP/MySQL then I am ok with it.
If everything goes well I will hire you again to update the CP and add new features.
Also I expect you to fix any bugs you left after I pay you.