# wordpress-bedrock-docker A template for a Wordpress site using Bedrock (Composer) + Docker. Based on [`autonomic-cooperative/wordpress-docker-composer`](https://git.autonomic.zone/autonomic-cooperative/wordpress-docker-composer) and [`autonomic-cooperative/wordpress-nginx-docker`](https://git.autonomic.zone/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` 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](https://git.autonomic.zone/autonomic-cooperative/infrastructure/) ### Auto-deployment