These docs have been generated using AI. Expect inaccuracies until we remove this banner.
- Docs
- Troy Server
- Plugin Management
Adding Plugins to Your Repository
Once Troy Server is installed, adding plugins is straightforward. You have three options:
- Upload a ZIP file Drag and drop, done
- Connect a GitHub repository Automatic releases from tags
- Enter a ZIP URL Troy Server fetches and processes it
Adding Your First Plugin
Create a New Plugin Entry
In your WordPress admin:
- Go to Plugins Add New Plugin (this is Troy Server's interface, not WordPress's)
- Enter your plugin's name
- Fill in the slug (e.g.,
my-awesome-plugin)
Upload the ZIP
Either:
- Drag and drop your plugin ZIP into the upload area
- Enter a URL to a ZIP file (Troy Server will fetch it)
Troy Server automatically extracts:
- Version number
- Description
- Author info
- Requirements
- Changelog (from readme.txt)
Publish
Click Publish. Your plugin is now available at:
https://your-server.com/plugin/get/zip/my-awesome-plugin
Updating Your Plugin Headers
For users to receive updates from your Troy Server, your plugin needs one header:
/**
* Plugin Name: My Awesome Plugin
* Version: 1.2.0
* Troy: your-server.com
*/
When you release version 1.3.0, upload it to Troy Server, and users with Troy Client will see the update in their dashboard.
Multiple Versions
Troy Server keeps track of all versions you upload. This lets you:
- Roll back if needed
- Offer different versions to different users
- Maintain version history
Plugin Status Options
| Status | Behavior |
|---|---|
| Public | Available to everyone with Troy Client |
| Unlisted | Only serves updates to users who already have it |
| Pending | Not yet available |
| Disabled | Blocked from all requests |
Deleting vs Disabling:
If you delete a plugin, its files move to a graveyard directory for potential recovery. If you're unsure, set it to Disabled instead—this blocks access while keeping everything intact. See File Recovery for details.
Connecting GitHub (Recommended)
Instead of manually uploading ZIPs, connect your GitHub repository:
- Go to your plugin's edit screen
- Find the GitHub Integration panel
- Enter your repository (e.g.,
your-username/your-plugin) - Optionally add a Personal Access Token for private repos
- Save
Now when you push a new tag (like v1.3.0), Troy Server can automatically fetch the release ZIP.
See GitHub Integration for details.
Statistics
Troy Server tracks anonymous statistics:
- Download counts per version
- Active installations (estimated via rotating IDs)
- PHP and WordPress version distribution
- Locale distribution
All data is anonymized. No domain names or personal information is collected.
Distributing Your Plugin
Once your plugin is on Troy Server, tell your users:
- Install Troy Client (give them the link or embed it in your plugin)
- Install your plugin (either from your site or include the ZIP)
- Updates will appear automatically
For a smoother experience, consider using Troy Embed to automatically install Troy Client when users install your plugin.
Next Steps
- Connect GitHub for automatic releases
- Read the API docs if you need to integrate programmatically
