WordPress Self-Hosted

BeginnerWebsite

Self-hosted WordPress with Docker: the world's CMS on your own infrastructure.

Published 27 September 2026

Core Tools
Docker
Docker
WordPress
WordPress
Database
MariaDB
MySQL
Hosting
Hetzner
Hostinger
DigitalOcean
Raspberry Pi
Reverse Proxy
NGINX
Caddy
Traefik
Self-Hosted PaaS
Coolify
Dokploy

About WordPress Self-Hosted

WordPress Self-Hosted runs WordPress and MariaDB as Docker containers on your own server: the same WordPress core managed hosts run, the same block editor, and the same plugin and theme ecosystem, with your content in your database and your uploads on your disk. The official image bundles PHP with Apache, so the container is the application server and nothing else is needed beside the database.

Managed WordPress hosts, WP Engine and Kinsta among them, charge per site and meter visits, storage, and sometimes plugins. Self-hosting on a VPS replaces all of that with a fixed server bill: as many sites as the server fits, any plugin, any theme, and WP-CLI plus the built-in updater under your control. One server carrying several sites is normal, and it's exactly what per-site hosts charge for.

The trade is everything that comes with running PHP on the open internet. TLS, backups, and update hygiene are yours, and WordPress's popularity makes it the most-targeted CMS on the web: updates stay on a schedule, the reverse proxy handles certificates, and a staging copy before big changes is worth the hour it takes.

For teams that want the same software with the operations removed, WordPress.com and the managed hosts exist. The point of this stack is that the same flexibility is one small VPS away, at 2 GB of memory for a few modest sites.

Key Features

  • ✓Official WordPress Docker image with MariaDB behind it
  • ✓The full plugin and theme ecosystem: 60,000-plus plugins with no vendor gating
  • ✓Several sites on one server at a fixed cost
  • ✓WP-CLI for updates, backups, and migrations from the terminal
  • ✓The same block editor experience as WordPress.com

When to Use WordPress Self-Hosted

  • →Agencies and freelancers hosting several client sites on one server
  • →Blogs and business sites that outgrew shared hosting
  • →WooCommerce stores that need plugin freedom and predictable costs
  • →Sites that depend on plugins or custom code a managed host restricts
  • →Developers learning WordPress operations on a cheap VPS

Pros

  • No per-site or per-visit pricing: the server bill is the whole bill
  • Any plugin, any theme, and custom code, with no host-level restrictions
  • Every WordPress tutorial on the internet applies to your setup

Cons

  • Update hygiene is a security obligation, not an option
  • Backups, TLS, and staging are yours to build
  • A compromise on one plugin can be a compromise on the server

Database Options for WordPress Self-Hosted

MariaDB

WordPress Self-Hosted with MariaDB

The WordPress community's standard database and the default in the official Docker Compose examples: fully supported and community-maintained. It holds posts, users, settings, and plugin data, while uploads stay on disk, so a backup needs both.

MySQL

WordPress Self-Hosted with MySQL

The other first-class WordPress database. Pick it where your tooling or hosting standard already assumes MySQL; WordPress treats the two interchangeably, and a dump from one restores into the other for a typical site.

These are highlighted picks. To see all the tools, check the Databases category.

Hosting Options for WordPress Self-Hosted

Hetzner

Deploy WordPress Self-Hosted on Hetzner

The default: a flat-rate root VPS whose entry instance has 4 GB of memory for around €4-5/mo, double what a few modest WordPress sites need, so a handful of sites share it. The fixed bill replaces every per-site managed price; backups and updates are yours.

Hostinger

Deploy WordPress Self-Hosted on Hostinger

Hostinger's VPS line (not its shared WordPress plans) gives a root server from about $6.50/mo with 4 GB of memory and a beginner-friendly panel, a bridge between managed hosting and full self-hosting. Promotional prices assume a two-year term, with higher renewals.

DigitalOcean

Deploy WordPress Self-Hosted on DigitalOcean

DigitalOcean's WordPress 1-Click starts the stack pre-assembled, the quickest first deploy. The 2 GB Droplet (about $12/mo) fits a few modest sites, snapshots cover whole-server backups, and Spaces can offload the media library through a plugin.

Raspberry Pi

Deploy WordPress Self-Hosted on Raspberry Pi

A hobbyist target: the official WordPress image has ARM64 builds and runs fine for a home or lab site with no monthly bill. A home connection and SD-card storage make it the free tier of self-hosting rather than a production plan; pair it with a tunnel instead of opening ports.

These are highlighted picks. To see all the tools, check the Hosting & Cloud category.

Reverse Proxy Options for WordPress Self-Hosted

NGINX

WordPress Self-Hosted with NGINX

The classic WordPress front, with fast static-file serving that every caching-plugin guide assumes. In front of the official Apache image it proxies with X-Forwarded-Proto set; WordPress then needs its HTTPS detection added in wp-config.php, or logins loop between HTTP and HTTPS.

Caddy

WordPress Self-Hosted with Caddy

Automatic certificates from a small config, the least upkeep for a few sites. Caddy sends X-Forwarded-Proto by default, and WordPress still needs to trust it: set HTTPS from that header in wp-config.php, or admin logins redirect in a loop.

Traefik

WordPress Self-Hosted with Traefik

