Reverse engineered prompt

Build me a WordPress plugin that lets me run my own private update server for software I distribute myself. I want to be able to manage plugin and theme updates that are not on wordpress.org, and also support generic packages outside WordPress through a simple API.

In the admin area, give me clear screens to upload package files, see version, type, size, modified date, download or delete packages, and bulk manage them. I also want to connect repositories like GitHub, GitLab, Bitbucket, and self hosted GitLab so the server can pull updates automatically from a chosen branch, either on a schedule or from webhook calls. It should support storing package files locally or with an S3 compatible storage service.

Please include license management so updates can be restricted to valid license keys, with activation, deactivation, expiration, email binding, and basic domain checking. I also want API endpoints to manage packages and licenses, plus secure signed download links and outgoing webhooks for important events.

Please make it work cleanly on modern PHP 8 and follow the existing README and docs if you need more detail.

Want more depth? Deep Reverse