- Docs
- Getting Started
- 5-Minute Setup
5-Minute Setup
This is the condensed path from zero to distributing your plugin through Troy. For a full walkthrough, see the Troy Server docs.
There are only a few essential steps to get your plugin updates working with Troy—everything else is optional complexity:
- Troy header tells Troy Client where to look.
- Troy Server hosts your repository.
- Block editor manages your releases.
- Packages bundle everything for easy distribution.
Add a Troy Header
In your main plugin file, add the Troy header:
/**
* Plugin Name: My Plugin
* Version: 1.3.0
* Troy: repo.example.org
*/
That's the only 'code' change your plugin needs. Once Troy Client sees that header, it pulls updates from your server.
Install Troy Server
Upload via Plugins → Add New → Upload Plugin, then activate. Everything you need gets installed automatically.
Create a Plugin Page on Troy Server
- WP Admin → Repo Plugins → Add New Plugin.
- Set the slug (this becomes your plugin folder name).
- Upload your ZIP manually, or connect GitHub/WordPress.org via Integrations.
- Publish the plugin page.
Don't share the ZIP directly:
If you send users a ZIP file, they might not have Troy Client installed—and they won't get future updates. Instead, create a Package on Troy Server (next step) and share that link.
Distribute via Package
Create a Package on Troy Server:
- WP Admin → Repo Packages → Add New Package.
- Add your plugins to the package with a single click.
- Publish the package page.
Now share your Package download link. When users install the Package:
- Troy Client gets installed.
- Your selected plugins get installed.
- Future updates just work.
The Package is tiny (~9KB) regardless of how big your plugins are. The actual plugin downloads happen on the user's server network—not through spotty WiFi of their neighborhood café.
Optional: Dependencies
If your plugin requires another Troy plugin:
/**
* Troy: repo.example.org
* Troy Dependencies: required-plugin
*/
Troy Client will automatically install missing dependencies. See Troy Dependencies.
Bundle your dependencies in a Package instead — it's simpler for users.
Optional: Embed Troy Client
If you can't only rely on Packages—for example, when retrofitting Troy onto an already-distributed plugin—you can bundle code that installs Troy Client automatically. See Troy Embed for a code snippet that installs Troy Client in the background.
Be sure to let your users know that Troy Client will be installed. Be transparent about it.
