Template repository for an All-Singing, All-Dancing, Not-Shit Autonomic Wordpress Site (ASADNSA). To use this, create a new repository in Gitea and choose this one as a template.
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.
Go to file
2022-01-26 18:20:30 +01:00
src Update 'src/composer.json' 2022-01-26 18:20:30 +01:00
.drone.yml Add example Drone config 2021-12-17 12:25:11 +02:00
.env.sample Add .env.sample 2021-12-03 14:28:27 +02:00
.gitignore added to README, and added et-cache and wflogs to gitignore 2021-12-16 14:46:36 +00:00
docker-compose.yml Update 'docker-compose.yml' 2022-01-26 17:43:12 +01:00
README.md Add some deployment documentation 2021-12-17 13:01:19 +02:00

wordpress-bedrock-docker

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 src/.env.example to src/.env
  5. Run docker-compose up

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

Development

Debugging

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.

Deployment

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

Auto-deployment