I recently wrote an article about updates and how I would handle those for my free plugins, given that some of them have a fair number of users. I knew now was the time to make this decision, and I wanted something off WordPress for the free plugins.
Why off WordPress?
This is easy; serving updates and delivering them is pretty simple. I’ve been doing it for ages using freely available repos on GitHub, which are expandable and customisable. Using the wp-update-server and wp-update-checker, I use a custom config with the update server to allow me to do more, and for this project and a couple of others, I have added additional modifications to my config. My base configuration here allows for some enhancements and improvements that fit my flow well and my normal usage, although this will require more customisation, which I will cover later.
The reason for “off” WordPress is simply that it’s not needed for these updates. Simple PHP and flat cache files can deliver 1000s of updates an hour on pretty basic hardware; we don’t need the additional WordPress overhead on this occasion. it’s definitely worth considering if you are selling and issuing licenses, as the ease of hooking into WordPress makes this overhead a worthwhile sacrifice
Additional Modifications:
I have added secure download links with tokenised expiration ie they only last for 12 hours and two download and a basic API check which means you can’t use one of my Free plugins to explore what the sever has each plugin is only licenced for its own updates and the API key will only serve that plugins updates this was surprisingly easy to do if I can find an easy way to “generate licence keys and manage installations” this would be really robust and something I will explorer as time progresses for now SureCart & Hoster remain how I will be selling plugins, with licence keys.
Rollout
About 50% of my free plugins have now been rolled over to this setup with zero issues thanks to setting an intermediate url and extensive testing this allowed me to make sure they worked flawlessly without risking sending a bad update how did that work?
Reallyusefulplugins.com —–> updates.reallyusefulpluings.com —–> updater.reallyusefulplugins.com
So all the plugins calling home to the main site for updates when they received there next updates contained code to look for future updates at updates.reallyusefulplugins.com this allowed me the time to test and progress direct updates from updates to updater, and make sure they worked fine, when I was ready all the plugins then contained code to tell it to look at updater where they would stay updating from the new system.
The Final Push
A day or so ago I pushed the last 50% of plugins and all seems well with the world not a single complaint or issue so far, my intention is to leave the man in the middle site up for a futher two weeks and then everyone should be on the new server and I can pull it down.