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 Use this template
naomi c938e33828 Changed order of vars in case it mattered 2022-04-05 13:29:06 +02: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
README.md Add some deployment documentation 2021-12-17 13:01:19 +02:00
docker-compose.yml Changed order of vars in case it mattered 2022-04-05 13:29:06 +02:00

README.md

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