env('HOSTING_TERMINAL_JAIL_LAUNCHER', '/usr/local/sbin/ladill-jailsh'), /* |-------------------------------------------------------------------------- | Central developer access |-------------------------------------------------------------------------- | | When true, hosting developer-access authorization is sourced from the | central monolith (account.ladill.com) via the identity API instead of the | local hosting_account_members table. While false (shadow mode), local data | stays authoritative and any divergence from central is logged. | */ 'central_dev_access' => env('HOSTING_CENTRAL_DEV_ACCESS', false), /* |-------------------------------------------------------------------------- | Contabo API Configuration |-------------------------------------------------------------------------- | | Credentials for the Contabo Compute Management API. | Used for provisioning VPS and VDS instances. | */ 'contabo' => [ 'client_id' => env('CONTABO_CLIENT_ID'), 'client_secret' => env('CONTABO_CLIENT_SECRET'), 'api_user' => env('CONTABO_API_USER'), 'api_password' => env('CONTABO_API_PASSWORD'), 'product_catalog_endpoint' => env('CONTABO_PRODUCT_CATALOG_ENDPOINT'), ], /* |-------------------------------------------------------------------------- | Pricing Configuration |-------------------------------------------------------------------------- | | Dynamic pricing settings for VPS/Dedicated servers. | Base prices from Contabo are in USD, converted to GHS using exchange rate. | */ 'pricing' => [ 'base_currency' => 'USD', 'display_currency' => 'GHS', // Fallback rate used when live API fails 'fallback_usd_to_ghs_rate' => env('FALLBACK_USD_TO_GHS_RATE', 15.50), // Profit margins (percentage on top of converted Contabo USD price) 'margins' => [ 'vps' => env('VPS_PROFIT_MARGIN', 45), 'dedicated' => env('DEDICATED_PROFIT_MARGIN', 30), ], 'contabo_price_cache_ttl' => env('CONTABO_PRICE_CACHE_TTL', 3600), 'term_discounts' => [ 'quarterly' => 5, 'semiannual' => 10, 'yearly' => 20, ], 'setup_fee_rules' => [ // VPS 10 only — monthly and semiannual cycles carry a setup fee equal to 1× the monthly price [ 'product_ids' => ['V91'], 'billing_cycles' => ['monthly', 'semiannual'], 'monthly_price_multiplier' => 1, 'label' => 'One-time setup fee', ], // Dedicated servers — fixed EUR fee that decreases with longer commitment; waived on yearly [ 'product_ids' => ['amd-ryzen-12-cores', 'amd-genoa-24-cores'], 'billing_cycles' => ['monthly', 'quarterly', 'semiannual'], 'fixed_eur_by_cycle' => [ 'monthly' => 39.99, 'quarterly' => 29.99, 'semiannual' => 19.99, ], 'label' => 'One-time setup fee', ], ], // Fallback Contabo base prices in USD. Live API/feed prices are preferred. // Keep these values as a fail-safe for API downtime. 'contabo_base_prices' => [ 'V91' => ['monthly' => 4.99, 'name' => 'Cloud VPS 10 NVMe', 'cpu' => 3, 'ram_gb' => 8, 'disk_gb' => 75], 'V94' => ['monthly' => 7.00, 'name' => 'Cloud VPS 20 NVMe', 'cpu' => 6, 'ram_gb' => 12, 'disk_gb' => 100], 'V97' => ['monthly' => 14.00, 'name' => 'Cloud VPS 30 NVMe', 'cpu' => 8, 'ram_gb' => 24, 'disk_gb' => 200], 'V100' => ['monthly' => 25.00, 'name' => 'Cloud VPS 40 NVMe', 'cpu' => 12, 'ram_gb' => 48, 'disk_gb' => 250], 'amd-ryzen-12-cores' => ['monthly' => 104.64, 'name' => 'AMD Ryzen 12 Cores', 'cpu' => 12, 'ram_gb' => 64, 'disk_gb' => 1000], 'amd-genoa-24-cores' => ['monthly' => 184.21, 'name' => 'AMD Genoa 24 Cores', 'cpu' => 24, 'ram_gb' => 128, 'disk_gb' => 2000], ], ], /* |-------------------------------------------------------------------------- | Server Order Options |-------------------------------------------------------------------------- | | Surcharges shown here are Contabo-side monthly USD add-on costs before | the Ladill exchange-rate conversion and product margin are applied. | Update these values whenever Contabo changes its commercial pricing. | */ 'server_order' => [ 'regions' => [ 'EU' => ['label' => 'Europe (Germany)', 'monthly_usd' => 0.00, 'automated' => true], 'US-central' => ['label' => 'US Central', 'monthly_usd' => 0.00, 'automated' => true], 'US-east' => ['label' => 'US East', 'monthly_usd' => 0.00, 'automated' => true], 'US-west' => ['label' => 'US West', 'monthly_usd' => 0.00, 'automated' => true], 'UK' => ['label' => 'United Kingdom', 'monthly_usd' => 0.00, 'automated' => true], 'SIN' => ['label' => 'Singapore', 'monthly_usd' => 0.00, 'automated' => true], 'AUS' => ['label' => 'Australia', 'monthly_usd' => 0.00, 'automated' => true], 'JPN' => ['label' => 'Japan', 'monthly_usd' => 0.00, 'automated' => true], ], 'image_pricing_rules' => [ [ 'key' => 'windows', 'label' => 'Windows Server', 'monthly_usd' => 9.30, 'match' => ['windows'], 'os_family' => 'windows', 'default_user' => 'administrator', 'requires_custom_image_addon' => false, 'automated' => true, ], [ 'key' => 'ubuntu', 'label' => 'Ubuntu', 'monthly_usd' => 0.00, 'match' => ['ubuntu'], 'os_family' => 'linux', 'default_user' => 'root', 'requires_custom_image_addon' => false, 'automated' => true, ], [ 'key' => 'rhel', 'label' => 'RHEL Variants', 'monthly_usd' => 0.00, 'match' => ['alma', 'rocky', 'rhel', 'centos'], 'os_family' => 'linux', 'default_user' => 'root', 'requires_custom_image_addon' => false, 'automated' => true, ], [ 'key' => 'custom', 'label' => 'Custom Images', 'monthly_usd' => 0.00, 'custom_image' => true, 'os_family' => 'linux', 'default_user' => 'root', 'requires_custom_image_addon' => true, 'automated' => true, ], [ 'key' => 'linux', 'label' => 'Linux', 'monthly_usd' => 0.00, 'match' => ['debian', 'fedora', 'linux', 'bsd'], 'os_family' => 'linux', 'default_user' => 'root', 'requires_custom_image_addon' => false, 'automated' => true, ], ], 'fallback_images' => [ [ 'value' => 'afecbb85-e2fc-46f0-9684-b46b1faf00bb', 'label' => 'Ubuntu 22.04', 'description' => 'Fallback Ubuntu image', 'os_family' => 'linux', 'monthly_usd' => 0.00, 'default_user' => 'root', 'requires_custom_image_addon' => false, 'automated' => true, ], ], 'managed_stack_supported_images' => [ [ 'value' => 'afecbb85-e2fc-46f0-9684-b46b1faf00bb', 'label' => 'Ubuntu 22.04 LTS', 'match' => ['ubuntu 22.04'], 'os_family' => 'linux', ], [ 'label' => 'Ubuntu 24.04 LTS', 'match' => ['ubuntu 24.04'], 'os_family' => 'linux', ], [ 'label' => 'Debian 12', 'match' => ['debian 12', 'bookworm'], 'os_family' => 'linux', ], [ 'label' => 'AlmaLinux', 'match' => ['almalinux', 'alma linux', 'alma'], 'os_family' => 'linux', ], [ 'label' => 'Rocky Linux', 'match' => ['rocky linux', 'rocky'], 'os_family' => 'linux', ], [ 'label' => 'Fedora', 'match' => ['fedora'], 'os_family' => 'linux', ], [ 'label' => 'openSUSE Leap', 'match' => ['opensuse leap', 'open suse leap', 'opensuse', 'leap'], 'os_family' => 'linux', ], [ 'label' => 'CentOS', 'match' => ['centos'], 'os_family' => 'linux', ], ], 'licenses' => [ 'none' => [ 'label' => 'Remote Login Only', 'description' => 'No hosting panel or commercial control-panel license.', 'monthly_usd' => 0.00, 'license' => null, 'panel' => null, 'automated' => true, ], 'ladill_panel' => [ 'label' => 'Ladill Server Manager', 'description' => 'Manage power, status, and server details from the Ladill server manager.', 'monthly_usd' => 0.00, 'license' => null, 'panel' => 'ladill', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'requires_managed_stack_image' => true, 'automated' => true, ], 'plesk_host' => [ 'label' => 'Plesk + Linux', 'description' => 'Plesk host edition on Linux.', 'monthly_usd' => 15.00, 'license' => 'PleskHost', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'plesk_windows' => [ 'label' => 'Plesk + Windows', 'description' => 'Plesk on Windows Server.', 'monthly_usd' => 22.70, 'license' => 'PleskHost', 'compatible_os_families' => ['windows'], 'requires_image' => true, 'automated' => true, ], 'cpanel_5' => [ 'label' => 'cPanel 5', 'description' => 'cPanel license for up to 5 accounts.', 'monthly_usd' => 35.99, 'license' => 'cPanel5', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_30' => [ 'label' => 'cPanel 30', 'description' => 'cPanel license for up to 30 accounts.', 'monthly_usd' => 53.99, 'license' => 'cPanel30', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_50' => [ 'label' => 'cPanel 50', 'description' => 'cPanel license for up to 50 accounts.', 'monthly_usd' => 53.99 + (0.49 * 20), 'license' => 'cPanel50', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_100' => [ 'label' => 'cPanel 100', 'description' => 'cPanel license for up to 100 accounts.', 'monthly_usd' => 69.99, 'license' => 'cPanel100', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_150' => [ 'label' => 'cPanel 150', 'description' => 'cPanel license for up to 150 accounts.', 'monthly_usd' => 69.99 + (0.49 * 50), 'license' => 'cPanel150', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_200' => [ 'label' => 'cPanel 200', 'description' => 'cPanel license for up to 200 accounts.', 'monthly_usd' => 69.99 + (0.49 * 100), 'license' => 'cPanel200', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_250' => [ 'label' => 'cPanel 250', 'description' => 'cPanel license for up to 250 accounts.', 'monthly_usd' => 69.99 + (0.49 * 150), 'license' => 'cPanel250', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_300' => [ 'label' => 'cPanel 300', 'description' => 'cPanel license for up to 300 accounts.', 'monthly_usd' => 69.99 + (0.49 * 200), 'license' => 'cPanel300', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_350' => [ 'label' => 'cPanel 350', 'description' => 'cPanel license for up to 350 accounts.', 'monthly_usd' => 69.99 + (0.49 * 250), 'license' => 'cPanel350', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_400' => [ 'label' => 'cPanel 400', 'description' => 'cPanel license for up to 400 accounts.', 'monthly_usd' => 69.99 + (0.49 * 300), 'license' => 'cPanel400', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_450' => [ 'label' => 'cPanel 450', 'description' => 'cPanel license for up to 450 accounts.', 'monthly_usd' => 69.99 + (0.49 * 350), 'license' => 'cPanel450', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_500' => [ 'label' => 'cPanel 500', 'description' => 'cPanel license for up to 500 accounts.', 'monthly_usd' => 69.99 + (0.49 * 400), 'license' => 'cPanel500', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_550' => [ 'label' => 'cPanel 550', 'description' => 'cPanel license for up to 550 accounts.', 'monthly_usd' => 69.99 + (0.49 * 450), 'license' => 'cPanel550', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_600' => [ 'label' => 'cPanel 600', 'description' => 'cPanel license for up to 600 accounts.', 'monthly_usd' => 69.99 + (0.49 * 500), 'license' => 'cPanel600', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_650' => [ 'label' => 'cPanel 650', 'description' => 'cPanel license for up to 650 accounts.', 'monthly_usd' => 69.99 + (0.49 * 550), 'license' => 'cPanel650', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_700' => [ 'label' => 'cPanel 700', 'description' => 'cPanel license for up to 700 accounts.', 'monthly_usd' => 69.99 + (0.49 * 600), 'license' => 'cPanel700', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_750' => [ 'label' => 'cPanel 750', 'description' => 'cPanel license for up to 750 accounts.', 'monthly_usd' => 69.99 + (0.49 * 650), 'license' => 'cPanel750', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_800' => [ 'label' => 'cPanel 800', 'description' => 'cPanel license for up to 800 accounts.', 'monthly_usd' => 69.99 + (0.49 * 700), 'license' => 'cPanel800', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_850' => [ 'label' => 'cPanel 850', 'description' => 'cPanel license for up to 850 accounts.', 'monthly_usd' => 69.99 + (0.49 * 750), 'license' => 'cPanel850', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_900' => [ 'label' => 'cPanel 900', 'description' => 'cPanel license for up to 900 accounts.', 'monthly_usd' => 69.99 + (0.49 * 800), 'license' => 'cPanel900', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_950' => [ 'label' => 'cPanel 950', 'description' => 'cPanel license for up to 950 accounts.', 'monthly_usd' => 69.99 + (0.49 * 850), 'license' => 'cPanel950', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'cpanel_1000' => [ 'label' => 'cPanel 1000', 'description' => 'cPanel license for up to 1000 accounts.', 'monthly_usd' => 69.99 + (0.49 * 900), 'license' => 'cPanel1000', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], ], 'applications' => [ 'none' => [ 'label' => 'No Preinstalled App', 'description' => 'Provision the server without an extra preinstalled application.', 'monthly_usd' => 0.00, 'automated' => true, ], 'webmin' => [ 'label' => 'Webmin', 'description' => 'Free Webmin server panel installed automatically on Linux.', 'monthly_usd' => 0.00, 'cloud_init_preset' => 'webmin', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'webmin_lamp' => [ 'label' => 'Webmin + LAMP', 'description' => 'Free Webmin plus Apache, MariaDB, and PHP on Linux.', 'monthly_usd' => 0.00, 'cloud_init_preset' => 'webmin_lamp', 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'ipfs_node' => [ 'label' => 'IPFS Node', 'description' => 'Contabo application profile for IPFS nodes.', 'monthly_usd' => 0.00, 'application_id' => env('CONTABO_APP_ID_IPFS_NODE'), 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'flux_node' => [ 'label' => 'Flux Node', 'description' => 'Contabo application profile for Flux nodes.', 'monthly_usd' => 0.00, 'application_id' => env('CONTABO_APP_ID_FLUX_NODE'), 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'horizon_node' => [ 'label' => 'Horizen Node', 'description' => 'Contabo application profile for Horizen nodes.', 'monthly_usd' => 0.00, 'application_id' => env('CONTABO_APP_ID_HORIZON_NODE'), 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'ethereum_node' => [ 'label' => 'Ethereum Node', 'description' => 'Contabo application profile for Ethereum 2.0 nodes.', 'monthly_usd' => 0.00, 'application_id' => null, 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], 'bitcoin_node' => [ 'label' => 'Bitcoin Full Node', 'description' => 'Contabo application profile for Bitcoin full nodes.', 'monthly_usd' => 0.00, 'application_id' => null, 'compatible_os_families' => ['linux'], 'requires_image' => true, 'automated' => true, ], ], 'additional_ip' => [ 'none' => [ 'label' => '1 IP Address', 'description' => 'Default primary IP only.', 'monthly_usd' => 0.00, 'add_on' => null, 'automated' => true, ], 'one_extra' => [ 'label' => '1 Additional IP', 'description' => 'Adds one extra IPv4 address.', 'monthly_usd' => 4.50, 'add_on' => 'additionalIps', 'automated' => true, ], ], 'private_networking' => [ 'disabled' => [ 'label' => 'No Private Networking', 'description' => 'Do not enable the private networking add-on.', 'monthly_usd' => 0.00, 'add_on' => null, 'automated' => true, ], 'enabled' => [ 'label' => 'Private Networking Enabled', 'description' => 'Purchases the private networking add-on.', 'monthly_usd' => 2.99, 'add_on' => 'privateNetworking', 'automated' => true, ], ], 'storage_types' => [ 'included' => [ 'label' => 'Included Storage', 'description' => 'Use the plan default storage.', 'monthly_usd' => 0.00, 'add_on' => null, 'automated' => true, ], 'ssd_300' => [ 'label' => '300 GB SSD', 'description' => 'Higher SSD storage tier.', 'monthly_usd' => 1.95, 'add_on' => 'extraStorage', 'automated' => false, ], 'nvme_150' => [ 'label' => '150 GB NVMe', 'description' => 'Higher NVMe storage tier.', 'monthly_usd' => 2.30, 'add_on' => 'extraStorage', 'automated' => false, ], ], 'object_storage' => [ 'none' => [ 'label' => 'No Object Storage', 'description' => 'Do not order object storage with this server.', 'monthly_usd' => 0.00, 'automated' => false, ], 'eu_250' => [ 'label' => '250 GB Object Storage (EU)', 'description' => 'S3-compatible object storage in the European Union.', 'monthly_usd' => 2.99, 'automated' => false, ], 'eu_500' => [ 'label' => '500 GB Object Storage (EU)', 'description' => 'S3-compatible object storage in the European Union.', 'monthly_usd' => 5.98, 'automated' => false, ], 'eu_750' => [ 'label' => '750 GB Object Storage (EU)', 'description' => 'S3-compatible object storage in the European Union.', 'monthly_usd' => 8.97, 'automated' => false, ], 'eu_1024' => [ 'label' => '1 TB Object Storage (EU)', 'description' => 'S3-compatible object storage in the European Union.', 'monthly_usd' => 11.96, 'automated' => false, ], ], 'linux_default_users' => [ 'root' => ['label' => 'root'], 'admin' => ['label' => 'admin'], ], 'windows_default_users' => [ 'admin' => ['label' => 'admin'], 'administrator' => ['label' => 'administrator'], ], ], 'server_agent' => [ 'release_version' => env('SERVER_AGENT_RELEASE_VERSION', '0.2.0'), 'signed_release_ttl_minutes' => (int) env('SERVER_AGENT_SIGNED_RELEASE_TTL_MINUTES', 10080), 'heartbeat_interval_seconds' => 15, ], /* |-------------------------------------------------------------------------- | Shared Hosting Configuration |-------------------------------------------------------------------------- | | Settings for the shared hosting nodes. | */ 'shared' => [ 'default_php_version' => '8.2', 'available_php_versions' => ['8.0', '8.1', '8.2', '8.3'], 'default_document_root' => 'public_html', 'max_upload_size_mb' => 64, 'max_execution_time' => 300, 'memory_limit_mb' => 256, 'phpmyadmin_url' => env('HOSTING_PHPMYADMIN_URL', ''), 'phpmyadmin_sso_secret' => env('HOSTING_PHPMYADMIN_SSO_SECRET', ''), ], /* |-------------------------------------------------------------------------- | VPS Configuration |-------------------------------------------------------------------------- | | Default settings for VPS instances. | */ 'vps' => [ 'default_region' => 'EU', 'default_image' => 'afecbb85-e2fc-46f0-9684-b46b1faf00bb', // Ubuntu 22.04 'available_regions' => ['EU', 'US-central', 'US-east', 'US-west', 'SIN', 'UK', 'AUS', 'JPN'], ], /* |-------------------------------------------------------------------------- | App Installer Configuration |-------------------------------------------------------------------------- | | Settings for the one-click app installer. | */ 'apps' => [ 'enabled' => ['wordpress', 'joomla', 'drupal', 'opencart'], 'magento_enabled' => false, // Requires higher resource plans 'wordpress' => [ 'default_version' => '6.4', 'wp_cli_path' => '/usr/local/bin/wp', ], ], /* |-------------------------------------------------------------------------- | Provisioning Settings |-------------------------------------------------------------------------- | | General provisioning configuration. | */ 'provisioning' => [ 'max_retries' => 3, 'retry_delay_minutes' => 5, 'timeout_minutes' => 30, ], /* |-------------------------------------------------------------------------- | Legacy ResellerClub Integration |-------------------------------------------------------------------------- | | Keep RC integration active for existing customers. | */ 'legacy' => [ // Keep RC data/API available for customers with existing ResellerClub services. 'rc_enabled' => (bool) env('LADILL_RC_LEGACY_ENABLED', true), // New sales and automated fulfillment use Ladill (Dynadot domains, native hosting). 'rc_new_orders_enabled' => (bool) env('LADILL_RC_NEW_ORDERS_ENABLED', false), // Renew existing ResellerClub services (hosting, domains, VPS, etc.). 'rc_renewals_enabled' => (bool) env('LADILL_RC_RENEWALS_ENABLED', true), ], ];