Requirements

What the Manager, the CLI server and your managed sites each need before you start.

CaptainCore Manager

The plugin’s manifest.json declares the versions the self-updater reports to WordPress.

Field Value
requires 6.0
tested 7.0
requires_php 7.4

A standard WordPress install with MySQL or MariaDB is enough to activate the plugin. The Manager creates its own tables rather than using custom post types.

Composer dependencies ship inside the release zip (vendor/ is included by bin/build-zip.sh), so you do not need Composer to install it. The declared requirements in composer.json are kriswallsmith/buzz, badcow/dns, spomky-labs/otphp and geoip2/geoip2.

Billing features run on WooCommerce. If you are not using them, you do not need it.

WP-CLI on the Manager host is not strictly required, but the wp captaincore commands are how scheduled fleet work is run, so in practice you want it.

CaptainCore CLI server

The CLI is a compiled Go binary plus a repository of bash scripts. Both are needed: the binary shells out to ~/.captaincore/app/ for some commands and to ~/.captaincore/lib/remote-scripts/ for work done over SSH.

Operating system. install.sh detects Linux and Darwin only, on x86_64, arm64 or armv7. Anything else exits with “Unsupported platform”. Release builds are produced by GoReleaser for linux and darwin on amd64, arm and arm64 with CGO_ENABLED=0.

Runtime dependencies. captaincore connect checks for three binaries on PATH and warns if any are missing:

Binary Purpose
rclone cloud storage sync
restic encrypted backups
git quicksave version tracking

Building from source. go.mod declares go 1.25.0, so you need Go 1.25 or newer to build. You do not need Go if you install a released binary.

Storage. The CLI keeps a SQLite database at ~/.captaincore/data/captaincore.db. It holds plaintext SSH, database and offload credentials, so the CLI chmods it to 0600 on open. Give the CLI server the same care you would give a credential store.

Managed sites

Each environment CaptainCore manages needs:

  • SSH or SFTP access. An environment record stores an address, username, password, protocol (sftp or ssh) and port. captaincore ssh and every remote script run over that connection.
  • WP-CLI on the remote host. The fetch-site-data remote script calls wp plugin list, wp theme list, wp core version, wp option get home, wp user list and wp core verify-checksums. Without WP-CLI, syncs return nothing useful.
  • A WordPress install in the connection’s home directory. fetch-site-data exits with WordPress not found if there is no wp-config.php there.

fetch-site-data also installs a CaptainCore helper mu-plugin when it is missing, by piping https://run.captaincore.io/deploy-helper to bash. If your sites cannot reach that URL, that step will fail.

Third-party services

Nothing in this list is needed to install and activate either half. Each one gates a specific feature.

Service Needed for
Backblaze B2 (via rclone and restic) backups, snapshots, archives
Dropbox or another rclone remote log and archive storage, if you configure it
Kinsta, WP Engine, Rocket.net, GridPane hosting provider automation and provisioning
Constellix the DNS editor
Hover.com, Spaceship domain registrar management
Mailgun, Forward Email customer email management
Fathom site analytics in the dashboard
Intercom live chat
Envato marketplace license lookups
WooCommerce plus a payment gateway plans, invoices and renewals
Google Web Risk malware and phishing checks

The provider types the Settings screen offers are the twelve listed in templates/core/settings.js as PROVIDER_TYPES: kinsta, wpengine, rocketdotnet, gridpane, constellix, hoverdotcom, spaceship, mailgun, forwardemail, fathom, intercom and envato.