Initial Ladill Hosting app with Gitea deploy pipeline.
Deploy Ladill Hosting / deploy (push) Failing after 17s
Deploy Ladill Hosting / deploy (push) Failing after 17s
Shared web hosting extracted from the platform monolith, with CI deploy to /var/www/ladill-hosting matching Bird/Domains/Email. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -0,0 +1,29 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Console\Seeds\WithoutModelEvents;
|
||||
use Illuminate\Database\Seeder;
|
||||
use Database\Seeders\HostingProductSeeder;
|
||||
|
||||
class DatabaseSeeder extends Seeder
|
||||
{
|
||||
use WithoutModelEvents;
|
||||
|
||||
/**
|
||||
* Seed the application's database.
|
||||
*/
|
||||
public function run(): void
|
||||
{
|
||||
$this->call([
|
||||
HostingProductSeeder::class,
|
||||
]);
|
||||
// User::factory(10)->create();
|
||||
|
||||
User::factory()->create([
|
||||
'name' => 'Test User',
|
||||
'email' => 'test@example.com',
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,40 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\HostingNode;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class HostingNodeSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
HostingNode::firstOrCreate(
|
||||
['provider' => 'local', 'ip_address' => '127.0.0.1'],
|
||||
[
|
||||
'name' => 'Primary Server',
|
||||
'hostname' => gethostname() ?: 'localhost',
|
||||
'ip_address' => '127.0.0.1',
|
||||
'ipv6_address' => '::1',
|
||||
'type' => 'shared',
|
||||
'segment' => 'general',
|
||||
'provider' => 'local',
|
||||
'cpu_cores' => 4,
|
||||
'ram_mb' => 8192,
|
||||
'disk_gb' => 150,
|
||||
'oversell_ratio' => 3,
|
||||
'bandwidth_tb' => 10,
|
||||
'max_accounts' => 100,
|
||||
'current_accounts' => 0,
|
||||
'status' => 'active',
|
||||
'ssh_port' => 22,
|
||||
'features' => ['php', 'mysql', 'nginx', 'ssl'],
|
||||
'installed_software' => [
|
||||
'php' => ['8.1', '8.2', '8.3'],
|
||||
'mysql' => '8.0',
|
||||
'nginx' => '1.24',
|
||||
],
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,280 @@
|
||||
<?php
|
||||
|
||||
namespace Database\Seeders;
|
||||
|
||||
use App\Models\HostingProduct;
|
||||
use Illuminate\Database\Seeder;
|
||||
|
||||
class HostingProductSeeder extends Seeder
|
||||
{
|
||||
public function run(): void
|
||||
{
|
||||
$products = [
|
||||
// ============================================
|
||||
// SINGLE DOMAIN HOSTING
|
||||
// Perfect for individuals & small business websites
|
||||
// ============================================
|
||||
[
|
||||
'name' => 'Starter Plan',
|
||||
'slug' => 'starter-plan',
|
||||
'description' => 'Entry-level single-domain hosting with 8 GB SSD storage, unmetered bandwidth, 2 free email accounts, free SSL + CDN, LiteSpeed servers, AI Website Builder, Softaculous installer, weekly backups, 3 FTP users, and 3 MySQL databases.',
|
||||
'category' => 'shared',
|
||||
'type' => 'single_domain',
|
||||
'price_monthly' => 1.00,
|
||||
'price_yearly' => 12.00, // 1 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 8,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => 1,
|
||||
'max_databases' => 3,
|
||||
'max_email_accounts' => 2,
|
||||
'max_ftp_accounts' => 3,
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 7, // Weekly backups
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'AI Website Builder',
|
||||
'Softaculous installer',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Weekly backups',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => false,
|
||||
'sort_order' => 1,
|
||||
],
|
||||
[
|
||||
'name' => 'Basic Plan',
|
||||
'slug' => 'basic-plan',
|
||||
'description' => 'Perfect for individuals & small business websites. Includes 15 GB SSD storage, unmetered bandwidth, 8 free email accounts, free SSL + CDN, LiteSpeed servers, AI Website Builder, Softaculous installer, weekly backups, 15 FTP users, and 15 MySQL databases.',
|
||||
'category' => 'shared',
|
||||
'type' => 'single_domain',
|
||||
'price_monthly' => 25.00,
|
||||
'price_yearly' => 300.00, // 25 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 15,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => 1,
|
||||
'max_databases' => 15,
|
||||
'max_email_accounts' => 8,
|
||||
'max_ftp_accounts' => 15,
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 7, // Weekly backups
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'AI Website Builder',
|
||||
'Softaculous installer',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Weekly backups',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => false,
|
||||
'sort_order' => 2,
|
||||
],
|
||||
[
|
||||
'name' => 'Plus Plan',
|
||||
'slug' => 'plus-plan',
|
||||
'description' => 'Enhanced single-domain hosting with 30 GB SSD storage, unmetered bandwidth, 15 free email accounts, free SSL + CDN, LiteSpeed servers, AI Website Builder + WordPress AI, Softaculous installer, twice-weekly backups, SSH access, 30 FTP users, and 30 MySQL databases.',
|
||||
'category' => 'shared',
|
||||
'type' => 'single_domain',
|
||||
'price_monthly' => 35.00,
|
||||
'price_yearly' => 420.00, // 35 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 30,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => 1,
|
||||
'max_databases' => 30,
|
||||
'max_email_accounts' => 15,
|
||||
'max_ftp_accounts' => 30,
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 4, // Twice-weekly backups
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'AI Website Builder',
|
||||
'WordPress AI',
|
||||
'Softaculous installer',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Twice-weekly backups',
|
||||
'SSH access',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => true,
|
||||
'sort_order' => 3,
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// MULTI-DOMAIN HOSTING
|
||||
// For businesses managing multiple websites
|
||||
// ============================================
|
||||
[
|
||||
'name' => 'Growth Plan',
|
||||
'slug' => 'growth-plan',
|
||||
'description' => 'For businesses managing multiple websites. Host up to 8 websites with 45 GB SSD storage, unmetered bandwidth, 23 free email accounts, free SSL + CDN, LiteSpeed servers, AI tools + Site builders, Softaculous installer, daily backups, SSH access, 75 FTP users, and 75 MySQL databases.',
|
||||
'category' => 'shared',
|
||||
'type' => 'multi_domain',
|
||||
'price_monthly' => 55.00,
|
||||
'price_yearly' => 660.00, // 55 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 45,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => 8,
|
||||
'max_databases' => 75,
|
||||
'max_email_accounts' => 23,
|
||||
'max_ftp_accounts' => 75,
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 7, // Daily backups
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'AI tools',
|
||||
'Site builders',
|
||||
'Softaculous installer',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Daily backups',
|
||||
'SSH access',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => true,
|
||||
'sort_order' => 4,
|
||||
],
|
||||
[
|
||||
'name' => 'Pro Plan',
|
||||
'slug' => 'pro-plan',
|
||||
'description' => 'Unlimited websites with 225 GB SSD storage and unmetered bandwidth, 38 free email accounts, free SSL + CDN, LiteSpeed servers, AI tools + Site builders, Softaculous installer, daily backups, SSH access, unlimited FTP users, and unlimited MySQL databases.',
|
||||
'category' => 'shared',
|
||||
'type' => 'multi_domain',
|
||||
'price_monthly' => 175.00,
|
||||
'price_yearly' => 2100.00, // 175 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 225,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => -1, // Unlimited
|
||||
'max_databases' => -1, // Unlimited
|
||||
'max_email_accounts' => 38,
|
||||
'max_ftp_accounts' => -1, // Unlimited
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 7, // Daily backups
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'AI tools',
|
||||
'Site builders',
|
||||
'Softaculous installer',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Daily backups',
|
||||
'SSH access',
|
||||
'Unlimited websites',
|
||||
'Unlimited FTP users',
|
||||
'Unlimited MySQL databases',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => false,
|
||||
'sort_order' => 5,
|
||||
],
|
||||
|
||||
// ============================================
|
||||
// WORDPRESS HOSTING
|
||||
// Optimized for WordPress performance & automation
|
||||
// ============================================
|
||||
[
|
||||
'name' => 'WP Starter',
|
||||
'slug' => 'wp-starter',
|
||||
'description' => 'Optimized WordPress hosting with 23 GB SSD storage, unmetered bandwidth, 8 free email accounts, free SSL + CDN, LiteSpeed + WordPress optimization, AI for WordPress, 1-click WordPress install, automatic updates, daily backups, and SSH access.',
|
||||
'category' => 'shared',
|
||||
'type' => 'wordpress',
|
||||
'price_monthly' => 40.00,
|
||||
'price_yearly' => 480.00, // 40 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 23,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => 1,
|
||||
'max_databases' => 2,
|
||||
'max_email_accounts' => 8,
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 7, // Daily backups
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'WordPress optimization',
|
||||
'AI for WordPress',
|
||||
'1-click WordPress install',
|
||||
'Automatic updates',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Daily backups',
|
||||
'SSH access',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => true,
|
||||
'sort_order' => 5,
|
||||
],
|
||||
[
|
||||
'name' => 'WP Business',
|
||||
'slug' => 'wp-business',
|
||||
'description' => 'Premium WordPress hosting with unlimited WordPress sites, 75 GB SSD storage, unmetered bandwidth, 38 free email accounts, advanced security (Imunify360-level), free SSL + CDN, LiteSpeed + advanced caching, AI for WordPress, staging environment, daily backups + restore points, SSH access, and priority performance.',
|
||||
'category' => 'shared',
|
||||
'type' => 'wordpress',
|
||||
'price_monthly' => 85.00,
|
||||
'price_yearly' => 1020.00, // 85 × 12
|
||||
'currency' => 'GHS',
|
||||
'disk_gb' => 75,
|
||||
'bandwidth_gb' => null, // Unmetered
|
||||
'max_domains' => -1, // Unlimited WordPress sites
|
||||
'max_databases' => -1, // Unlimited
|
||||
'max_email_accounts' => 38,
|
||||
'ssl_included' => true,
|
||||
'backups_included' => true,
|
||||
'backup_retention_days' => 30, // Daily backups + restore points
|
||||
'features' => [
|
||||
'LiteSpeed servers',
|
||||
'Advanced caching',
|
||||
'WordPress optimization',
|
||||
'AI for WordPress',
|
||||
'Staging environment',
|
||||
'Advanced security (Imunify360-level)',
|
||||
'Free SSL',
|
||||
'Free CDN',
|
||||
'Daily backups',
|
||||
'Restore points',
|
||||
'SSH access',
|
||||
'Priority performance',
|
||||
'Unlimited WordPress sites',
|
||||
],
|
||||
'is_active' => true,
|
||||
'is_featured' => false,
|
||||
'sort_order' => 6,
|
||||
],
|
||||
|
||||
// VPS & dedicated → Ladill Servers (servers.ladill.com). See ServerProductSeeder there.
|
||||
];
|
||||
|
||||
foreach ($products as $product) {
|
||||
HostingProduct::updateOrCreate(
|
||||
['slug' => $product['slug']],
|
||||
$product
|
||||
);
|
||||
}
|
||||
|
||||
// Clean up old hosting products that are no longer in the new pricing structure
|
||||
$newSlugs = array_column($products, 'slug');
|
||||
$oldSlugsToRemove = [
|
||||
'starter-hosting',
|
||||
'basic-hosting',
|
||||
'business-hosting',
|
||||
'pro-hosting',
|
||||
'wordpress-starter',
|
||||
'wordpress-business',
|
||||
];
|
||||
|
||||
HostingProduct::whereIn('slug', $oldSlugsToRemove)
|
||||
->whereNotIn('slug', $newSlugs)
|
||||
->delete();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user