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.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
naomi a7f5a2edf2 Added DEV_MODE flag 8 months ago
src Update 'src/composer.json' 10 months ago
.drone.yml Add example Drone config 12 months ago
.env.sample Update '.env.sample' 8 months ago
.gitignore added to README, and added et-cache and wflogs to gitignore 12 months ago
README.md Update 'README.md' 8 months ago
docker-compose.yml Added DEV_MODE flag 8 months ago

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 .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

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