Skip to content

Environments

Environment Matrix

EnvironmentURLProviderPurpose
Productionwww.dezeen.comJelastic EnscaleLive public website
Adminadmin.dezeen.comJelastic Enscale (dedicated)WordPress admin panel
Staticstatic.dezeen.comCDNMedia files and static assets
Stagingstaging.dezeen.comJelastic EnscalePre-production testing
Local (Valet)dezeen.testDeveloper machineLocal development
Local (Docker)localhost:8000DockerLocal development

Production

Infrastructure

ComponentDetail
Web servers4 Apache 2.4 nodes (WS1–WS4) with Prefork MPM
Cache2 Varnish servers
DatabaseMySQL 5.7, single instance
CDNCloudflare (DNS, caching, WAF, DDoS)
PHP7.4 via Apache mod_php

IP Addresses (from Varnish config)

NodeInternal IP
WS110.10.115.38
WS210.10.116.16
WS310.10.116.48
WS410.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 Rocket

Staging

  • 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.test

Option 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:8080

Docker Environment Variables

VariableValue
WORDPRESS_DB_HOSTdb
WORDPRESS_DB_USERdezeenuser
WORDPRESS_DB_PASSWORDdezeenpass
WORDPRESS_DB_NAMEdezeendb
WORDPRESS_TABLE_PREFIXvetg_
WORDPRESS_DEBUG1
ENVIRONMENTdev

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

ConstantPurposeExample Values
ENVIRONMENTEnvironment identifierdev, staging, production
STATIC_ASSETS_DIRECTORYPath to compiled theme assets/wp-content/themes/2016dezeen/assets or https://static.dezeen.com/d/assets
DZN_TEMPLATE_DIRECTORYBase URL for template assetshttps://dezeen.test or https://static.dezeen.com
DZN_TEMPLATE_VERSIONCache-busting version string2026-01-22 or %branch% _%count%
DZN_JS_VERSIONJS version suffix.20150421b
DZN_CSS_VERSIONCSS version suffix.20151117
PLATFORM_URLLaravel platform base URLhttps://dezeen-platform.test or https://www.dezeen.com/platform
AWARDS_URLAwards API endpointhttps://dezeen-platform.test/awards/api/
AWARDS_PAYPAL_ENVPayPal modesandbox or production
ALGOLIA_APPLICATION_IDAlgolia app IDI74IC8S56N
ALGOLIA_SEARCH_API_KEYAlgolia search key (public)ddce375e11077072b261fffde5c2f23c
ALGOLIA_API_KEYAlgolia admin key(read-only key in dev)
ALGOLIA_INDEX_NAME_PREFIXAlgolia index prefixvetg_live (prod) or vetg_sample (dev)
CAMPAIGN_MONITOR_API_KEYCM API key776e8974409afaba1cb71bd355688813
CAMPAIGN_MONITOR_CLIENT_IDCM client ID00754e228b534c38bb93597a8fb37ccb
CAMPAIGN_MONITOR_LISTDefault CM list IDd24aa47810d563872be2928382fe1bf4
WP_REDIS_HOSTRedis server127.0.0.1
WP_REDIS_PORTRedis port6379
WP_REDIS_PREFIXRedis key prefixdezeen_acf_
JWT_AUTH_SECRET_KEYJWT signing key(change from default)
DISABLE_WP_CRONDisable WP pseudo-crontrue (uses system crontab)
ACF_CACHEACF object cachingtrue

Backup Schedule

ComponentFrequencyRetentionMethod
ServerHourly14 daysServer snapshots
DatabaseDaily30 daysMySQL dump
Files/MediaDaily30 daysrsync
ConfigurationOn changeIndefiniteGit

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?)