# Copy this to .env.dev / .env.staging / .env.production and fill in real # values for that environment. The filled-in files are gitignored — never # commit them. Same code everywhere; only these values differ (see # design doc §01, Environments & deployment). # # CAVEAT for DB_PASSWORD, DB_ROOT_PASSWORD, and the API keys below: docker # compose passes these into containers via ${VAR} interpolation, which will # silently mangle a value containing `$` followed by a letter (it tries to # resolve it as another variable and blanks it out if unset). Avoid `$` in # these specific values, or double it ($$) if you must use one. This does # NOT apply to STAGING_BASIC_AUTH_HASH below — that one's wired through # env_file instead specifically so a bcrypt hash's `$` signs are safe. # --- Site --- # (WP_ENVIRONMENT_TYPE is NOT set here — it's hardcoded per environment in # docker-compose.{dev,staging,production}.yml so it can't go stale.) SITE_DOMAIN=staging.example.com SITE_URL=https://staging.example.com SITE_TITLE="Bookstore (staging)" # --- WordPress admin bootstrap (used only on first install) --- WP_ADMIN_USER=admin WP_ADMIN_PASSWORD=changeme WP_ADMIN_EMAIL=admin@example.com # --- Database --- DB_NAME=bookstore DB_USER=bookstore DB_PASSWORD=changeme DB_ROOT_PASSWORD=changeme WP_TABLE_PREFIX=wp_ # --- Staging only: basic-auth wall + noindex --- # Generate the hash with: # docker run --rm caddy:2-alpine caddy hash-password --plaintext 'your-password' STAGING_BASIC_AUTH_USER=staging STAGING_BASIC_AUTH_HASH= # --- Backups (deploy/backup.sh) --- BACKUP_DIR=./backups BACKUP_REMOTE= BACKUP_RETENTION_DAYS=14 # --- Supplier adapters (design doc §04) --- # staging: gutenberg_test production: booksrun,ingram ACTIVE_SUPPLIER_ADAPTERS=gutenberg_test BOOKSRUN_API_KEY= INGRAM_API_KEY= INGRAM_ACCOUNT_ID= # --- Payments (Helcim) --- HELCIM_API_TOKEN= HELCIM_ACCOUNT_ID= # --- Marketing --- MAILERLITE_API_KEY=