WordPress on Kubernetes
WordPress with Composer, a real .env and a web root that stays out of reach.
larakube wordpress:newlarakube wp:newLaraKube CLI runs WordPress the way Roots Bedrock does: plugins and core managed by Composer, configuration in .env, and a web root that keeps your code out of reach. You get the production image, the Kubernetes manifests and the wiring Bedrock expects.
The WordPress scaffolder is written but has not been run end to end yet. Try it, but don't promise it to a client until this badge turns green.
🚀 Create a project
larakube wordpress:new blog
wp:new is an alias. LaraKube CLI runs composer create-project roots/bedrock inside a container, then asks:
| Choice | Options | With --fast |
|---|---|---|
| PHP version | Supported PHP versions | PHP 8.4 |
| Database | MySQL, MariaDB — the two WordPress supports | MySQL |
| Cache | Redis (recommended), Memcached | Redis |
| Object storage for media | MinIO (recommended), SeaweedFS, Garage | MinIO |
| Search | None, Typesense (with the "Search with Typesense" plugin), Meilisearch (no maintained official plugin) | None |
Search plugins are installed by you; LaraKube CLI provisions the engine.
🧱 What LaraKube CLI sets up
| What | Why |
|---|---|
Web root at web/ | Bedrock serves only web/, so vendor/ and your config are never reachable over HTTP |
WP_HOME, WP_SITEURL, WP_ENV in .env | Bedrock refuses to start without them |
| Salts, generated once per env file | Never regenerated on later runs, so nobody gets logged out; each environment gets its own |
Uploads on a volume at web/app/uploads | Media survives pod restarts and redeploys, and is kept out of the image |
DB_NAME and DB_USER | Mapped from the database values every environment already receives |
Health check at /wp/wp-includes/version.php | Answers without touching the database, so a database blip doesn't restart the pod |
🏘️ Shared services from the Plex Commons
After scaffolding, wordpress:new joins the cluster's Plex Commons for its database, cache and storage. Pass --no-plex to keep your own pods.
💻 Run it locally
cd blog
larakube up
Open the site and WordPress's installer takes it from there.
☁️ Deploy
larakube env production
larakube cloud:deploy production
The production image carries what composer install produced. There's no Node build step, because Bedrock has none.