Configuration
All WP Hoster options live in config/wphoster.php and are driven by environment variables. Key sections: paths, MySQL, WP-CLI, WordPress defaults, Cloudflare, timeouts, backups, integrity, agent, and feature flags.
Config file
config/wphoster.php
Main keys and env vars
| Config key | Env variable | Purpose |
base_domain | WP_HOSTER_BASE_DOMAIN | Base domain for sites |
server_ip | WP_HOSTER_SERVER_IP | Server IP for DNS A records |
paths.sites_root | WP_HOSTER_SITES_ROOT | Base directory for site roots |
paths.nginx_sites_available | WP_HOSTER_NGINX_SITES_AVAILABLE | Nginx config directory |
paths.nginx_sites_enabled | WP_HOSTER_NGINX_SITES_ENABLED | Nginx enabled symlinks |
paths.sshd_config_snippets | WP_HOSTER_SSHD_CONFIG_SNIPPETS | SSH Match block directory |
templates.assets_path | WP_HOSTER_TEMPLATE_ASSETS_PATH | Local plugins/themes for templates |
php_fpm_socket | WP_HOSTER_PHP_FPM_SOCKET | PHP-FPM socket path |
mysql.host | WP_HOSTER_MYSQL_HOST | MySQL host |
mysql.root_user | WP_HOSTER_MYSQL_ROOT_USER | MySQL root user |
mysql.root_password | WP_HOSTER_MYSQL_ROOT_PASSWORD | MySQL root password |
wp_cli.path | WP_HOSTER_WP_CLI_PATH | WP-CLI binary |
wordpress.admin_user | WP_HOSTER_WP_ADMIN_USER | Default WP admin username |
wordpress.admin_password | WP_HOSTER_WP_ADMIN_PASSWORD | Default WP admin password |
cloudflare.token | CLOUDFLARE_TOKEN | Cloudflare API token |
cloudflare.zone_id | CLOUDFLARE_ZONE_ID | Cloudflare zone ID |
cloudflare.proxied | CLOUDFLARE_PROXIED | Proxied A records |
notifications.slack_webhook | WP_HOSTER_SLACK_WEBHOOK | Slack for alerts |
notifications.generic_webhook | WP_HOSTER_WEBHOOK_URL | Generic webhook for alerts |
notifications.email | WP_HOSTER_ALERT_EMAIL | Alert email |
Timeouts
| Key | Env | Default |
timeouts.command_default | WP_HOSTER_COMMAND_TIMEOUT | 300 (5 min) |
timeouts.wp_cli_download | WP_HOSTER_WP_CLI_DOWNLOAD_TIMEOUT | 600 (10 min) |
timeouts.provisioning | WP_HOSTER_PROVISIONING_TIMEOUT | 1800 (30 min) |
timeouts.cloning | WP_HOSTER_CLONING_TIMEOUT | 3600 (60 min) |
timeouts.backup | WP_HOSTER_BACKUP_TIMEOUT | 1800 (30 min) |
Backups
| Key | Env | Purpose |
backups.retention_days | WP_HOSTER_BACKUP_RETENTION_DAYS | Days to keep backups (14) |
backups.storage_disk | WP_HOSTER_BACKUP_STORAGE_DISK | local or s3 |
backups.encrypt | WP_HOSTER_BACKUP_ENCRYPT | Encrypt at rest |
backups.verify_after_backup | WP_HOSTER_BACKUP_VERIFY | Verify after create |
Features
| Key | Env | Purpose |
features.cloudflare_dns | WP_HOSTER_FEATURE_CLOUDFLARE_DNS | Enable Cloudflare DNS (true) |
features.circuit_breaker | WP_HOSTER_FEATURE_CIRCUIT_BREAKER | Circuit breaker for external calls |
agent.enabled | WP_HOSTER_AGENT_ENABLED | Install WP Hoster Agent (true) |