diff --git a/README.md b/README.md index e18f586..598bb25 100644 --- a/README.md +++ b/README.md @@ -2,24 +2,61 @@ 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) - -NB. -* If you import a database from a live site, you will have to change the upload path (in Settings->Media) to `/app/web/app/uploads` -* Debug log is here: `./src/web/app/debug.log` - +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. Create a new repository in Gitea, using this repository as a template -2. Clone the new repository -3. Copy `src/.env.example` to `src/.env` -4. Run `docker-compose up` +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](https://git.autonomic.zone/autonomic-cooperative/infrastructure/) + ### Auto-deployment