WordPress
The CMS that runs half the web - official image, self-hosted MySQL, full plugin freedom, no visit caps.
One-click deploy, from $13/mo on a Miget plan.
WordPress needs no introduction - it needs decent hosting. The hosted offerings gate the interesting parts: WordPress.com only allows plugins from its $25/month Business tier, WP Engine meters visits. Self-hosted WordPress is just WordPress: every plugin, every theme, your files.
This template runs the official image behind a thin nginx proxy (the Apache variant listens on :80, the platform publishes :5000) with the X-Forwarded-Proto handling already wired, so https behind the platform’s TLS ingress works without the classic redirect loop. The MySQL container is deployed and connected automatically.
The entire install - core, plugins, themes, uploads - lives on a persistent volume, so updates from the admin UI behave exactly as on any classic host. Run the 5-minute installer and you have the web’s default CMS on infrastructure you control.
Upstream project: WordPress
#what you get
- Official WordPress image - the standard, not a fork
- Full plugin and theme freedom from day one
- Self-hosted MySQL auto-deployed and auto-wired
- X-Forwarded-Proto handled: https works without redirect loops
- Whole install on a persistent volume - admin-UI updates persist
- No visit caps or tier gates
#topology
| Service | Role | Public |
|---|---|---|
| wordpress | WordPress + Apache (:80) | no |
| web | nginx :5000 -> wordpress:80 | yes |
| db | MySQL 8 container (local and on Miget) | no |
#miget sizing
// this stack needs
2 GiB RAM · 15 GB disk · 3 services
1 GiB for WordPress suits typical sites with a normal plugin load; heavy page builders and WooCommerce want the next plan up. The 10 GB volume holds the install and uploads.
Hobby - recommended fit
$13/mo
1 vCPU · 2 GiB · 50 GiB disk
Headroom for your own apps: 2 GiB at $19/mo
Professional - production
$43/mo
2 vCPU · 4 GiB · 25 GiB disk
Dedicated resources, production SLOs - plan details
One Miget plan is a fixed pool of compute - the whole stack (managed databases included) deploys inside it, and anything left over runs your other apps. No per-service or per-seat math.
#vs. the managed service
What the hosted equivalents charge, against the flat Miget plan this stack fits on. Prices as of June 2026, sources linked.
| Service | Plan | Monthly | What you get |
|---|---|---|---|
| WordPress on Miget ★ | 2 GiB plan | $13 | this whole stack, flat - no usage meters, and room left for your own apps |
| WordPress.com | Business | ~$25 | billed annually ($40 monthly) - the cheapest tier that allows plugin installs |
| WP Engine | Startup | ~$30 | 1 site, 25k visits/mo, 10 GB storage |
Self-hosted WordPress has no visit caps, full plugin freedom, and the managed MySQL handles the part that usually hurts.
#vs. other PaaS
Estimated monthly cost of running this exact stack (2 GiB RAM, 15 GB disk, 3 containers) elsewhere, from published June 2026 rates.
| Platform | Est. monthly | Notes |
|---|---|---|
| Miget ★ | $13 flat | compose stacks first-class: one deploy, dedicated vCPU, managed Postgres/Valkey, volumes and TLS all included in the plan |
| Heroku | ~$100 | no volumes; nothing between 1 GB ($50) and 2.5 GB ($250) dynos - 2 GB containers cost far more than shown |
| Render | ~$29 | per-service instances (0.5 GB $7, 2 GB $25) - every container is its own paid service |
| DO App Platform | ~$29 | no persistent volumes - stateful containers need managed DBs/Spaces (base $5 Spaces included here) |
| Railway | ~$22 | usage-based ($10/GB RAM-mo); vCPU billed separately at $20/vCPU-mo on top |
| Fly.io | ~$14 | cheapest sticker price - but burstable shared CPUs (1/16 core; dedicated vCPUs cost ~2-3×), no compose deploys (one app per container, manual wiring), managed DBs billed extra |
Estimates assume RAM fully allocated at published on-demand rates - and sticker price isn't the whole comparison: the cheaper rows buy burstable shared CPUs, per-service wiring instead of a compose deploy, and managed databases billed separately. Heroku and DO App Platform have no persistent volumes at all - stateful stacks like this one need workarounds there.
#deploy it
On Miget
- Create a Compose Stack in app.miget.com pointing at the templates repository
- Set the stack path to
wordpress - No required variables - deploy as-is
- Deploy. Miget layers
compose.miget.yaml(RAM, privacy, volumes, managed services) automatically
Locally first?
Every template is portable, vanilla Docker Compose - the Miget overrides are ignored locally:
git clone https://github.com/deployable-sh/stacks
cd miget-compose-templates/wordpress
docker compose up -d Same files, same behavior. The template README covers connection strings and scaling notes.
#faq
How does this compare to WordPress.com or WP Engine?
WordPress.com only allows plugin installs from the Business tier ($25/month annual, $40 monthly); WP Engine starts at $30/month with a 25k visit cap. This stack is $25/month with no caps and root-level freedom - with the MySQL database bundled into the stack, nothing extra to wire up.
Do plugin and core updates work from the admin UI?
Yes - the whole install lives on the persistent volume, so one-click updates, plugin installs, and media uploads behave exactly like classic hosting and survive redeploys.
Can I run WooCommerce on it?
Yes - it is a plugin like any other. Give the stack the next plan up (WooCommerce is heavier on PHP workers and MySQL) and configure a persistent object cache if traffic grows.
Why is there an nginx proxy in front?
The official Apache image listens on port 80 with no env to change it, and the platform publishes port 5000. The 128 MiB proxy bridges that and forwards the proto headers WordPress needs behind TLS.
Ship WordPress today
One compose stack, 2 GiB of RAM, from $13/month flat, and it runs on your laptop with the same files.