Administrator Guide

Deployment, operations, and maintenance for the Renewed Renaissance WooCommerce store.

Quick Access

Deployment Overview

Production Deployment

  1. SSH into the production server
  2. Pull the latest code
  3. Decrypt secrets and rebuild
  4. Restart services
cd /path/to/renewed-renaissance-woocommerce/deploy/03_prod
git pull origin main
make env.tmp && make promote
docker compose build wordpress
docker compose up -d

Staging Deployment

cd deploy/02_stage
docker compose build wordpress
docker compose up -d

Secrets Management

Production secrets are encrypted with SOPS/age:

# Encrypt secrets
make env.enc

# Decrypt secrets
make env.tmp && make promote

Daily Operations

Health Check

# Check all containers are running
docker compose ps

# Should show: cloudflared, wordpress, db, redis, maildev as "Up (healthy)"

View Logs

# All services
docker compose logs --tail=100

# Specific service
docker compose logs wordpress --tail=200
docker compose logs db --tail=200
docker compose logs cloudflared --tail=200

WordPress CLI

# Check WordPress status
docker compose exec wordpress wp --info

# List plugins
docker compose exec wordpress wp plugin list

# Update plugins
docker compose exec wordpress wp plugin update --all

# Clear cache
docker compose exec wordpress wp cache flush

Monitoring

Site Health

Check WordPress Site Health at /wp-admin/site-health.php for:

Performance Targets

MetricTarget
Monthly uptime≥ 99.9%
Cached page load< 500 ms
Dynamic page load< 2 seconds
Checkout flow< 3 seconds

Backup & Recovery

Backup Strategy

MetricTarget
RPO (data loss tolerance)≤ 24 hours
RTO (recovery time)≤ 1 hour

Manual Database Backup

docker compose exec db mysqldump -u root -p wordpress > backup-$(date +%Y%m%d).sql

Recovery Procedure

  1. Clone the repo
  2. Restore .env from .env.enc
  3. Start services
  4. Restore database from backup
  5. Verify site health
git clone https://bitbucket.org/wilsonify/renewed-renaissance-woocommerce.git
cd renewed-renaissance-woocommerce/deploy/03_prod
make env.tmp && make promote
docker compose up -d
docker compose exec -T db mysql -u root -p wordpress < backup.sql

Runbooks

Detailed guides for common issues:

Security

Requirements

Access Control

Cloudflare Tunnel

Production uses Cloudflare Tunnel (cloudflared) to expose the origin without opening firewall ports.

Tunnel Status

docker compose logs cloudflared --tail=50

Common Issues

IssueSolution
Tunnel disconnected docker compose restart cloudflared
IP address changed Add alias: sudo ip addr add 192.168.1.129/24 dev eth0
Token expired Generate new token in Cloudflare dashboard, update .env

WooCommerce Admin

Order Management

Access orders at /wp-admin/edit.php?post_type=shop_order

Product Management

Manage products at /wp-admin/edit.php?post_type=product

Reports

View analytics at /wp-admin/admin.php?page=wc-admin

Matomo Analytics

Matomo requires DBIP-City.mmdb for geolocation (>100MB, not in repo):

  1. Download from Bitbucket Downloads
  2. Place in wordpress/wp-content/uploads/matomo/