These docs have been generated using AI. Expect inaccuracies until we remove this banner.
- Docs
- Troy Server
- Installation
Install Troy Server
Troy Server transforms a WordPress site into your personal plugin repository. Here's how to set it up.
Requirements
| Requirement | Version |
|---|---|
| WordPress | 6.8+ |
| PHP | 8.4+ |
| MySQL | 8.0.19+ |
| HTTPS | Required |
Use a Dedicated WordPress Install:
Troy Server works best on its own WordPress installation—even a simple $5/month VPS will do. Don't install it on your main website.
No Caching or Translation Plugins:
Do not install caching plugins (WP Super Cache, W3TC, LiteSpeed, etc.) or translation plugins on your Troy Server. They interfere with REST API responses and cause update failures for your users.
Quick Install
Download the Package
Get the Troy Server installer package (includes Troy Client):
Upload to WordPress
In your WordPress admin:
- Go to Plugins → Add New
- Click Upload Plugin
- Choose the ZIP file
- Click Install Now
Activate
Click Activate Plugin.
The installer will:
- Set up Troy Client
- Set up Troy Server
- Deactivate itself when done
Configure
Go to Settings → Troy Server and configure your repository:
- Set your repository name
- Configure statistics preferences
- Review API settings
After Installation
Once installed, your Troy Server is live at your WordPress URL. The API endpoints are automatically available:
https://your-site.com/ping— Health checkhttps://your-site.com/plugin/get/updates— Update APIhttps://your-site.com/plugin/get/info— Plugin infohttps://your-site.com/plugin/get/zip/{slug}— Download endpoint
Test it: Visit https://your-site.com/ping in your browser. You should see a response.
Hosting Recommendations
Good choices:
- Any VPS (DigitalOcean, Linode, Vultr—even the cheapest tier)
- Cloud hosting with PHP 8.4+ (AWS, Azure)
- Managed WordPress hosts that support PHP 8.4
Not ideal:
- Shared hosting (often lacks PHP 8.4)
- Hosts without HTTPS support
- Hosts with aggressive resource limits
HTTPS is Required
Troy Server only serves updates over HTTPS. Troy Client refuses non-HTTPS connections. This is intentional—security isn't optional.
If you're using a VPS, Let's Encrypt provides free SSL certificates.
Set Up Real Cron
WP-Cron only runs when someone visits your site. For a reliable update server, use a real cron job:
1. Disable WP-Cron in wp-config.php:
define( 'DISABLE_WP_CRON', true );
2. Add a system cron job (runs every minute):
* * * * * curl -s https://your-troy-server.com/wp-cron.php?doing_wp_cron > /dev/null 2>&1
See Troubleshooting for more details.
Next Steps
Your server is ready. Now add your first plugin.
