2.2 KiB
Runbook
Installation screen remains visible
- Check
docker compose psfor healthy database and WordPress services. - Run
docker compose --profile tools run --rm wp-cli /scripts/bootstrap.sh. - Inspect
docker compose logs wordpress dbwithout printing secret values.
NGINX returns 502
- Run
docker compose psanddocker compose exec proxy nginx -t. - Check the WordPress health status and
docker compose logs proxy wordpress. - Confirm the request host is exactly
azionelab.org; unknown hosts return 404.
Images or theme are missing
- Confirm
WORDPRESS_DATA_PATHis mounted in both WordPress and WP-CLI. - Run
docker compose --profile tools run --rm wp-cli -c 'wp theme status azionelab'. - Verify file ownership before changing permissions; never make the tree world-writable.
A service cannot write to its volume
- Stop the affected service.
- Confirm the relevant
.envpath points to the intended host directory. - Run
./scripts/prepare-host-volumes.sh. - Start the service and inspect logs without printing secret values.
Certificate issuance fails
Verify public DNS, inbound port 80, the operator email, and staging mode. Request a
missing /.well-known/acme-challenge/ path: an NGINX 404 confirms the route is yours.
Avoid repeated production-CA retries while debugging.
When Let's Encrypt is enabled, the proxy intentionally returns 503 for normal application paths until a certificate exists. ACME challenge paths and proxy health paths must still work in that pending state, otherwise Certbot will never start.
Bootstrap writes to the wrong data volume
Do not combine the test override with production bootstrap commands. This command writes to isolated test volumes only:
docker compose -f docker-compose.yml -f docker-compose.test.yml --profile tools run --rm wp-cli /scripts/bootstrap.sh
Use this command for the real host-based WordPress data directory:
docker compose --profile tools run --rm wp-cli /scripts/bootstrap.sh
Rollback
Revert the deployment commit and rebuild while preserving all host data directories. Restore database/files only for a data rollback and only from a verified coordinated backup.