Modules: - Chain: daemon RPC client (DaemonRpc singleton, cached queries) - Explorer: block browser, tx viewer, alias directory, search, stats API - Names: .lthn TLD registrar portal (availability check, lookup, directory) - Trade: scaffold (DEX frontend + API) - Pool: scaffold (mining pool dashboard) Replaces 5 Node.js containers (5.9GB) with one FrankenPHP app. Built on CorePHP framework pattern from host.uk.com. Co-Authored-By: Charon <charon@lethean.io>
227 lines
7.3 KiB
PHP
227 lines
7.3 KiB
PHP
<?php
|
|
|
|
return [
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Third Party Services
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| This file is for storing the credentials for third party services such
|
|
| as Mailgun, Postmark, AWS and more. This file provides the de facto
|
|
| location for this type of information, allowing packages to have
|
|
| a conventional file to locate the various service credentials.
|
|
|
|
|
*/
|
|
|
|
'postmark' => [
|
|
'key' => env('POSTMARK_API_KEY'),
|
|
],
|
|
|
|
'resend' => [
|
|
'key' => env('RESEND_API_KEY'),
|
|
],
|
|
|
|
'ses' => [
|
|
'key' => env('AWS_ACCESS_KEY_ID'),
|
|
'secret' => env('AWS_SECRET_ACCESS_KEY'),
|
|
'region' => env('AWS_DEFAULT_REGION', 'us-east-1'),
|
|
],
|
|
|
|
'slack' => [
|
|
'notifications' => [
|
|
'bot_user_oauth_token' => env('SLACK_BOT_USER_OAUTH_TOKEN'),
|
|
'channel' => env('SLACK_BOT_USER_DEFAULT_CHANNEL'),
|
|
],
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Content Management
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Content source configuration. Native mode uses Host Hub Content Editor
|
|
| as the source of truth. WordPress mode is deprecated but kept for import.
|
|
|
|
|
*/
|
|
|
|
'content' => [
|
|
// Content source: 'native' (default) or 'wordpress' (deprecated)
|
|
'source' => env('CONTENT_SOURCE', 'native'),
|
|
|
|
// Enable WordPress legacy routes (webhooks, sync)
|
|
'wordpress_enabled' => env('CONTENT_WORDPRESS_ENABLED', false),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| WordPress (Legacy)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| @deprecated WordPress integration is deprecated. Use native Content Editor.
|
|
| Kept for future import functionality (TASK-004).
|
|
| Set CONTENT_WORDPRESS_ENABLED=true to enable legacy routes.
|
|
|
|
|
*/
|
|
|
|
'wordpress' => [
|
|
'url' => env('WORDPRESS_URL'),
|
|
'username' => env('WORDPRESS_JWT_USER'),
|
|
'password' => env('WORDPRESS_JWT_PASS'),
|
|
'webhook_secret' => env('WORDPRESS_WEBHOOK_SECRET'),
|
|
// Multisite type: 'subdirectory' (hestia.host.uk.com/bio) or 'subdomain' (bio.hestia.host.uk.com)
|
|
'multisite_type' => env('WORDPRESS_MULTISITE_TYPE', 'subdomain'),
|
|
],
|
|
|
|
'bunnycdn' => [
|
|
'api_key' => env('BUNNYCDN_API_KEY'),
|
|
'pull_zone_id' => env('BUNNYCDN_PULL_ZONE_ID'),
|
|
'storage_api_key' => env('BUNNYCDN_STORAGE_API_KEY'),
|
|
'storage_zone' => env('BUNNYCDN_STORAGE_ZONE'),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Social Media Providers
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
'twitter' => [
|
|
'client_id' => env('TWITTER_CLIENT_ID'),
|
|
'client_secret' => env('TWITTER_CLIENT_SECRET'),
|
|
'redirect' => env('TWITTER_REDIRECT_URI', env('APP_URL').'/callback/twitter'),
|
|
],
|
|
|
|
'farcaster' => [
|
|
'api_key' => env('FARCASTER_API_KEY'),
|
|
],
|
|
|
|
'nostr' => [
|
|
'default_relays' => [
|
|
'wss://relay.damus.io',
|
|
'wss://nos.lol',
|
|
'wss://relay.nostr.band',
|
|
'wss://relay.snort.social',
|
|
'wss://nostr.wine',
|
|
],
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Media Integrations
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
'unsplash' => [
|
|
'client_id' => env('UNSPLASH_CLIENT_ID'),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| AI Providers
|
|
|--------------------------------------------------------------------------
|
|
*/
|
|
|
|
'anthropic' => [
|
|
'api_key' => env('ANTHROPIC_API_KEY'),
|
|
'model' => env('ANTHROPIC_MODEL', 'claude-sonnet-4-20250514'),
|
|
],
|
|
|
|
'google' => [
|
|
'ai_api_key' => env('GOOGLE_AI_API_KEY'),
|
|
'ai_model' => env('GOOGLE_AI_MODEL', 'gemini-2.0-flash'),
|
|
],
|
|
|
|
'eaas' => [
|
|
'url' => env('EAAS_URL', 'https://api.lthn.ai'),
|
|
'key' => env('EAAS_API_KEY', ''),
|
|
],
|
|
|
|
'ollama' => [
|
|
'url' => env('OLLAMA_URL', 'https://ollama.lthn.sh'),
|
|
],
|
|
|
|
'influx' => [
|
|
'url' => env('INFLUX_URL', 'https://influx.infra.lthn.sh'),
|
|
'db' => env('INFLUX_DB', 'training'),
|
|
'token' => env('INFLUX_TOKEN', ''),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Commerce Provisioning API (Internal)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Configuration for the internal Commerce Provisioning API.
|
|
| Used for service-to-service entitlement management.
|
|
|
|
|
*/
|
|
|
|
'commerce' => [
|
|
'api_secret' => env('COMMERCE_API_SECRET'),
|
|
],
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| Blesta Billing Integration (External - Future)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| Configuration for external Blesta billing integration.
|
|
| Currently disabled - using native Commerce module.
|
|
|
|
|
*/
|
|
|
|
/*
|
|
|--------------------------------------------------------------------------
|
|
| AltumCode Engine Products (Internal)
|
|
|--------------------------------------------------------------------------
|
|
|
|
|
| API credentials for the 4 AltumCode products running as backend engines.
|
|
| These are internal services on de1 — customers never access them directly.
|
|
| The Laravel app calls their APIs to provision, manage, and display data.
|
|
|
|
|
*/
|
|
|
|
'altum' => [
|
|
'analytics' => [
|
|
'url' => env('ALTUM_ANALYTICS_URL', 'https://analytics.host.uk.com'),
|
|
'admin_key' => env('ALTUM_ANALYTICS_ADMIN_KEY'),
|
|
],
|
|
'biolinks' => [
|
|
'url' => env('ALTUM_BIOLINKS_URL', 'https://link.host.uk.com'),
|
|
'admin_key' => env('ALTUM_BIOLINKS_ADMIN_KEY'),
|
|
],
|
|
'pusher' => [
|
|
'url' => env('ALTUM_PUSHER_URL', 'https://notify.host.uk.com'),
|
|
'admin_key' => env('ALTUM_PUSHER_ADMIN_KEY'),
|
|
],
|
|
'socialproof' => [
|
|
'url' => env('ALTUM_SOCIALPROOF_URL', 'https://trust.host.uk.com'),
|
|
'admin_key' => env('ALTUM_SOCIALPROOF_ADMIN_KEY'),
|
|
],
|
|
],
|
|
|
|
'blesta' => [
|
|
'url' => env('BLESTA_URL', 'https://billing.host.uk.com'),
|
|
'api_key' => env('BLESTA_API_KEY'),
|
|
'webhook_secret' => env('BLESTA_WEBHOOK_SECRET'),
|
|
|
|
// Map Blesta package IDs to our package codes
|
|
'package_mapping' => [
|
|
// 'blesta_pkg_creator' => 'creator',
|
|
// 'blesta_pkg_agency' => 'agency',
|
|
// 'blesta_pkg_enterprise' => 'enterprise',
|
|
],
|
|
|
|
// Map Blesta addon IDs to boost configurations
|
|
'addon_mapping' => [
|
|
// 'blesta_addon_ai_100' => [
|
|
// 'feature_code' => 'ai.credits',
|
|
// 'boost_type' => 'add_limit',
|
|
// 'limit_value' => 100,
|
|
// 'duration_type' => 'cycle_bound',
|
|
// ],
|
|
],
|
|
],
|
|
|
|
];
|