Environments
Environment Matrix
| Environment | URL | Provider | Purpose |
|---|---|---|---|
| Production | www.dezeen.com | Jelastic Enscale | Live public website |
| Admin | admin.dezeen.com | Jelastic Enscale (dedicated) | WordPress admin panel |
| Static | static.dezeen.com | CDN | Media files and static assets |
| Staging | staging.dezeen.com | Jelastic Enscale | Pre-production testing |
| Local (Valet) | dezeen.test | Developer machine | Local development |
| Local (Docker) | localhost:8000 | Docker | Local development |
Production
Infrastructure
| Component | Detail |
|---|---|
| Web servers | 4 Apache 2.4 nodes (WS1–WS4) with Prefork MPM |
| Cache | 2 Varnish servers |
| Database | MySQL 5.7, single instance |
| CDN | Cloudflare (DNS, caching, WAF, DDoS) |
| PHP | 7.4 via Apache mod_php |
IP Addresses (from Varnish config)
| Node | Internal IP |
|---|---|
| WS1 | 10.10.115.38 |
| WS2 | 10.10.116.16 |
| WS3 | 10.10.116.48 |
| WS4 | 10.10.116.70 |
Key Constants (Production)
php
define('ENVIRONMENT', 'production');
define('WP_DEBUG', false);
define('STATIC_ASSETS_DIRECTORY', 'https://static.dezeen.com/d/assets');
define('DZN_TEMPLATE_DIRECTORY', 'https://static.dezeen.com');
define('DISABLE_WP_CRON', true); // Uses system cron
define('AUTOMATIC_UPDATER_DISABLED', true);
define('FORCE_SSL_ADMIN', true); // Likely true in production
define('WP_CACHE', true); // WP RocketStaging
- Database is periodically synced from production
- Same infrastructure provider (Jelastic Enscale)
- Used for pre-deploy QA and plugin/WordPress upgrade testing
- Sync script:
setup/staging/merge-and-sync.sh - DB sync example:
setup/staging/example-db-sync.sh
Local Development
Three options are supported. See local-development.md for detailed setup.
Option A: Laravel Valet
bash
cd _project/_web
valet link dezeen
# Site at https://dezeen.testOption B: MAMP
- Set document root to
_project/_web - Configure virtual host
Option C: Docker
bash
docker-compose up -d
# WordPress: http://localhost:8000
# PHPMyAdmin: http://localhost:8080Docker Environment Variables
| Variable | Value |
|---|---|
WORDPRESS_DB_HOST | db |
WORDPRESS_DB_USER | dezeenuser |
WORDPRESS_DB_PASSWORD | dezeenpass |
WORDPRESS_DB_NAME | dezeendb |
WORDPRESS_TABLE_PREFIX | vetg_ |
WORDPRESS_DEBUG | 1 |
ENVIRONMENT | dev |
Local Constants
php
define('ENVIRONMENT', 'dev');
define('WP_SITEURL', 'https://dezeen.test');
define('WP_HOME', 'https://dezeen.test');
define('DZN_TEMPLATE_DIRECTORY', 'https://dezeen.test');
define('STATIC_ASSETS_DIRECTORY', '/wp-content/themes/2016dezeen/assets');
define('WP_ENVIRONMENT_TYPE', 'local');wp-config.php Constants Reference
| Constant | Purpose | Example Values |
|---|---|---|
ENVIRONMENT | Environment identifier | dev, staging, production |
STATIC_ASSETS_DIRECTORY | Path to compiled theme assets | /wp-content/themes/2016dezeen/assets or https://static.dezeen.com/d/assets |
DZN_TEMPLATE_DIRECTORY | Base URL for template assets | https://dezeen.test or https://static.dezeen.com |
DZN_TEMPLATE_VERSION | Cache-busting version string | 2026-01-22 or %branch% _%count% |
DZN_JS_VERSION | JS version suffix | .20150421b |
DZN_CSS_VERSION | CSS version suffix | .20151117 |
PLATFORM_URL | Laravel platform base URL | https://dezeen-platform.test or https://www.dezeen.com/platform |
AWARDS_URL | Awards API endpoint | https://dezeen-platform.test/awards/api/ |
AWARDS_PAYPAL_ENV | PayPal mode | sandbox or production |
ALGOLIA_APPLICATION_ID | Algolia app ID | I74IC8S56N |
ALGOLIA_SEARCH_API_KEY | Algolia search key (public) | ddce375e11077072b261fffde5c2f23c |
ALGOLIA_API_KEY | Algolia admin key | (read-only key in dev) |
ALGOLIA_INDEX_NAME_PREFIX | Algolia index prefix | vetg_live (prod) or vetg_sample (dev) |
CAMPAIGN_MONITOR_API_KEY | CM API key | 776e8974409afaba1cb71bd355688813 |
CAMPAIGN_MONITOR_CLIENT_ID | CM client ID | 00754e228b534c38bb93597a8fb37ccb |
CAMPAIGN_MONITOR_LIST | Default CM list ID | d24aa47810d563872be2928382fe1bf4 |
WP_REDIS_HOST | Redis server | 127.0.0.1 |
WP_REDIS_PORT | Redis port | 6379 |
WP_REDIS_PREFIX | Redis key prefix | dezeen_acf_ |
JWT_AUTH_SECRET_KEY | JWT signing key | (change from default) |
DISABLE_WP_CRON | Disable WP pseudo-cron | true (uses system crontab) |
ACF_CACHE | ACF object caching | true |
Backup Schedule
| Component | Frequency | Retention | Method |
|---|---|---|---|
| Server | Hourly | 14 days | Server snapshots |
| Database | Daily | 30 days | MySQL dump |
| Files/Media | Daily | 30 days | rsync |
| Configuration | On change | Indefinite | Git |
Unknowns / Needs Verification
- Exact Jelastic Enscale node specs (CPU, RAM, disk)
- Production Redis status (configured but may not be active)
- System crontab entries on production (WP_CRON is disabled)
- Monitoring/alerting setup (no config found in repo)
- SSL certificate management (Cloudflare or Jelastic?)