Routes each site's container by Docker label and renews certificates automatically, which suits several WordPress sites on one server. The same wp-config.php line that reads X-Forwarded-Proto applies, and PHP's upload limit, not Traefik, is what blocks large media.

Self-Hosted PaaS Options for WordPress Self-Hosted

Coolify

WordPress Self-Hosted with Coolify

Free and self-hosted, with a one-click WordPress template that ships the CMS with its database and HTTPS through Coolify's bundled Traefik, the fastest credible start short of a marketplace Droplet. Check that wp-config.php trusts X-Forwarded-Proto behind its proxy, or logins redirect in a loop.

Dokploy

WordPress Self-Hosted with Dokploy

Free and self-hosted, with a WordPress template of CMS, database, and proxy from its catalog. Its scheduled backups cover the database; add the wp-content volume, where uploads, themes, and plugins live, or a restore brings back posts without their images.

WordPress Self-Hosted Add-ons

Each addition below extends this stack with a capability the base stack works fine without. None are required: include the ones your product actually needs when building this stack, and skip the rest.

Tunnel Add-ons

Add a tunnel when you're self-hosting without a static IP or can't open inbound ports — a home server, a VPS behind restrictive network policies, or anywhere a reverse proxy alone can't reach the internet.

Cloudflare Tunnel

WordPress Self-Hosted with Cloudflare Tunnel

Keeps a home or lab WordPress reachable without opening ports or paying for a static IP: outbound-only, with Cloudflare's edge in front.

ngrok

WordPress Self-Hosted with ngrok

A quick temporary tunnel for staging a site before DNS moves. Not the permanent home for production traffic.

Frequently Asked Questions about WordPress Self-Hosted

Why self-host WordPress instead of using WordPress.com?

Price per site and control. WordPress.com's paid plans run $9-70 a month per site billed yearly, and every paid plan now installs plugins, with updates, backups, and security handled for you. This stack runs the same software for the price of one server, however many sites it carries, with root access for custom code, server-level caching, and any PHP setting. The trade is that updates, backups, and security become yours.

What does the server need to run?

2 GB of memory and 1-2 vCPUs carry a few modest-traffic sites with MariaDB on the same server. WordPress itself sets requirements only at the software level (PHP and the database), and its hosting handbook suggests 256 MB per PHP process, so memory scales with concurrent visitors and plugin weight rather than site count. 20 GB of SSD fits several sites; media libraries are what fill it.

Can WooCommerce run on this stack?

Yes. WooCommerce is a plugin, and this server runs plugins without restriction. Size for it: a store with real traffic wants its own instance with 4 GB or more and a tuned MariaDB, plus an object cache such as Redis, rather than a slot on a small shared server.

How many sites can one server carry?

A few, comfortably. Each site adds a set of database tables and a container, and modest-traffic sites share a 2 GB server easily. The honest limits are traffic and plugins per site, not site count; when one site gets busy, give it its own server rather than growing the shared one.

Why won't email send from the server?

Because a fresh VPS has no mail reputation. Mail from an unknown IP lands in spam or is refused, and most providers block outbound port 25 by default. The working pattern is an SMTP plugin with an external mail service: the server runs the site, and someone else delivers its mail.

Scores

Popularity5/5

WordPress powers a large share of the web and is the best-known CMS by a wide margin.

Learning Curve1/5

WordPress is the most familiar CMS there is, and the Docker image plus a database is about as simple as self-hosting gets.

Flexibility5/5

Tens of thousands of plugins and themes, plus custom PHP, cover blogs, stores, memberships, and nearly any site type.

Performance3/5

A small server serves modest sites well; heavy traffic calls for page caching, an object cache, and a tuned database.

Portability4/5

Standard exports and a plain MySQL-family database move sites between any WordPress host, though themes and plugins tie a site to WordPress itself.

Tools in the WordPress Self-Hosted Stack

DevOps & CI/CD

Database (choose one)

Hosting (choose one)

Reverse Proxy or PaaS (choose one)

Reverse Proxy

Self-Hosted PaaS

Add-ons (optional — add any, or none)

Tunnel

WordPress Self-Hosted Pricing

From ~$6/mo Free to start

WordPress, MariaDB, and Docker are free, and the bill is one server that carries several sites, which is what managed WordPress hosts and WordPress.com charge per site for ($9-70 a month on WordPress.com's paid plans). The only paid items are optional: premium themes and plugins, priced by their vendors.

Server (VPS)$6-15/mo

2 GB of RAM runs WordPress, MariaDB, and the proxy for a few modest-traffic sites.

WordPress & MariaDBFree (open source)

GPL-licensed, both of them; most of the plugin ecosystem is free too.

Premium plugins/themes (optional)Varies

Priced per vendor, per site, or per year, and never required to run the stack.

WordPress Self-Hosted System Requirements

CPU
1-2 vCPU
RAM
2 GB, enough for a few modest-traffic sites to share
Disk
20 GB SSD
OS
Any Linux with Docker

No official requirements published — tekyous guidance based on the bundle's services.

Official requirements stay at the software level, where the Hosting Team handbook's memory guidance is per PHP process (256M recommended); the estimate follows agency-reported tiers of 1-2 GB for personal sites and 2-4 GB for business sites. Traffic and plugin weight per site set the real limits.