Moving an existing site rather than starting a new one? See WordPress Migration, which builds on this stack.
Choose a Plan
WordPress does not publish a universal CPU, RAM, or disk minimum because resource use depends heavily on traffic, caching, themes, plugins, and media. Its official modern software baseline is PHP 8.3 or newer, MariaDB 10.11+ or MySQL 8.0+, and HTTPS.
These are Arct deployment recommendations, not official WordPress hardware requirements. Monitor memory, CPU, database size, and media growth after launch.
Before You Begin
Prepare the following:- A fresh Ubuntu 24.04 server
- A hostname such as
www.example.com - An
Arecord pointing the hostname to the server’s public IPv4 address - Docker Engine with the Docker Compose plugin, installed from Docker’s official Ubuntu repository
- An external SMTP provider if the site must send reliable email
Install WordPress
1
Deploy and Connect
2
Create the Project and Database Secret
3
Create the Compose File
Create The image tags follow supported stable channels while pinning the PHP, MySQL, and Caddy major or minor line. Review compatibility before changing any of them.
/opt/wordpress/compose.yaml:compose.yaml
4
Configure the Domain and HTTPS
Generate a temporary setup password hash. The command prompts without echoing the password:Create Temporary Basic Authentication prevents another visitor from claiming the public WordPress installer. Caddy obtains and renews the TLS certificate automatically after DNS resolves and ports
/opt/wordpress/Caddyfile, replace the example hostname, and replace REPLACE_WITH_HASH with the command output:Caddyfile
80 and 443 are reachable. The official WordPress image recognizes the forwarded HTTPS scheme.5
Start the Stack
sudo docker compose logs -f --tail=100 and press Ctrl+C after the services settle.6
Complete the First Login Securely
Open Confirm a new private-browser session reaches WordPress without the temporary setup prompt.
https://www.example.com and complete the WordPress installer. Use a unique administrator username other than admin, a generated password, and a monitored email address.After signing in:- Install all offered core, theme, and plugin updates.
- Remove unused plugins and themes.
- Keep the built-in file editor disabled through
WORDPRESS_CONFIG_EXTRA. - Enable two-factor authentication with a well-maintained plugin from the official WordPress plugin directory.
- Configure authenticated SMTP and test password-reset email before inviting other users.
basic_auth block from Caddyfile, then validate and reload Caddy:7
Verify the Deployment
Firewall and Port Safety
Allow SSH before enabling UFW:443/udp is optional and enables HTTP/3 through Caddy. Do not publish MySQL port 3306 or the WordPress container’s port 80. Docker-published ports can bypass some UFW forwarding rules; this Compose file intentionally publishes only Caddy’s public ports.
Persistent Data and Secrets
Thewordpress_data volume contains WordPress core files, uploads, themes, and plugins. The db_data volume contains the MySQL database. A recoverable backup requires both at the same point in time.
The database password is stored in /opt/wordpress/secrets/db_password and mounted with Compose secrets. Keep /opt/wordpress, the backup set, and any copied configuration private. Do not add phpMyAdmin or expose the database merely for convenience.
Back Up and Restore
Create a maintenance window and back up both the database and WordPress files. Stopping Caddy prevents new public requests while the snapshot is created:Update and Roll Back Safely
WordPress in the official image is self-managing inside its persistent volume. Apply WordPress core, plugin, and theme updates from the dashboard after creating a full backup. To update the PHP/Apache, MySQL, and Caddy container images within their pinned channels:Troubleshooting
Official Resources
WordPress Requirements
Current PHP, database, web server, and HTTPS requirements.
WordPress Docker Image
Official image tags, Compose example, secrets, and reverse-proxy behavior.
WordPress Documentation
Installation, administration, updates, and troubleshooting guidance.
WordPress Releases
Official release archive and version history.
WordPress Development Repository
Upstream development source, tests, and issue references.
WordPress is a trademark of the WordPress Foundation. Arct Cloud is an independent infrastructure provider and is not affiliated with, sponsored by, or endorsed by the WordPress Foundation or the WordPress project.