Week 1 infrastructure: Docker environments, deploy pipeline, bookstore-core scaffold

Docker Compose environments for dev/staging/production (MariaDB, Redis,
Caddy, Action Scheduler cron sidecar), an idempotent deploy script,
git-hook-based deploy pipeline, backup/restore scripts, and the
bookstore-core plugin stub with WooCommerce HPOS compatibility declared.

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-27 09:50:18 -04:00
co-authored by Claude Sonnet 5
commit c9d637c907
23 changed files with 757 additions and 0 deletions
+10
View File
@@ -0,0 +1,10 @@
:80 {
root * /var/www/html
request_body {
max_size 32MB
}
php_fastcgi wordpress:9000
file_server
}
+22
View File
@@ -0,0 +1,22 @@
{$SITE_DOMAIN} {
encode gzip
root * /var/www/html
@no_cache path /cart* /checkout* /my-account* /wp-admin* /wp-login.php
header @no_cache Cache-Control "no-store, no-cache, must-revalidate"
request_body {
max_size 32MB
}
php_fastcgi wordpress:9000
file_server
log {
output file /data/access.log {
roll_size 50MiB
roll_keep 10
}
}
}
+22
View File
@@ -0,0 +1,22 @@
{$SITE_DOMAIN} {
encode gzip
# Launch gate: "No staging URLs are publicly indexed." Belt-and-suspenders
# with wp_option blog_public=0, which deploy.sh sets on staging.
basic_auth {
{$STAGING_BASIC_AUTH_USER} {$STAGING_BASIC_AUTH_HASH}
}
header X-Robots-Tag "noindex, nofollow, noarchive"
root * /var/www/html
@no_cache path /cart* /checkout* /my-account* /wp-admin* /wp-login.php
header @no_cache Cache-Control "no-store, no-cache, must-revalidate"
request_body {
max_size 32MB
}
php_fastcgi wordpress:9000
file_server
}