This repository has been archived on 2024-04-24. You can view files and clone it, but cannot push or open issues or pull requests.

2.2 KiB


A template for a Wordpress site using Bedrock (Composer) + Docker.

Based on autonomic-cooperative/wordpress-docker-composer and autonomic-cooperative/wordpress-nginx-docker.

Quick start

  1. Install Docker, docker-compose, and git
  2. Create a new repository in Gitea, using this repository as a template
  3. Clone the new repository
  4. Copy .env.sample to .env
  5. Copy src/.env.example to src/.env
  6. Run docker-compose up

You should now be able to access the local site on http://localhost



Set WP_ENV=development in src/.env to enable debugging output and the debug log, and enable plugin and theme installation via the dashboard.

The debug log is located:

  • outside containers: ./src/web/app/debug.log
  • inside containers: /app/web/app/debug.log

Importing a database dump

Assuming you have dump.sql.gz in the current directory:

zcat dump.sql.gz | docker-compose exec -T db mysql -u wordpress -pwordpress wordpress

Post-restore steps:

  • If the upload path was set in the database, you will need to change it (in Settings → Media) to /app/web/app/uploads
  • If the site you're loading used a non-standard database table prefix (i.e. not wp), you'll need to specify it as DB_PREFIX in src/.env.


Initial set-up

Our recommended production deployment set-up is:

  • Web server: Nginx (ease of configuration vs. Apache, nobody seems to be using other web servers for Wordpress)
  • PHP: PHP-FPM (better performance and security than mod_php)
  • Database: MariaDB (flipped a coin between that and MySQL..)
  • Auto-deployment: Drone (Autonomic standard)
  • Updates: renovate-bot (Autonomic standard)
  • Orchestration: Docker "swarm mode" / Co-op Cloud (Autonomic standard, also standardises backups and SSL, and makes it easier to migrate between servers)
  • Host operating system: Debian (but others should work too)
  • Server provisioning: Our autonomic-cooperative/infrastructure Ansible playbooks