Initial Ladill Hosting app with Gitea deploy pipeline.
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:
isaacclad
2026-06-06 16:24:20 +00:00
co-authored by Cursor
commit e251a4cf60
367 changed files with 66268 additions and 0 deletions
+29
View File
@@ -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',
]);
}
}
+40
View File
@@ -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',
],
]
);
}
}
+280
View File
@@ -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();
}
}