diff --git a/CLAUDE.md b/CLAUDE.md index 8aa4ea8..e1d734b 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -278,4 +278,3 @@ google-chrome --headless=new --disable-gpu --no-sandbox --screenshot=/tmp/screen - `GETTING_STARTED.md` — Development setup guide - `IDEAS.md` — Future feature ideas - `website/CLAUDE.md` — Laravel Boost guidelines (auto-generated, Laravel/Pest/Pint conventions) -- `SESSION_LOG_2026-03-14.md` — Full frontend redesign session log (design system, bug fixes) diff --git a/PROVISIONING_FIX_2026-02-10.md b/PROVISIONING_FIX_2026-02-10.md deleted file mode 100644 index 29b9858..0000000 --- a/PROVISIONING_FIX_2026-02-10.md +++ /dev/null @@ -1,102 +0,0 @@ -# Provisioning & Service Termination Fix - 2026-02-10 - -## Issues Fixed - -### Issue #1: VPS Not Being Provisioned -**Root Cause:** All provisioning services (VirtFusion, Pterodactyl, SynergyCP, Enhance) were reading credentials from `config('services.*')` which pulls from `.env`, but the actual credentials are stored in the **database** via the `settings` table (configured in Admin → Settings → API). - -**What Happened:** -- User configured VirtFusion API URL/token via admin panel settings (stored in DB) -- VirtFusionService was reading from `.env` (empty values) -- HTTP client tried to connect to relative hostnames like `sanctum`, `users`, `servers` -- cURL errors: "Could not resolve host: users" - -**Files Updated:** -- `app/Services/Provisioning/VirtFusionService.php` -- `app/Services/Provisioning/PterodactylService.php` -- `app/Services/Provisioning/SynergyCPService.php` -- `app/Services/Provisioning/EnhanceService.php` - -**Change:** All services now use `\App\Models\Setting::get('provider_api_url')` instead of `config('services.provider.url')` - -### Issue #2: Services Not Terminated on Subscription Cancellation -**Root Cause:** `HandleSubscriptionCancelled` listener only sent a notification - it didn't call the provisioning service's `terminate()` method. - -**What Happened:** -- User canceled subscription with "immediate" setting -- Subscription canceled in Stripe -- Service remained active on VirtFusion panel -- No cleanup of provisioned resources - -**Files Updated:** -- `app/Listeners/HandleSubscriptionCancelled.php` - -**Changes:** -- Made listener implement `ShouldQueue` (background job with retries) -- Added logic to find all active/suspended services for the subscription -- Call `terminate()` on each service via ProvisioningFactory -- Proper error handling and logging -- Service status updated to "terminated" in database - -## Current State - -### VirtFusion Configuration (Database) -``` -virtfusion_api_url: https://cp.vps.ezscale.tech/api/v1 -virtfusion_api_token: (encrypted in DB) -``` - -### How It Works Now - -**Subscription Created:** -1. HandleSubscriptionCreated listener queued -2. Reads plan from database -3. Gets provisioning service (VirtFusionService for VPS) -4. **VirtFusionService reads URL/token from settings table** -5. Ensures user exists on VirtFusion panel -6. Creates server (package ID 43) -7. Changes package to match plan specs -8. Updates service record with IP, hostname, etc. -9. Sends credentials email to customer - -**Subscription Canceled:** -1. HandleSubscriptionCancelled listener queued -2. Finds all active/suspended services for subscription -3. Gets provisioning service for each -4. Calls `terminate()` on VirtFusion (DELETE /servers/{id}) -5. Updates service status to "terminated" -6. Sends cancellation email to customer - -## Testing Needed - -1. ✅ Horizon restarted to reload code changes -2. ⏳ Create a new VPS subscription and verify: - - Service is provisioned on VirtFusion - - Credentials email is sent - - Service appears in customer dashboard -3. ⏳ Cancel the subscription and verify: - - Service is terminated on VirtFusion - - Service status updates to "terminated" - - Cancellation email is sent - -## Environment Variables (No Longer Used) - -The following `.env` variables are **no longer used** for provisioning (database settings take precedence): -- ~~VIRTFUSION_API_URL~~ -- ~~VIRTFUSION_API_TOKEN~~ -- ~~PTERODACTYL_PANEL_URL~~ -- ~~PTERODACTYL_API_KEY~~ -- ~~SYNERGYCP_API_URL~~ -- ~~SYNERGYCP_API_TOKEN~~ -- ~~ENHANCE_API_URL~~ -- ~~ENHANCE_API_TOKEN~~ - -**Configure all provisioning credentials in:** Admin Panel → Settings → API Integrations - -## Migration Notes - -If you have provisioning credentials in `.env`, migrate them to the database: -1. Go to Admin → Settings → API -2. Enter the URL and token for each provider -3. Click "Save" to encrypt and store in database -4. Remove from `.env` (optional, but recommended to avoid confusion) diff --git a/SESSION_LOG_2026-03-14.md b/SESSION_LOG_2026-03-14.md deleted file mode 100644 index 53a6d8e..0000000 --- a/SESSION_LOG_2026-03-14.md +++ /dev/null @@ -1,133 +0,0 @@ -# Session Log — 2026-03-14 - -## Overview - -Major frontend redesign session replacing the Vuexy-based design system with a custom EZSCALE design system. Also fixed several critical backend bugs related to billing, provisioning, and security. The redesign touched all 4 layouts, created new shared components, replaced the SCSS foundation, updated the color palette from purple (#7367F0) to navy blue (#1d4ed8), and migrated fonts to Plus Jakarta Sans + JetBrains Mono. - ---- - -## Frontend Redesign - -### Phase 0: Foundation - -- Installed `echarts`, `vue-echarts`, `@vueuse/core`; removed `@mdi/font` -- Replaced Inter/Public Sans fonts with **Plus Jakarta Sans** (UI) + **JetBrains Mono** (code) via Bunny Fonts -- Deleted all 38 Vuexy `@core` SCSS files -- Created 8 new SCSS design system files: - - `_variables.scss`, `_mixins.scss`, `_animations.scss`, `_typography.scss` - - `_component-overrides.scss`, `_marketing.scss`, `_layouts.scss`, `styles.scss` -- Rewrote Vuetify config: navy blue palette (`#1d4ed8` primary, `#3b82f6` primary-light), pill buttons, subdomain-aware theming (light for marketing, dark for admin/account) -- Updated `vite.config.ts`: removed `@core-scss` and `@configured-variables` aliases -- Updated `variables/_vuetify.scss` and `variables/_template.scss` - -### Phase 1: Layout Infrastructure - -- Deleted 5 old VerticalNav* components and 4 `@layouts/styles` SCSS files -- Created 8 new shared components: - - `AppSidebar` — collapsible sidebar for admin/account layouts - - `AppTopNavbar` — top navigation bar with search, theme switcher, notifications - - `CommandPalette` — Cmd+K command palette for quick navigation - - `ToastStack` — toast notification display (uses Pinia store) - - `NotificationPanel` — slide-out notification panel - - `SkeletonLoader` — loading placeholder component - - `EmptyState` — empty state with icon/message/action - - `Breadcrumbs` — breadcrumb navigation component -- Created Pinia toast store (`stores/toast.ts`) -- Rebuilt all 4 layouts: - - `AdminLayout` — sidebar + navbar + command palette + notifications + toasts - - `AccountLayout` — same pattern + impersonation banner - - `MarketingLayout` — transparent navbar + mega footer + mobile drawer - - `AuthLayout` — split-screen with gradient art panel -- Updated admin navigation (reorganized groups) and marketing navigation (removed BattlefieldAcp) - -### Phase 2: Marketing Components - -Created 9 marketing components: -- `HeroSection` — reusable hero with gradient background and CTA buttons -- `NetworkHero` — animated SVG network visualization -- `VpsHero`, `DedicatedHero`, `WebHostingHero`, `GameServerHero` — product-specific animated heroes -- `GlassCard` — glassmorphism card component -- `ScrollReveal` — intersection observer scroll animation wrapper -- `PricingCard` — pricing plan card with feature list and CTA - -### Phase 3: Page Migration - -- Replaced `AppTextField`/`AppSelect`/`AppTextarea` with native `VTextField`/`VSelect`/`VTextarea` across all 28 pages -- Updated 5 marketing page heroes to use `HeroSection` + animated SVGs -- Merged `Products.vue` into `Home.vue`, `BattlefieldAcp.vue` into `GameServers.vue` (with featured section) -- Added 301 redirects for `/products` -> `/` and `/battlefield-acp` -> `/game-servers` -- Deleted old wrapper components (`AppTextField`, `AppSelect`, `AppTextarea`, `FlashMessages`, `NotificationBell`) - -### Phase 4: Polish - -- Theme persistence: `ThemeSwitcher` saves to localStorage (`ezscale-theme` key), Vuetify reads on init -- Theme-aware styles: navbar/footer use CSS custom properties, hero sections force white text -- Fixed `About.vue` sections (`bg-surface-variant` -> `section-alt-bg`) -- Set default VChip size to `small` globally -- Visual verification via headless Chrome screenshots - ---- - -## Critical Bug Fixes - -1. **placeOrder() column fixes** — Fixed wrong column names: `payment_method` -> `payment_gateway`, removed non-existent `order_id` on Service/Invoice, removed non-existent `subtotal` on Invoice, added `service_id`/`completed_at` on Order, added `service_type`/`platform` on Service - -2. **VirtFusion provisioning_info** — Changed from non-existent column to storing in credentials via `array_merge` - -3. **PayPal webhook verification** — Added header verification for `PAYPAL-TRANSMISSION-*` headers - -4. **VPS root password exposure** — Moved from success flash to separate `new_password` flash key with secure dialog - -5. **ensure_not_suspended middleware** — Applied to account routes, added bypass for impersonation stop, added banned check - -6. **User::invoices() override** — Renamed to `billingInvoices()` to avoid conflict with Laravel Cashier's `invoices()` method, updated all 7+ call sites, aliased `withCount` - ---- - -## Important Fixes - -7. **Impersonation stop** — Added route on account subdomain, fixed AccountLayout link to use account domain - -8. **Performance indexes** — Migration adding indexes on `invoices.status`, `orders.status`, `audit_logs.action`, `audit_logs.created_at` - -9. **Invoice number collisions** — Replaced `count()+1` and `rand()` with `Str::random(6)` - -10. **Dashboard caching** — Wrapped stats in `Cache::remember` with 5-min TTL - -11. **last_four -> last4** — Fixed Stripe property name in BillingController - -12. **FlashProps type** — Added `info` and `new_password` keys - ---- - -## Files Changed Summary - -### New Files -- 8 SCSS design system files (`resources/styles/`) -- 8 shared Vue components (`resources/ts/Components/`) -- 9 marketing Vue components (`resources/ts/Components/marketing/`) -- 1 Pinia store (`resources/ts/stores/toast.ts`) -- 1 migration (performance indexes) - -### Deleted Files -- 38 Vuexy `@core` SCSS files -- 5 VerticalNav* components -- 4 `@layouts/styles` SCSS files -- 3 app-form-elements wrapper components (`AppTextField`, `AppSelect`, `AppTextarea`) -- `FlashMessages.vue`, `NotificationBell.vue` -- `Products.vue`, `BattlefieldAcp.vue` (merged into other pages) - -### Modified Files -- All 4 layouts rebuilt -- 28+ Vue pages updated (component replacements) -- Vuetify plugin config rewritten -- `vite.config.ts` updated -- Navigation configs updated -- Multiple PHP controllers/models (bug fixes) -- `bootstrap/app.php` (middleware changes) - ---- - -## Test Results - -Tests were not re-run as part of this documentation session. Previous count: 347 tests, 1866 assertions. diff --git a/Screenshot_10-2-2026_9396_mandmbattlefield.app.ezscale.cloud.jpeg b/Screenshot_10-2-2026_9396_mandmbattlefield.app.ezscale.cloud.jpeg deleted file mode 100644 index e057674..0000000 Binary files a/Screenshot_10-2-2026_9396_mandmbattlefield.app.ezscale.cloud.jpeg and /dev/null differ diff --git a/Screenshot_10-2-2026_94012_mandmbattlefield.app.ezscale.cloud.jpeg b/Screenshot_10-2-2026_94012_mandmbattlefield.app.ezscale.cloud.jpeg deleted file mode 100644 index 50c05ae..0000000 Binary files a/Screenshot_10-2-2026_94012_mandmbattlefield.app.ezscale.cloud.jpeg and /dev/null differ diff --git a/VIRTFUSION_V6_INTEGRATION.md b/VIRTFUSION_V6_INTEGRATION.md deleted file mode 100644 index 4b2f919..0000000 --- a/VIRTFUSION_V6_INTEGRATION.md +++ /dev/null @@ -1,132 +0,0 @@ -# VirtFusion V6 API Integration - -## Overview -EZSCALE uses VirtFusion V6 for VPS provisioning and management. This document outlines the correct API endpoints and parameters. - -## API Reference -**OpenAPI Spec**: `virtfusion-api-spec.yaml` (8,309 lines) -**Base URL**: Configured in `.env` as `VIRTFUSION_API_URL` -**Authentication**: Bearer token (configured as `VIRTFUSION_API_TOKEN`) - -## Correct API Endpoints (V6) - -### Connection Test -```http -GET /connect -Authorization: Bearer {token} -``` -**Response**: Returns VirtFusion version and connection status - -### Create Server -```http -POST /servers -Content-Type: application/json -Authorization: Bearer {token} - -{ - "packageId": 1, // Required: VirtFusion package ID - "userId": 1, // Required: VirtFusion user ID (not email!) - "hypervisorId": 1 // Required: Hypervisor group ID -} -``` -**Response**: Returns server object with ID, UUID, state, IP addresses, etc. - -### Get Server Details -```http -GET /servers/{serverId} -Authorization: Bearer {token} -``` -**Response**: Full server details including state, suspended status, traffic, etc. - -### Suspend Server -```http -POST /servers/{serverId}/suspend -Authorization: Bearer {token} -``` -**Response**: 204 No Content on success - -### Unsuspend Server -```http -POST /servers/{serverId}/unsuspend -Authorization: Bearer {token} -``` -**Response**: 204 No Content on success - -### Delete Server -```http -DELETE /servers/{serverId}?delay=0 -Authorization: Bearer {token} -``` -**Query Parameters**: -- `delay`: Minutes to wait before deletion (0-43800), optional - -**Response**: 204 No Content on success - -## Plan Configuration - -VPS plans in the database need these feature keys: - -```json -{ - "virtfusion_package_id": 1, // Required: VirtFusion package ID - "virtfusion_user_id": 1, // Required: VirtFusion user ID for server owner - "virtfusion_hypervisor_id": 1 // Required: Hypervisor group ID -} -``` - -## Key Differences from Other Versions - -1. **No `/api/v1` prefix** - V6 endpoints start directly with resource names -2. **camelCase parameters** - Use `packageId` not `package_id` -3. **userId not email** - Must provide VirtFusion user ID, not email address -4. **Suspend returns 204** - No response body, check for 204 status code - -## Implementation Files - -- **Service**: `app/Services/Provisioning/VirtFusionService.php` -- **Settings Controller**: `app/Http/Controllers/Admin/SettingsController.php` (testVirtFusion method) -- **Config**: `config/services.php` (virtfusion section) - -## Testing - -Test connection via Admin Settings page: -1. Navigate to Admin → Settings → API Credentials -2. Enter VirtFusion API URL and Token -3. Click "Test Connection" -4. Should return: "VirtFusion connection successful. Version: X.X.X" - -## API Restrictions - -According to deployment notes, the VirtFusion API token is restricted to: -- ✅ Create server -- ✅ Create user -- ✅ Authenticate user - -Ensure the token has appropriate permissions for these operations. - -## Troubleshooting - -### 404 Errors -- ❌ Using `/api/v1/servers` (old format) -- ✅ Use `/servers` (V6 format) - -### 400 Bad Request -- Check parameter names are camelCase (`packageId` not `package_id`) -- Ensure `userId` is an integer, not an email -- Verify `packageId` and `hypervisorId` exist in VirtFusion - -### 401 Unauthorized -- Verify `VIRTFUSION_API_TOKEN` is correct -- Check token has required permissions -- Ensure `Authorization: Bearer` header is included - -### Server Creation Fails -- Verify plan features include `virtfusion_package_id`, `virtfusion_user_id`, and `virtfusion_hypervisor_id` -- Check VirtFusion has available resources (RAM, storage, IP addresses) -- Review `provisioning_logs` table for detailed error messages - -## Related Documentation - -- VirtFusion Official Docs: https://docs.virtfusion.com/api/ -- OpenAPI Spec: `/virtfusion-api-spec.yaml` -- Project Integration: `CLAUDE.md` → Provisioning Services section diff --git a/VPS_CHECKOUT_ENHANCEMENT_2026-02-10.md b/VPS_CHECKOUT_ENHANCEMENT_2026-02-10.md deleted file mode 100644 index e6d24c2..0000000 --- a/VPS_CHECKOUT_ENHANCEMENT_2026-02-10.md +++ /dev/null @@ -1,211 +0,0 @@ -# VPS Checkout Enhancement - 2026-02-10 - -## Overview -Enhanced the VPS checkout flow with OS selection, SSH key configuration, and automatic server building. Created a premium ordering experience matching modern cloud platforms. - -## Frontend Changes - -### Enhanced Checkout Page (`resources/ts/Pages/Checkout/Show.vue`) - -**New Features:** -1. **Server Configuration Card** (VPS only) - - Operating System selection dropdown with 9 options: - - Ubuntu 24.04 LTS, 22.04 LTS, 20.04 LTS - - Debian 12, 11 - - AlmaLinux 9 - - Rocky Linux 9 - - CentOS Stream 9 - - Fedora 39 - - Each OS has an icon (Ubuntu, Debian, RedHat, Fedora) - -2. **Authentication Method Toggle** - - **Auto-Generated Password** (default): VirtFusion generates and emails password - - **SSH Key**: User pastes their SSH public key - - Smooth transitions between modes - - Helpful tooltips and documentation links - -3. **Configuration Preview** (Sidebar) - - Shows selected OS and auth method - - Updates in real-time - - Compact, professional display - -4. **Visual Enhancements** - - Premium card design with hover effects - - Purple theme gradient on primary button - - Smooth expand/collapse animations - - Professional icons throughout - - Enhanced spacing and typography - - Secure checkout badge at bottom - -## Backend Changes - -### 1. Checkout Controller (`app/Http/Controllers/Account/CheckoutController.php`) -```php -// Added validation for configuration -'configuration' => ['nullable', 'array'], -'configuration.os_template_id' => ['nullable', 'integer'], -'configuration.auth_method' => ['nullable', 'in:password,ssh'], -'configuration.ssh_key' => ['nullable', 'string', 'max:4096'], - -// Store configuration in session for provisioning -if ($request->has('configuration')) { - session(['subscription_config_'.$subscription->id => $request->input('configuration')]); -} -``` - -### 2. VirtFusion Service (`app/Services/Provisioning/VirtFusionService.php`) - -**New Build Step:** -After creating server and changing package, now automatically builds with: -- Selected OS template -- SSH key (if provided) -- Stores provisioning info in service record - -```php -// Build server with OS template and SSH key -$config = session('subscription_config_'.$subscription->id, []); -$templateId = $config['os_template_id'] ?? 1; // Default to Ubuntu 24.04 -$sshKey = $config['auth_method'] === 'ssh' && !empty($config['ssh_key']) ? $config['ssh_key'] : null; - -$buildPayload = ['templateId' => $templateId]; -if ($sshKey) { - $buildPayload['sshKeys'] = [$sshKey]; -} - -$buildResponse = $this->client()->post("/servers/{$serverId}/build", $buildPayload); -``` - -**Complete Provisioning Flow:** -1. Create server (package 43) -2. Change package to match plan specs -3. **Build server with selected OS + SSH key** -4. Send credentials email - -### 3. Subscription Cancellation (`app/Listeners/HandleSubscriptionCancelled.php`) - -**Added 5-Minute Grace Period:** -```php -// Wait 5 minutes before terminating services (grace period) -sleep(300); -``` - -This prevents accidental immediate termination and gives users time to reconsider. - -## User Experience Flow - -### Ordering VPS - -1. **Select Plan** → Navigate to checkout -2. **Configure Server**: - - Choose operating system from dropdown - - Select authentication method (password or SSH key) - - If SSH: paste public key with helpful instructions - - See live preview in sidebar -3. **Choose Payment Method** - - Stripe (saved cards) or PayPal - - Apply coupon if available -4. **Complete Order** - - Premium gradient button with security badge - - Processing state with loading indicator -5. **Provisioning** (background): - - Create VirtFusion user (if needed) - - Create server - - Change to correct package specs - - **Build with selected OS and SSH key** - - Email credentials to customer - -### Canceling Subscription - -1. Cancel subscription via dashboard -2. **5-minute grace period** before termination -3. Service terminated on VirtFusion -4. Service status updated to "terminated" -5. Cancellation notification sent - -## Configuration Storage - -- **Frontend → Backend**: Passed in `configuration` object -- **Backend → Session**: Stored temporarily during checkout -- **Session → Provisioning**: Read during VirtFusion provisioning -- **Service Record**: Final config saved to `provisioning_info` JSON field - -## VirtFusion API Calls - -### Complete Provisioning Sequence: -``` -POST /sanctum/csrf-cookie # Get CSRF token -GET /users?email={email} # Check if user exists -POST /users # Create user (if needed) -POST /servers # Create server (package 43) -POST /servers/{id}/changePackage # Change to plan specs -POST /servers/{id}/build # Build with OS + SSH key ← NEW -``` - -### Build Payload: -```json -{ - "templateId": 1, - "sshKeys": ["ssh-rsa AAAAB3NzaC1yc2E..."] // optional -} -``` - -## Database Schema - -### Services Table -- `provisioning_info` (JSON): Stores OS template ID and auth method -```json -{ - "os_template_id": 1, - "auth_method": "ssh" -} -``` - -### Provisioning Logs -New entries for `build` action: -- `provision` → `change_package` → **`build`** → complete - -## Testing - -1. ✅ Frontend builds without errors -2. ✅ Horizon restarted to reload code -3. ⏳ Create VPS subscription with: - - Ubuntu 24.04 + Password - - Debian 12 + SSH Key -4. ⏳ Verify VirtFusion server is actually built and installed -5. ⏳ Cancel subscription and verify 5-minute delay - -## Default Values - -- **Default OS**: Ubuntu 24.04 LTS (template ID 1) -- **Default Auth**: Auto-generated password -- **Grace Period**: 5 minutes (300 seconds) - -## Visual Design - -**Aesthetic**: Refined, professional cloud platform -- Clean card layout with subtle shadows -- Purple accent color (#7367F0) -- Smooth transitions and hover effects -- Professional icons (Material Design Icons) -- Monospace font for SSH key input -- Security badges and trust indicators -- Responsive layout (mobile-friendly) - -**Key Design Elements:** -- Server config card has purple top border -- OS dropdown with icons for each option -- Toggle button for auth method selection -- Expandable SSH key textarea -- Live configuration preview in sidebar -- Gradient on checkout button -- Secure checkout badge - -## Future Enhancements - -1. **Fetch Templates from VirtFusion API** (currently hardcoded) -2. **Show available templates per hypervisor** -3. **SSH key validation** (format checking) -4. **Multiple SSH keys** support -5. **Save SSH keys** to user profile for reuse -6. **OS logos** instead of generic icons -7. **Template descriptions** with tooltips diff --git a/VPS_PLAN_REBUILD_2026.md b/VPS_PLAN_REBUILD_2026.md deleted file mode 100644 index 5fe5beb..0000000 --- a/VPS_PLAN_REBUILD_2026.md +++ /dev/null @@ -1,2001 +0,0 @@ -# EZSCALE VPS PLAN REBUILD STRATEGY - 2026 - -**Strategic Analysis & Recommendations** - -*Prepared by: Senior Hosting Industry Strategist (20+ years VPS market experience)* -*Date: February 9, 2026* - ---- - -## EXECUTIVE SUMMARY - -After analyzing the 2026 budget VPS market, I'm recommending a **strategic pivot** for EZSCALE from a 9-tier "something for everyone" approach to a **focused 6-tier value lineup** that plays to our strengths: older but paid-off hardware, generous bandwidth, and competitive pricing in the $4-18 range. - -**Key Strategic Decisions:** - -1. **We CANNOT win on raw specs vs. Hetzner/Contabo** - they have newer hardware and economies of scale -2. **We CAN win on**: US presence (if applicable), better support, VirtFusion control panel, transparent bandwidth policies, and **relationship-driven service** -3. **Target market shift**: From "cheapest specs" to "best value for reliability-focused developers and small businesses" -4. **Profit margin target**: 35-40% (achievable with paid-off hardware) - ---- - -## TABLE OF CONTENTS - -1. [Market Research Findings](#market-research-findings) -2. [New VPS Plan Lineup](#new-vps-plan-lineup) -3. [Grandfathering Strategy](#grandfathering-strategy) -4. [Competitive Moat Strategy](#competitive-moat-strategy) -5. [Revenue Impact Analysis](#revenue-impact-analysis) -6. [Launch Strategy](#launch-strategy) -7. [Operational Considerations](#operational-considerations) -8. [Risks & Mitigation](#risks--mitigation) -9. [Next Steps](#next-steps) - ---- - -## MARKET RESEARCH FINDINGS - -### Budget VPS Market Overview (ServerHunter/LowEndBox) - -**Key Price Point Expectations (2026):** - -- **$2-3 range:** 1 vCore, 512MB-1GB RAM, 10-25GB storage, 500GB-1TB bandwidth -- **$4-5 range (SWEET SPOT):** 1-4 vCores, 2-8GB RAM, 25-75GB NVMe, 1-4TB bandwidth -- **$6-10 range:** 2-4 vCores, 4-16GB RAM, 40-200GB NVMe, 4-20TB bandwidth -- **$10-15 range:** 4-8 vCores, 16-32GB RAM, 200-400GB NVMe, 8-16TB bandwidth - -**Major Market Trends:** -- ✅ **NVMe is now standard** at $4+ price points in 2026 -- ✅ **RAM has become generous** - 8GB+ plans under $5/month are common -- ✅ **Bandwidth constraints loosening** - Many providers offer unlimited or very high allocations -- ✅ **European providers dominating value segment** - Hetzner, Netcup, Contabo, AlphaVPS offering best price/performance - -### Top Budget VPS Competitors (Detailed) - -#### Ultra-Budget Tier ($2-4/month) - -| Provider | Price | CPU | RAM | Storage | Bandwidth | Notes | -|----------|-------|-----|-----|---------|-----------|-------| -| **IONOS VPS XS** | $2/mo | 1 vCore | 1GB | 10GB NVMe | Unlimited | 1 Gbit/s, 99.99% uptime | -| **BuyVM Slice 512** | $2/mo | 1 vCore @ 3.5GHz+ | 512MB | 10GB SSD | Unmetered | KVM, block storage available | -| **Vultr Basic** | $2.50/mo | 1 vCPU | 1GB | 25GB SSD | 1TB | DDoS protection | -| **Vultr Regular** | $3.50/mo | 1 vCPU | 512MB | 10GB SSD | 500GB | Previous gen hardware | -| **AlphaVPS** | €2.99/mo (~$3.20) | 4 vCores | 2GB | 15GB SSD | 1TB | Dual Xeon E5, DDoS protection | - -#### Entry-Level Tier ($4-6/month) - -| Provider | Price | CPU | RAM | Storage | Bandwidth | Notes | -|----------|-------|-----|-----|---------|-----------|-------| -| **Hetzner CX22** | €3.79/mo (~$4) | 2 vCPUs | 4GB | 40GB SSD | 20TB (EU) / 1TB (US) | **BEST VALUE IN MARKET** | -| **IONOS VPS S** | $4/mo | 2 vCores | 2GB | 80GB NVMe | Unlimited | Dell Enterprise servers | -| **OVHcloud VPS 2026** | $4.20/mo | 4 vCores | 8GB | 75GB NVMe | 400Mbps guaranteed | Daily backups, anti-DDoS | -| **DigitalOcean Basic** | $4/mo | 1 vCore | 512MB | 10GB SSD | 500GB | Per-second billing | -| **Contabo VPS** | $4.95/mo | 4 Cores | 8GB | 50GB NVMe or 150GB SSD | Unlimited | **AGGRESSIVE PRICING** | -| **Vultr Regular** | $5/mo | 1 vCPU | 1GB | 25GB SSD | 1TB | Upgradeable to NVMe | -| **Linode/Akamai Shared** | $5/mo | 1 vCPU | 1GB | 25GB SSD | 1TB | 40 Gbps inbound | - -#### Mid-Budget Tier ($6-10/month) - -| Provider | Price | CPU | RAM | Storage | Bandwidth | Notes | -|----------|-------|-----|-----|---------|-----------|-------| -| **IONOS VPS M** | $6/mo | 2 vCores | 4GB | 80GB NVMe | Unlimited | 1 Gbit/s connection | -| **DigitalOcean Regular** | $6/mo | 1 vCore | 1GB | 25GB SSD | 1TB | Dedicated threads | -| **Hostinger KVM 2** | $6.99/mo | 2 vCPU | 8GB | 100GB NVMe | 8TB | Weekly backups | -| **Hetzner CPX21** | €9.49/mo (~$10) | 3 vCPUs | 4GB | 80GB NVMe | 2TB | AMD EPYC processors | -| **Hostinger KVM 4** | $9.99/mo | 4 vCPU | 16GB | 200GB NVMe | 16TB | Business-grade | - -### Major Provider Analysis - -#### Vultr -- **Entry:** $3.50-5 (1 vCPU, 0.5-1GB RAM, 10-25GB SSD, 0.5-1TB) -- **High Performance:** $6-12 (1 vCPU, 1-2GB RAM, 25-50GB NVMe, 2-3TB) -- **High Frequency:** $6-24 (1-2 vCPU, 1-4GB RAM, 32-128GB NVMe, 1-3TB, 3GHz+ CPUs) -- **Pricing Strategy:** Three tiers allow customers to choose between legacy pricing, modern hardware, or high-frequency CPUs - -#### DigitalOcean -- **Entry:** $4-8 (1 vCPU, 512MB-1GB RAM, 10-35GB, 500GB-1TB) -- **Mid-Range:** $12-24 (1-2 vCPU, 2-4GB RAM, 50-80GB, 2-4TB) -- **Dedicated CPU:** $36+ (2+ dedicated vCPUs, 4GB+ RAM) -- **Key Features:** Per-second billing (as of Jan 2026), excellent documentation, premium pricing -- **Cost per GB RAM:** $6-8 (expensive but reliable) - -#### Hetzner (VALUE KING) -- **CX22:** €3.79/$4 (2 vCPU, 4GB RAM, 40GB SSD, 20TB) - **Best overall value** -- **CPX21:** €9.49/$10 (3 vCPU, 4GB RAM, 80GB NVMe, 2TB) - **$2.51/GB RAM** -- **CCX13:** €12.49/$13.25 (2 dedicated vCPU, 8GB RAM, 80GB NVMe) - **Dedicated CPUs** -- **CX42:** €16.40/$17.40 (8 vCPU, 16GB RAM, 160GB SSD, 20TB) -- **Key Advantages:** Unbeatable price-to-performance, 10 Gbit networking, generous bandwidth (20TB in EU) -- **Limitations:** EU-centric (120ms+ latency from US), email-only support (24-48 hour response) - -#### Linode/Akamai -- **Shared CPU Entry:** $5 (Nanode: 1 vCPU, 1GB RAM, 25GB SSD, 1TB, 40 Gbps inbound) -- **Shared CPU Mid:** $12-24 (1-2 vCPU, 2-4GB RAM, 50-80GB, 2-4TB) -- **Dedicated CPU:** $36+ (2+ dedicated vCPUs, 4GB+ RAM, 80GB+, 4TB+) -- **Key Features:** Excellent network (40 Gbps inbound), proven stability, premium pricing -- **Best For:** Production workloads requiring reliable performance - -#### OVHcloud -- **VPS 2026 Entry:** $4.20 (4 vCores, 8GB RAM, 75GB NVMe, 400 Mbps guaranteed, unlimited bandwidth) -- **Key Advantages:** Most aggressive entry-level specs, unlimited traffic, daily backups included, anti-DDoS -- **Limitations:** Complex enterprise-focused panel, slower support - -### Competitive Analysis Summary - -**Best Overall Value:** -- 🥇 **Hetzner** - Unbeatable price-to-performance across all tiers, especially for European customers -- 🥈 **Contabo** - $4.95 for 8GB RAM is exceptional (but support complaints on LowEndBox) -- 🥉 **OVHcloud** - $4.20 for 4 vCores/8GB RAM with unlimited bandwidth - -**Best for Simplicity:** -- **DigitalOcean** - Clean pricing, excellent documentation, per-second billing - -**Best for Bandwidth:** -- **Hetzner** - 20TB on shared plans in EU -- **OVHcloud** - Truly unlimited bandwidth on all VPS 2026 plans -- **IONOS** - Unlimited bandwidth across all tiers - -**Best for Single-Core Performance:** -- **Vultr High Frequency** - 3GHz+ CPUs, 40% faster per vCPU - -**Best for Network Speed:** -- **Linode** - 40 Gbps inbound across all plans -- **DigitalOcean CPU-Optimized Premium** - Up to 10 Gbps outbound - ---- - -## MARKET POSITIONING ANALYSIS - -### The Brutal Truth About 2026 Budget VPS Market - -**Dominant Players We Cannot Beat on Specs:** -- **Hetzner**: €3.79 for 2vCPU/4GB RAM/40GB SSD/20TB - *impossible to beat on raw specs* -- **Contabo**: $4.95 for 4 cores/8GB RAM/50GB NVMe/unlimited BW - *loss-leader pricing* -- **OVHcloud**: $4.20 for 4vCores/8GB RAM/75GB NVMe - *vertically integrated, owns datacenters* - -These providers have: -- ✅ Newer hardware (AMD EPYC 9004 Genoa, Intel Xeon Scalable Sapphire Rapids) -- ✅ NVMe Gen5 storage -- ✅ Economies of scale (10,000+ servers) -- ✅ Vertical integration (own datacenters, network infrastructure) -- ✅ DDR5 RAM with higher bandwidth - -### Why EZSCALE Can Still Win - -**1. Geographic Advantage (if US-based)** -- Hetzner/OVH are EU-centric, latency matters for US customers -- Sub-50ms latency for US East/West Coast vs. 120ms+ to EU -- US timezone support (same business hours as customers) -- No GDPR complexity for US-only businesses - -**2. Support Quality** -- Budget providers have terrible support (LowEndBox forum is full of complaints) -- Hetzner: Email-only, 24-48 hour response times -- Contabo: Notorious for slow support, automated responses -- OVHcloud: Complex enterprise ticketing system, hard to reach humans -- **EZSCALE opportunity:** <2 hour average response time - -**3. VirtFusion Control Panel** -- Superior to custom panels used by budget providers -- Modern UI vs. clunky Hetzner/OVH panels -- One-click OS reinstalls, ISO mounting, built-in graphs -- API access for automation - -**4. Transparent Policies** -- No "fair use" unlimited bandwidth tricks -- Clear overage pricing vs. surprise suspensions -- No hidden traffic shaping - -**5. Relationship-Driven Service** -- We know our customers, we respond to tickets -- We're not a faceless corporation -- Active community engagement (Discord, LowEndBox, Reddit) - -### EZSCALE's Competitive Moat - -> **"Premium support and US infrastructure at budget prices - for developers who can't afford downtime"** - -**Target Customer Profile:** -- US-based developers and small businesses -- Value reliability over absolute cheapest price -- Need responsive support (can't wait 48 hours for ticket responses) -- Running production workloads (not just hobbyist projects) -- Willing to pay 10-20% premium for better service - -**What We're NOT:** -- Not the absolute cheapest (Hetzner will always win on price) -- Not enterprise-grade infrastructure (DigitalOcean/Linode win here) -- Not cutting-edge hardware (we have older but paid-off servers) - -**What We ARE:** -- Best VALUE in the US market (specs + support + price combined) -- Most responsive support in budget VPS segment -- Transparent and customer-friendly policies -- Relationship-driven hosting provider - ---- - -## NEW VPS PLAN LINEUP - -### Architecture Assumptions - -**Hardware:** -- Dell R620/R630 servers with E5-2670v2/E5-2680v4 CPUs (paid off) -- DDR3/DDR4 ECC RAM (cheap to max out older servers) -- SATA SSD (Samsung 860 EVO tier - $0.10/GB cost) -- 1Gbps uplinks, $2.50/TB bandwidth cost -- 25 VPS per server average (conservative, not oversold) -- Server cost: $125/month (amortized: power $40, cooling $15, DC space $50, network $20) - -**Cost Structure Per VPS:** -- Base cost: $125 / 25 = $5/VPS -- Bandwidth: Variable ($0.50-$3 depending on tier) -- Support overhead: $2/VPS (amortized across customer base) -- **Break-even**: ~$7.50/VPS average - -### THE NEW 6-TIER LINEUP - -| Plan | vCPU | RAM | Storage | Bandwidth | Price/Mo | Price/Yr | Margin | Hero | -|------|------|-----|---------|-----------|----------|----------|--------|------| -| **Starter** | 1 | 1GB | 20GB SSD | 2TB | **$3.95** | $42 (12% off) | 37% | ⭐ Ultra-Budget | -| **Value** | 2 | 2GB | 40GB SSD | 4TB | **$6.95** | $75 (10% off) | 48% | ⭐⭐ MAIN HERO | -| **Power** | 2 | 4GB | 60GB SSD | 6TB | **$10.95** | $120 (9% off) | 56% | - | -| **Performance** | 4 | 8GB | 100GB SSD | 8TB | **$16.95** | $185 (9% off) | 62% | ⭐ Power Users | -| **Ultimate** | 6 | 12GB | 160GB SSD | 10TB | **$24.95** | $275 (8% off) | 66% | - | -| **Enterprise** | 8 | 16GB | 240GB SSD | 12TB | **$34.95** | $385 (8% off) | 70% | - | - -### Detailed Plan Breakdown - ---- - -#### 🏆 STARTER - Ultra-Budget Entry ($3.95/mo) - -**Target Customer:** Developers, hobbyists, testing environments, single-site blogs - -**Specs:** -- 1 vCPU (E5-2670v2 core @ 2.5GHz) -- 1 GB RAM -- 20 GB SATA SSD -- 2 TB bandwidth @ 1Gbps -- 1 IPv4 + /64 IPv6 -- VirtFusion control panel -- KVM virtualization - -**Cost Structure:** -- Server share: $1.00 (1/25th of $25) -- Bandwidth: $0.50 (2TB × $0.25/TB) -- Storage: $0.20 (20GB × $0.01/GB) -- Support/overhead: $0.80 -- **Total cost: $2.50 → Margin: 37%** - -**Competitive Comparison:** -| Provider | Price | vCPU | RAM | Storage | Bandwidth | -|----------|-------|------|-----|---------|-----------| -| **EZSCALE Starter** | $3.95 | 1 | 1GB | 20GB SSD | 2TB | -| Vultr Regular | $3.50 | 1 | 512MB | 10GB SSD | 500GB | -| Hetzner CX11 | €4.15 (~$4.40) | 1 | 2GB | 20GB NVMe | 20TB | -| DigitalOcean | $4.00 | 1 | 512MB | 10GB SSD | 500GB | - -**Our Positioning:** -- vs. **Vultr $3.50**: We're $0.45 more but give DOUBLE the RAM (1GB vs 512MB) and 4x bandwidth -- vs. **Hetzner CX11**: We're cheaper but they have 2GB RAM and NVMe (we have SATA) -- vs. **DigitalOcean $4**: Nearly same price, we give 2GB more storage and 4x bandwidth -- **Our angle:** "Cheapest US-based VPS with real support and generous bandwidth" - -**Use Cases:** -- Personal blogs (WordPress, Ghost) -- Development/staging environments -- Learning Linux/Docker -- Discord/IRC bots -- Personal VPN -- Small Node.js/Python apps - ---- - -#### 🏆🏆 VALUE - Sweet Spot Plan ($6.95/mo) ⭐ PRIMARY HERO - -**Target Customer:** Small businesses, freelancers, production web apps, API servers - -**Specs:** -- 2 vCPU (E5-2670v2 cores @ 2.5GHz) -- 2 GB RAM -- 40 GB SATA SSD -- 4 TB bandwidth @ 1Gbps -- 1 IPv4 + /64 IPv6 -- VirtFusion control panel -- KVM virtualization - -**Cost Structure:** -- Server share: $1.00 -- Bandwidth: $1.00 -- Storage: $0.40 -- Support/overhead: $1.20 -- **Total cost: $3.60 → Margin: 48%** (intentionally high - this is our profit engine) - -**Competitive Comparison:** -| Provider | Price | vCPU | RAM | Storage | Bandwidth | -|----------|-------|------|-----|---------|-----------| -| **EZSCALE Value** | $6.95 | 2 | 2GB | 40GB SSD | 4TB | -| Hetzner CX22 | €3.79 (~$4) | 2 | 4GB | 40GB SSD | 20TB (EU) / 1TB (US) | -| DigitalOcean | $12.00 | 1 | 2GB | 50GB SSD | 2TB | -| Vultr High Perf | $6.00 | 1 | 1GB | 25GB NVMe | 2TB | -| Linode | $12.00 | 1 | 2GB | 50GB SSD | 2TB | - -**Our Positioning:** -- vs. **Hetzner CX22** ($4): They win on RAM (4GB vs 2GB) and EU bandwidth (20TB) BUT: - - We're US-based (lower latency for US customers) - - We have better support (<2hr vs 24-48hr) - - For US customers, Hetzner only gives 1TB bandwidth (we give 4TB) -- vs. **DigitalOcean $12**: We're HALF the price for similar specs -- vs. **Vultr $6**: Nearly identical price, but we include +1TB bandwidth and +1 vCPU -- **Our angle:** "Best value for US-based production workloads under $10" - -**Why This Is THE Hero Plan:** -1. **Price psychology**: Under $7 feels like a steal, over $10 feels expensive -2. **Sweet spot specs**: 2GB RAM runs most web apps (Node, PHP, Python, small databases) -3. **High margin**: This plan subsidizes Starter and funds support quality -4. **Upsell ready**: Easy to push to $10.95 Power plan when they hit RAM limits -5. **LowEndBox appeal**: Hits the perfect "value seeker" demographic - -**Use Cases:** -- Production websites (Laravel, Django, Rails apps) -- Small SaaS applications (under 1000 users) -- Database servers (MySQL, PostgreSQL, Redis) -- CI/CD runners (GitHub Actions, GitLab CI) -- VPN/proxy servers -- WordPress sites (5-10 sites with caching) -- API servers - ---- - -#### POWER - RAM Upgrade ($10.95/mo) - -**Target Customer:** Growing apps, multi-site hosting, heavier databases - -**Specs:** -- 2 vCPU (E5-2670v2 cores @ 2.5GHz) -- 4 GB RAM (← key upgrade from Value) -- 60 GB SATA SSD -- 6 TB bandwidth @ 1Gbps -- 1 IPv4 + /64 IPv6 -- VirtFusion control panel -- KVM virtualization - -**Cost Structure:** -- Server share: $1.20 -- Bandwidth: $1.50 -- Storage: $0.60 -- Support/overhead: $1.45 -- **Total cost: $4.75 → Margin: 56%** (excellent margin on older RAM) - -**Competitive Comparison:** -| Provider | Price | vCPU | RAM | Storage | Bandwidth | -|----------|-------|------|-----|---------|-----------| -| **EZSCALE Power** | $10.95 | 2 | 4GB | 60GB SSD | 6TB | -| Hetzner CX22 | €3.79 (~$4) | 2 | 4GB | 40GB SSD | 20TB (EU) / 1TB (US) | -| DigitalOcean | $12.00 | 1 | 2GB | 50GB SSD | 2TB | -| Linode | $12.00 | 1 | 2GB | 50GB SSD | 2TB | -| Hetzner CPX21 | €9.49 (~$10) | 3 | 4GB | 80GB NVMe | 2TB | - -**Our Positioning:** -- vs. **Hetzner CX22** ($4): They have same RAM for much less BUT we're US-based with better support -- vs. **DigitalOcean/Linode $12**: We're cheaper with DOUBLE the RAM (4GB vs 2GB) and better bandwidth -- vs. **Hetzner CPX21** ($10): Nearly identical price, they have NVMe and +1 vCPU, we have +4TB bandwidth -- **Our angle:** "When you need 4GB but don't want to pay $12+" - -**Strategic Note:** This plan competes with Hetzner's CX22 by offering US location + better support. We'll lose EU customers here but win US customers who value latency and support. - -**Use Cases:** -- Medium WordPress sites (10-20 sites) -- E-commerce stores (WooCommerce, Magento small) -- Node.js apps with higher memory needs -- Multiple Docker containers -- PostgreSQL/MySQL with larger datasets - ---- - -#### 🏆 PERFORMANCE - Power User Plan ($16.95/mo) ⭐ SECONDARY HERO - -**Target Customer:** SaaS platforms, busy ecommerce, multi-tenant apps, agencies - -**Specs:** -- 4 vCPU (E5-2670v2 cores @ 2.5GHz) -- 8 GB RAM -- 100 GB SATA SSD -- 8 TB bandwidth @ 1Gbps -- 1 IPv4 + /64 IPv6 -- VirtFusion control panel -- KVM virtualization - -**Cost Structure:** -- Server share: $1.50 -- Bandwidth: $2.00 -- Storage: $1.00 -- Support/overhead: $2.00 -- **Total cost: $6.50 → Margin: 62%** (premium margin justified by support needs) - -**Competitive Comparison:** -| Provider | Price | vCPU | RAM | Storage | Bandwidth | -|----------|-------|------|-----|---------|-----------| -| **EZSCALE Performance** | $16.95 | 4 | 8GB | 100GB SSD | 8TB | -| Hetzner CPX31 | €16.49 (~$17.50) | 4 | 8GB | 160GB NVMe | 3TB | -| DigitalOcean | $24.00 | 2 | 4GB | 80GB SSD | 4TB | -| Vultr High Perf | $24.00 | 2 | 4GB | 100GB NVMe | 5TB | -| Linode | $24.00 | 2 | 4GB | 80GB SSD | 4TB | - -**Our Positioning:** -- vs. **Hetzner CPX31** ($17.50): Nearly identical specs, they have NVMe and +60GB storage, we have +5TB bandwidth -- vs. **DigitalOcean/Vultr/Linode $24**: We're 30% cheaper for nearly identical or better specs -- **Our angle:** "Production-grade power without the $24/mo price tag" - -**Why This Is Secondary Hero:** -1. **High-value customers**: $17/mo customers stay longer, open fewer tickets per dollar -2. **Future upsells**: These customers buy multiple VPS, dedicated servers later -3. **Reference accounts**: Happy customers at this tier leave great reviews -4. **Margin**: 62% margin funds 24/7 support and infrastructure improvements -5. **LTV**: Average customer lifetime at this tier is 24+ months - -**Use Cases:** -- WooCommerce/Magento stores (high traffic) -- Multi-tenant SaaS (small scale, <5000 users) -- Game server control panels -- Media streaming (Plex, Jellyfin) -- Busy WordPress agencies (10+ sites) -- Kubernetes worker nodes -- Analytics platforms - ---- - -#### ULTIMATE - High-Density ($24.95/mo) - -**Target Customer:** Resource-intensive apps, small clusters, multi-service deployments - -**Specs:** -- 6 vCPU (E5-2670v2 cores @ 2.5GHz) -- 12 GB RAM -- 160 GB SATA SSD -- 10 TB bandwidth @ 1Gbps -- 1 IPv4 + /64 IPv6 -- VirtFusion control panel -- KVM virtualization - -**Cost Structure:** -- Server share: $2.00 -- Bandwidth: $2.50 -- Storage: $1.60 -- Support/overhead: $2.40 -- **Total cost: $8.50 → Margin: 66%** - -**Competitive Comparison:** -| Provider | Price | vCPU | RAM | Storage | Bandwidth | -|----------|-------|------|-----|---------|-----------| -| **EZSCALE Ultimate** | $24.95 | 6 | 12GB | 160GB SSD | 10TB | -| Hetzner CPX41 | €23.49 (~$24.75) | 8 | 16GB | 240GB NVMe | 4TB | -| DigitalOcean | $48.00 | 2 | 8GB | 160GB SSD | 5TB | -| Vultr | $48.00 | 4 | 8GB | 200GB NVMe | 6TB | - -**Our Positioning:** -- vs. **Hetzner CPX41** ($24.75): Nearly identical price, they have more RAM/CPU/storage, we have 2.5x bandwidth -- vs. **DigitalOcean/Vultr $48**: We're HALF PRICE for comparable or better specs -- **Our angle:** "Professional resources at prosumer prices" - -**Use Cases:** -- Large SaaS applications -- Multi-tenant platforms -- Data analytics workloads -- Multiple containerized services -- Development environments for teams - ---- - -#### ENTERPRISE - Maximum Power ($34.95/mo) - -**Target Customer:** Agencies, large databases, compute-heavy workloads - -**Specs:** -- 8 vCPU (E5-2670v2 cores @ 2.5GHz) -- 16 GB RAM -- 240 GB SATA SSD -- 12 TB bandwidth @ 1Gbps -- 1 IPv4 + /64 IPv6 -- VirtFusion control panel -- KVM virtualization -- Priority support - -**Cost Structure:** -- Server share: $2.50 -- Bandwidth: $3.00 -- Storage: $2.40 -- Support/overhead: $2.60 -- **Total cost: $10.50 → Margin: 70%** - -**Competitive Comparison:** -| Provider | Price | vCPU | RAM | Storage | Bandwidth | -|----------|-------|------|-----|---------|-----------| -| **EZSCALE Enterprise** | $34.95 | 8 | 16GB | 240GB SSD | 12TB | -| Hetzner CCX23 | €24.49 (~$25.95) | 4 ded. | 16GB | 160GB NVMe | - | -| Hetzner CPX51 | €37.49 (~$39.50) | 16 | 32GB | 360GB NVMe | 6TB | -| DigitalOcean | $96.00 | 4 | 16GB | 320GB SSD | 6TB | - -**Our Positioning:** -- vs. **Hetzner CCX23** ($25.95): We're more expensive but give double the vCPUs (8 vs 4 dedicated) -- vs. **Hetzner CPX51** ($39.50): We're cheaper but they have double RAM/CPU -- vs. **DigitalOcean $96**: We're 64% cheaper for same RAM, double vCPU, double bandwidth -- **Our angle:** "Enterprise specs without enterprise prices - gateway to dedicated servers" - -**Strategic Note:** This plan is designed to KEEP customers from leaving for dedicated servers too early. It's our "one more year on VPS" retention tool. - -**Use Cases:** -- Large agency hosting (50+ sites) -- Enterprise SaaS (small companies) -- High-traffic ecommerce -- Big data processing -- Machine learning training (CPU-based) -- Multi-service production environments - ---- - -## GRANDFATHERING STRATEGY & CUSTOMER MIGRATION - -### Philosophy: "Never Make a Customer Worse Off" - -The LowEndBox community has a LONG memory. Customers who feel screwed by a migration will: -1. Post on LowEndBox/WebHostingTalk (reputation damage for years) -2. File PayPal disputes -3. Churn immediately -4. Leave negative reviews on Trustpilot, Reddit, etc. - -**Our Approach:** Generous grandfathering + free upgrades where possible + 90-day transition period - ---- - -### Migration Matrix (Old Plans → New Plans) - -| Old Plan | Old Price | Old Specs | New Plan | New Price | Migration Type | Customer Impact | -|----------|-----------|-----------|----------|-----------|----------------|-----------------| -| **Micro VPS** | $4.20 | 1vCPU/1GB/25GB/2TB | **Starter** | $3.95 | **Price Cut + Storage Bonus** | Save $0.25/mo, KEEP 25GB (5GB bonus) ✅ | -| **Mini VPS** | $6.00 | 1vCPU/2GB/50GB/4TB | **Value** | $6.95 | **Grandfather at $6.00** | Same specs, locked at old price forever ✅ | -| **Dev Starter** | $8.00 | 2vCPU/2GB/60GB/4TB | **Value** | $6.95 | **Price Cut + Upgrade** | Save $1.05/mo, -20GB storage but same CPU/RAM ✅ | -| **Basic VPS** | $12.00 | 2vCPU/4GB/80GB/6TB | **Power** | $10.95 | **Price Cut + Upgrade** | Save $1.05/mo, -20GB storage, same bandwidth ⚠️ | -| **Storage Box** | $15.00 | 2vCPU/2GB/500GB/8TB | **CUSTOM** | $15.00 | **Grandfather (no new plan)** | Keep exact specs, no new signups for this plan 🔒 | -| **Standard VPS** | $15.60 | 4vCPU/8GB/160GB/8TB | **Performance** | $16.95 | **Grandfather at $15.60** | Same specs, locked price forever ✅ | -| **RAM Optimized** | $19.00 | 4vCPU/16GB/240GB/10TB | **CUSTOM** | $19.00 | **Grandfather (no new plan)** | Keep exact specs, considered for dedicated upgrade 🔒 | -| **Advanced VPS** | $21.60 | 6vCPU/16GB/320GB/10TB | **Ultimate** + Storage | $24.95 | **Grandfather at $21.60 OR Dedicated** | Locked price, or offer dedicated upgrade ✅ | -| **Pro VPS** | $30.00 | 8vCPU/32GB/640GB/16TB | **DEDICATED UPGRADE** | $44.39 | **Migrate to Dell R330 Dedicated** | Offer dedicated server at $44.39 (+$14 for real hardware) 🚀 | - -### Migration Categories - -#### ✅ Category A: Free Upgrades (40% of customers estimated) -**Plans:** Micro, Dev Starter, Basic VPS - -**Customer Impact:** POSITIVE - They get better value at same or lower price - -**Action:** -- Email: "Good news! We're upgrading your plan at no cost" -- Automatically migrate to new plan after 30 days notice -- Highlight: "You're now on our new infrastructure with better performance" -- Allow opt-out if they prefer (but why would they?) - -**Timeline:** 30 days notice, auto-migrate - -**Email Template:** -``` -Subject: You're Getting a Free Upgrade! 🎉 - -Hi [Name], - -Great news! We're rebuilding our VPS lineup with better value, -and your [Old Plan] is getting a FREE upgrade to our new [New Plan]. - -What's changing: -✅ Same or better specs -✅ Lower price: $[New Price]/mo (was $[Old Price]) -✅ Improved infrastructure -✅ No action needed - we'll migrate you automatically on [Date] - -Your new plan: [New Plan Name] -- [vCPU] vCPU cores -- [RAM]GB RAM -- [Storage]GB SATA SSD storage -- [Bandwidth]TB bandwidth -- VirtFusion control panel - -Migration date: [30 days from now] -Downtime: <5 minutes (we'll notify you 24 hours in advance) - -Don't want the upgrade? Reply to this email and we'll keep you on your current plan. - -Questions? Reply to this email or open a ticket. - -Thanks for being an EZSCALE customer! - --- The EZSCALE Team -``` - ---- - -#### ✅ Category B: Grandfathered Pricing (35% of customers estimated) -**Plans:** Mini VPS, Standard VPS, Advanced VPS - -**Customer Impact:** PROTECTED - They keep same specs at same price forever - -**Action:** -- Keep exact same specs -- Lock pricing at old rate forever (or until they voluntarily cancel/change plans) -- Add "Grandfathered" tag in VirtFusion billing system -- Never auto-migrate - these customers keep their plan indefinitely -- If they cancel, they CANNOT return to this plan (it's retired) - -**Communication:** -``` -Subject: Your Plan is Now "Grandfathered" - Pricing Locked Forever - -Hi [Name], - -We're updating our VPS plans, but don't worry - your pricing is -LOCKED IN at your current rate forever. - -Your plan: [Plan Name] - $[Price]/mo -Status: Grandfathered (pricing protected) - -What this means: -✅ Same specs, same price -✅ Price will NEVER increase (as long as you stay on this plan) -✅ You can upgrade to new plans anytime (see options below) -⚠️ If you cancel or downgrade, you CANNOT return to this plan - -No action needed. Your service continues uninterrupted. - -New plan options (if you want to upgrade): -- [List new plans with brief descriptions] - -Questions? Reply to this email. - -Thanks for being a loyal EZSCALE customer! - --- The EZSCALE Team -``` - ---- - -#### 🔒 Category C: Custom/Legacy Plans (15% of customers estimated) -**Plans:** Storage Box (500GB), RAM Optimized (16GB) - -**Customer Impact:** PROTECTED - Keep exact specs, plan retired for new signups - -**Action:** -- These are specialty plans with no direct equivalent in new lineup -- Keep them active, grandfather ALL customers on these plans -- Mark as "Legacy - No New Signups" in VirtFusion -- Monitor for dedicated server upgrade opportunities (especially RAM Optimized customers) - -**Reasoning:** Storage Box (500GB SSD) and RAM Optimized (16GB at 4 vCPU) customers have specialized needs. Don't force them into plans that don't fit. These are profitable plans anyway (high margins on older hardware). - -**Communication:** -``` -Subject: Your Specialized Plan is Protected (No Changes) - -Hi [Name], - -We're updating our VPS lineup, but your specialized plan is staying exactly as-is. - -Your plan: [Plan Name] - $[Price]/mo -Status: Legacy (protected, no new signups) - -What this means: -✅ Zero changes to your service -✅ Same specs, same price -✅ Plan is retired for new customers (you're protected) -✅ You can upgrade to new plans anytime if your needs change - -We're also offering dedicated servers now. If you're interested in -upgrading to dedicated hardware (full server, no neighbors), reply -and we'll send you options. - -No action needed. Your service continues uninterrupted. - --- The EZSCALE Team -``` - ---- - -#### 🚀 Category D: Dedicated Server Upgrade Path (10% of customers estimated) -**Plans:** Pro VPS ($30/mo with 8vCPU/32GB RAM/640GB) - -**Customer Impact:** UPSELL OPPORTUNITY - They've outgrown VPS - -**Action:** -- These customers are outgrowing VPS (need 32GB RAM, 640GB storage) -- Offer Dell R330 dedicated server at $44.39/mo (only $14.39 more per month) -- Highlight: "Real hardware, no neighbors, full control, 4 drive bays, IPMI access" -- Incentive: First month 50% off ($22.20) to try dedicated with no risk -- Alternative: Can grandfather them on Pro VPS if they want to stay - -**Email Template:** -``` -Subject: You've Outgrown VPS - Ready for Dedicated Hardware? - -Hi [Name], - -You're on our highest-tier VPS ($30/mo), which means you're -running serious workloads. Have you considered dedicated servers? - -Your current VPS: 8 vCPU, 32GB RAM, 640GB storage (shared hardware) - -Dedicated upgrade: Dell R330 -- 4 physical cores (E3-1230v6 @ 3.5GHz) -- 16GB DDR4 ECC RAM (upgradable to 64GB) -- 4x drive bays (we can match your 640GB or give you more) -- 1Gbps dedicated port -- IPMI remote management -- NO NEIGHBORS - all resources are yours - -Price: $44.39/mo (only $14 more than your current VPS) - -🎁 Limited offer: 50% off first month ($22.20) - try it risk-free - -Why upgrade to dedicated? -✅ Guaranteed performance (no noisy neighbors) -✅ Full hardware control (custom kernel, direct hardware access) -✅ Room to grow (upgrade RAM/storage anytime) -✅ Better for databases, high-traffic sites, resource-intensive apps - -Interested? Reply and we'll help you migrate (we handle everything). - -Not ready yet? No problem - we can keep you on Pro VPS as a -grandfathered plan (same specs, same price, locked in forever). - --- The EZSCALE Team -``` - ---- - -### Migration Timeline - -| Day | Action | Affected Customers | -|-----|--------|-------------------| -| **Day 0 (Today)** | Announce new plans publicly; Launch new plans for new signups | All | -| **Day 1** | Send Category A emails (free upgrades) | 40% | -| **Day 2** | Send Category B emails (grandfathering) | 35% | -| **Day 7** | Send Category C emails (custom plans) | 15% | -| **Day 14** | Follow-up email to Category A (reminder of upcoming migration) | 40% | -| **Day 30** | Auto-migrate Category A customers (free upgrades) | 40% | -| **Day 30** | Send Category D emails (dedicated upgrade offers) | 10% | -| **Day 60** | Follow up with Category D non-responders | 10% | -| **Day 90** | Final migration complete; All new signups on new 6-tier system | All | -| **Day 90+** | Legacy plans marked "No new signups" in system | N/A | - ---- - -## COMPETITIVE MOAT STRATEGY - -### The Harsh Reality - -**We cannot out-spec Hetzner, Contabo, or OVHcloud.** They have: -- Newer hardware (AMD EPYC, Intel Xeon Scalable) -- NVMe Gen5 storage (6-10x faster than our SATA SSDs) -- Economies of scale (10,000+ servers vs. our 6-10) -- Vertical integration (own datacenters, network) -- Lower costs per GB RAM, per TB storage - -**If we compete on specs alone, we will lose.** - -### What We CAN Do Better - ---- - -#### 1️⃣ SUPPORT QUALITY (Primary Moat) - -**Budget provider support is TERRIBLE** (verified on LowEndBox forums): - -| Provider | Avg Response Time | Support Channels | Customer Complaints | -|----------|-------------------|------------------|---------------------| -| Hetzner | 24-48 hours | Email only | "Slow, generic responses" | -| Contabo | 48-72 hours | Email only | "Worst support in industry" | -| OVHcloud | 24+ hours | Ticketing system | "Complex, hard to reach humans" | -| DigitalOcean | 4-12 hours | Email, chat (paid) | "Good but expensive" | -| **EZSCALE (Target)** | **<2 hours** | **Email, tickets, phone (Performance+)** | **Goal: "Best in budget segment"** | - -**EZSCALE's Support Promise:** - -- ✅ **Average ticket response: <2 hours** (vs. 24-48 hours for competitors) - - Measure: 90th percentile response time < 4 hours - - Track in ticket system dashboard - - Monthly reports to customers - -- ✅ **Phone support available** (US business hours for Performance+ plans) - - Dedicated phone line: (XXX) XXX-XXXX - - Voicemail with <4 hour callback guarantee - - Escalation path for emergencies - -- ✅ **Discord community** (customers can help each other, we're active) - - Create EZSCALE Discord server - - Channels: #general, #support, #status, #announcements - - Staff presence: Check every 2-4 hours during business hours - - Peer-to-peer support reduces ticket volume - -- ✅ **Migration assistance** (we help you move from competitors - white glove service) - - Free migration from any competitor - - We handle: data transfer, DNS updates, testing - - Dedicated migration specialist - - 30-day money-back if not satisfied - -- ✅ **Proactive monitoring** (we notify you before you notice issues) - - Monitor: CPU, RAM, disk, network every 5 minutes - - Alert thresholds: CPU >80% for 15min, RAM >90%, disk >85% - - Email + SMS alerts (opt-in) - - "Your MySQL is using 85% RAM - need an upgrade?" emails - -**Marketing Angle:** -> "When your site is down at 2am, you don't want to wait 48 hours for an email response. EZSCALE averages <2 hour ticket responses, every day." - -**Implementation:** -- Hire first support tech at 150 customers ($3,500/month) -- Use ticket system with SLA tracking -- Monthly "Support Report Card" emails to customers -- Public status page (status.ezscale.cloud) - ---- - -#### 2️⃣ US PRESENCE (Geographic Moat) - -**If EZSCALE is US-based**, this is a MASSIVE advantage: - -**Competitor Locations:** -- Hetzner: Germany (Falkenstein, Nuremberg), Finland (Helsinki), USA (Ashburn, VA + Hillsboro, OR) - - US locations available BUT 20% price premium + only 1TB bandwidth vs 20TB in EU -- OVHcloud: France, Canada, some US (but EU-focused) -- Contabo: Germany, USA (St. Louis, Seattle, New York) -- DigitalOcean/Vultr: US-based but expensive - -**Latency Comparison (from New York City):** - -| Provider | Location | Latency (ms) | Impact | -|----------|----------|--------------|--------| -| EZSCALE (US East) | Virginia | 5-15ms | Excellent for US customers | -| Hetzner US | Ashburn, VA | 10-20ms | Good, but expensive (+20% price) | -| Hetzner EU | Germany | 80-120ms | Poor for real-time apps | -| OVHcloud US | Virginia | 10-20ms | Good | -| OVHcloud EU | France | 75-100ms | Poor for US customers | -| Contabo US | St. Louis | 30-50ms | Moderate | - -**Value Proposition for US Customers:** -- **Sub-50ms latency** for US East/West Coast customers -- **US-based support team** (same timezone, understands US business hours) -- **GDPR-free** (no EU data privacy complexity for US-only businesses) -- **Payment options**: ACH, US credit cards, PayPal (easier than SEPA for US customers) -- **US data residency** (some industries require US-based data) - -**Marketing Angle:** -> "Hetzner's €3.79 plan looks great until you see 120ms latency from New York. EZSCALE gives you US-based VPS at European prices." - -**Implementation:** -- Emphasize US location in all marketing -- Show latency comparison charts on website -- Offer latency test tool (ping.ezscale.cloud) -- Target US-focused forums/communities - ---- - -#### 3️⃣ VIRTFUSION CONTROL PANEL (UX Moat) - -**Budget providers use inferior control panels:** - -| Provider | Control Panel | User Experience | -|----------|---------------|-----------------| -| Hetzner | Custom "Hetzner Cloud Console" | Basic, clunky, missing features | -| Contabo | VNC-only access + basic panel | Minimal controls, frustrating | -| OVHcloud | Custom "OVH Manager" | Complex, enterprise-focused, overwhelming | -| **EZSCALE** | **VirtFusion** | **Modern, intuitive, feature-rich** | - -**VirtFusion Advantages:** -- ✅ Modern UI (better UX than cPanel/Plesk for VPS management) -- ✅ One-click OS reinstalls (Ubuntu, Debian, CentOS, Rocky, Arch, etc.) -- ✅ ISO mounting for custom OSs -- ✅ Built-in graphs (bandwidth, CPU, RAM usage - real-time) -- ✅ API access for automation (create/delete/resize VPS programmatically) -- ✅ Firewall management (GUI-based) -- ✅ Snapshot management -- ✅ Reverse DNS (PTR) management -- ✅ Network graphs and diagnostics -- ✅ Serial console access (when SSH fails) - -**Marketing Angle:** -> "Manage your VPS like a pro with VirtFusion - the control panel budget providers wish they had." - -**Screenshots for Website:** -- VirtFusion dashboard (clean, modern UI) -- One-click OS reinstall screen -- Real-time resource graphs -- Compare side-by-side with Hetzner's basic panel - ---- - -#### 4️⃣ TRANSPARENT BANDWIDTH POLICIES (Trust Moat) - -**Budget provider tricks** (documented on LowEndBox): - -| Provider | Advertised | Reality (Fine Print) | -|----------|-----------|---------------------| -| Contabo | "Unlimited" bandwidth | Fair-use policy, traffic shaping after heavy usage | -| OVHcloud | "Unlimited" | Throttles to 10 Mbps after 1TB (on some plans) | -| Hetzner | 20TB in EU, 1TB in US | Traffic shaping during peak hours reported by users | - -**EZSCALE's Policy (100% Transparent):** - -1. **No traffic shaping**: - - 1Gbps port, use it all month at full speed - - No "peak hour" throttling - - No "fair use" policies - -2. **Clear overages**: - - After included bandwidth: $2.50/TB (billed per GB) - - Email alerts at 75%, 90%, 100% usage - - Dashboard shows usage in real-time - - Never surprise suspensions - -3. **No "fair use" BS**: - - If we say 4TB, we mean 4TB at full 1Gbps speed - - Publicly document: "You can use your full allocation 24/7" - - No asterisks, no fine print - -4. **Bandwidth rollover** (Loyalty Perk): - - Unused bandwidth rolls over for 1 month - - Example: Use 2TB out of 4TB? Bank 2TB for next month (total 6TB available) - - Builds loyalty, encourages annual payments - -**Marketing Angle:** -> "No hidden 'fair use' policies. No traffic shaping. No surprise suspensions. Your bandwidth is YOURS." - -**Implementation:** -- Document bandwidth policy in TOS (plain English) -- Add bandwidth FAQ page -- Monthly "Bandwidth Report" emails showing usage -- Rollover clearly shown in VirtFusion dashboard - ---- - -#### 5️⃣ RELATIONSHIP-DRIVEN SERVICE (Loyalty Moat) - -**LowEndBox customers are cynical** - they've been burned by: -- Bait-and-switch pricing (cheap first year, then price hikes) -- Sudden TOS changes (unlimited → limited overnight) -- Providers going bankrupt (ColoCrossing drama, ChicagoVPS, etc.) -- Oversold servers (512MB VPS getting 100MB usable RAM) - -**EZSCALE's Trust Builders:** - -1. **Founder visibility**: - - Active on LowEndBox (respond to comments on our offers) - - Monthly AMA on Reddit r/selfhosted - - Transparent about who we are (not hiding behind LLC) - -2. **Transparent financials**: - - "We're profitable and not going anywhere" messaging - - Annual transparency report (# of servers, customers, uptime stats) - - No VC funding = no pressure to over-promise - -3. **No overselling**: - - Cap VPS density at 25/server (vs. 50-100 for competitors) - - Publicly commit: "We limit to 25 VPS per server for guaranteed performance" - - Show server load averages in monthly transparency report - -4. **Grandfathering respect**: - - Never force customers off old plans (see migration strategy above) - - Honor lifetime/grandfathered pricing forever - - "We've never raised prices on existing customers" badge - -5. **Community engagement**: - - Monthly "office hours" on Discord (1st Friday of month, 2-4pm ET) - - Founder answers questions live - - Feature voting (customers vote on next features to build) - - Beta testing program (opt-in for early access to new features) - -**Marketing Angle:** -> "We're not a faceless corporation. We're hosting nerds who actually care about uptime." - -**Implementation:** -- Create Discord server with active staff presence -- Monthly blog posts with transparency updates -- Feature roadmap publicly visible (Trello board?) -- Customer advisory board (invite top 10 customers to quarterly calls) - ---- - -## REVENUE IMPACT ANALYSIS - -### Assumptions - -**Current State:** -- 100 customers spread across 9 old plans -- Estimated current MRR: $1,254.80 (weighted average across old plans) -- Average customer lifetime: 18 months -- Churn rate: ~5% per month (industry standard for budget VPS) - -**Future State:** -- Same 100 existing customers (migrated to new plans) -- New customer acquisition: 20 new signups/month (conservative) -- Improved retention: 3% churn (better support → lower churn) - -### Customer Distribution Estimate - -Based on typical budget VPS customer distribution patterns: - -| Old Plan | Est. Customers | Current MRR | New Plan | New MRR | Delta MRR | -|----------|----------------|-------------|----------|---------|-----------| -| Micro ($4.20) | 15 | $63.00 | Starter ($3.95) | $59.25 | -$3.75 | -| Mini ($6) | 10 | $60.00 | Value ($6 GF) | $60.00 | $0.00 | -| Dev Starter ($8) | 12 | $96.00 | Value ($6.95) | $83.40 | -$12.60 | -| Basic ($12) | 18 | $216.00 | Power ($10.95) | $197.10 | -$18.90 | -| Storage Box ($15) | 8 | $120.00 | Legacy (GF) | $120.00 | $0.00 | -| Standard ($15.60) | 20 | $312.00 | Performance ($15.60 GF) | $312.00 | $0.00 | -| RAM Optimized ($19) | 5 | $95.00 | Legacy (GF) | $95.00 | $0.00 | -| Advanced ($21.60) | 8 | $172.80 | Ultimate ($21.60 GF) | $172.80 | $0.00 | -| Pro ($30) | 4 | $120.00 | Dedicated ($44.39) | $177.56 | +$57.56 | -| **TOTAL** | **100** | **$1,254.80** | - | **$1,277.11** | **+$22.31** | - -**Analysis:** -- Net MRR change: **+$22.31/month (+1.8%)** -- Customer satisfaction: **HIGH** (40% get free upgrades, 35% get price protection) -- Churn risk: **LOW** (only Pro VPS customers face pressure, but dedicated upgrade is compelling) -- Revenue-neutral migration proves we're customer-first - -### New Customer Revenue Projection - -**Expected Distribution** (based on market research + hero plan positioning): - -| Plan | % of New Signups | Signups/Month | MRR per Signup | Monthly MRR | Annual ARR | -|------|------------------|---------------|----------------|-------------|------------| -| Starter ($3.95) | 30% | 6 | $3.95 | $23.70 | $284.40 | -| **Value ($6.95)** | **40%** | **8** | **$6.95** | **$55.60** | **$667.20** | -| Power ($10.95) | 15% | 3 | $10.95 | $32.85 | $394.20 | -| **Performance ($16.95)** | **10%** | **2** | **$16.95** | **$33.90** | **$406.80** | -| Ultimate ($24.95) | 3% | 0.6 | $24.95 | $14.97 | $179.64 | -| Enterprise ($34.95) | 2% | 0.4 | $34.95 | $13.98 | $167.76 | -| **TOTAL** | **100%** | **20** | **Avg: $8.75** | **$175.00** | **$2,100.00** | - -**Key Insights:** -- 70% of new customers choose our 2 hero plans (Value + Performance) ← **This is the goal** -- Average revenue per new customer: $8.75/month -- New customer MRR: $175/month -- New customer ARR: $2,100/year - -### 12-Month Revenue Projection - -**Month-by-Month Growth:** - -| Month | Existing Customers MRR | New Customers Added | New Customer MRR | Total MRR | Cumulative ARR | -|-------|------------------------|---------------------|------------------|-----------|----------------| -| 1 | $1,277 | 20 | $175 | $1,452 | $17,424 | -| 2 | $1,277 | 20 | $350 | $1,627 | $19,524 | -| 3 | $1,277 | 20 | $525 | $1,802 | $21,624 | -| 6 | $1,277 | 20 | $1,050 | $2,327 | $27,924 | -| 12 | $1,277 | 20 | $2,100 | $3,377 | $40,524 | - -**Assumptions:** -- 3% monthly churn on new customers (offset by 20 new signups) -- Existing customers: 1% churn (grandfathering creates loyalty) -- No upsells included (conservative) - -**Year 1 Summary:** - -| Metric | Current | Year 1 End | Growth | -|--------|---------|------------|--------| -| Total Customers | 100 | 306 | +206 (+206%) | -| MRR | $1,255 | $3,377 | +$2,122 (+169%) | -| ARR | $15,060 | $40,524 | +$25,464 (+169%) | - -**Key Insight:** Revenue growth comes from NEW CUSTOMER ACQUISITION with optimized plans, not from squeezing existing customers. This is sustainable growth. - -### Upsell Opportunities (Not Included in Base Projection) - -**Additional revenue streams:** - -1. **Plan upgrades** (10% of customers per year): - - Starter → Value: $3/month × 10 customers = $30/month - - Value → Power: $4/month × 10 customers = $40/month - - Power → Performance: $6/month × 15 customers = $90/month - - **Total upsell MRR: ~$160/month = $1,920/year** - -2. **Add-ons** (future): - - Additional IP addresses: $3/month - - Automated backups: $5/month - - cPanel/Plesk license: $15/month - - DDoS protection: $10/month - - **Potential: $5-10/customer/month** - -3. **Dedicated server conversions**: - - 5% of Performance customers upgrade to dedicated per year - - 306 customers × 10% on Performance tier = 30 customers - - 30 × 5% = 1.5 dedicated sales/year - - Dedicated at $44.39/month = $66/month = $800/year - -**Total Potential Year 1 ARR with Upsells:** $40,524 + $1,920 + $800 = **$43,244** - ---- - -## LAUNCH STRATEGY & PROMOTIONAL PRICING - -### Phase 1: Soft Launch (Week 1-2) - -**Goal:** Validate pricing, get feedback from existing customers, test infrastructure - -**Tactics:** -1. **Announce new plans via email** to existing customers - - Subject: "New EZSCALE VPS Plans - Better Value, Same Great Service" - - Include: Plan comparison table, migration timeline, FAQ - - CTA: "Try our new plans with 20% off first month" - -2. **Offer early access** to new plans with 20% discount - - Existing customers only - - Code: `EARLYBIRD20` - - Valid for 14 days - - Applies to first month only - -3. **Monitor signup distribution** - - Are people choosing our hero plans? (Value + Performance) - - Which plans are underperforming? - - Adjust pricing if needed before public launch - -4. **Collect feedback via survey** - - Email survey to all customers who try new plans - - Questions: "What made you choose this plan?", "How do we compare to competitors?", "What features matter most?" - - Incentive: $5 account credit for completing survey - -**Success Metrics:** -- ✅ 30%+ of existing customers try new plans (engagement) -- ✅ 50%+ of new signups choose Value or Performance (hero plan validation) -- ✅ <5% churn from migration announcements (customer satisfaction) -- ✅ No infrastructure issues (can handle load) - ---- - -### Phase 2: LowEndBox Launch (Week 3-4) - -**Goal:** Acquire 100-300 new customers from LowEndBox community, establish market presence - -**Tactics:** - -1. **Post on LowEndBox with limited-time offer** - -**Promo Pricing** (Code: `LEB2026`): -- Starter: **$2.95/mo** for first 3 months (vs. $3.95 regular) -- Value: **$4.95/mo** for first 3 months (vs. $6.95 regular) -- Performance: **$12.95/mo** for first 3 months (vs. $16.95 regular) - -**LowEndBox Post Template:** - -```markdown -[EZSCALE] US-Based VPS with Premium Support at Budget Prices | Starting $2.95/mo -────────────────────────────────────────────────────────────────────────────── - -Tired of waiting 48 hours for support responses? EZSCALE delivers -budget VPS specs with <2 hour ticket responses and VirtFusion control panel. - -🎯 LIMITED LAUNCH OFFER (Code: LEB2026) -├─ Starter: $2.95/mo for first 3 months (1 vCPU, 1GB RAM, 20GB SSD, 2TB BW) -├─ Value: $4.95/mo for first 3 months (2 vCPU, 2GB RAM, 40GB SSD, 4TB BW) -└─ Performance: $12.95/mo for first 3 months (4 vCPU, 8GB RAM, 100GB SSD, 8TB BW) - -After 3 months: $3.95, $6.95, $16.95 respectively - -✅ VirtFusion control panel (modern UI, one-click OS reinstalls, API access) -✅ <2 hour average ticket response time (we track this publicly) -✅ No traffic shaping or "fair use" caps - your bandwidth is yours -✅ US-based infrastructure (Virginia datacenter, <15ms from NYC) -✅ KVM virtualization (full virtualization, custom kernels supported) -✅ 30-day money-back guarantee (no questions asked) - -📍 Location: Ashburn, Virginia (US East) -🔧 Network: 1Gbps ports, Premium Tier 1 bandwidth -💳 Payment: PayPal, Stripe (Visa/MC/Amex), Bitcoin accepted -📊 Uptime: 99.9% SLA with public status page - -FULL PLAN LINEUP: -┌─────────────┬──────┬─────┬─────────┬──────────┬──────────┐ -│ Plan │ vCPU │ RAM │ Storage │ Bandwidth│ Price/Mo │ -├─────────────┼──────┼─────┼─────────┼──────────┼──────────┤ -│ Starter │ 1 │ 1GB │ 20GB │ 2TB │ $3.95 │ -│ Value │ 2 │ 2GB │ 40GB │ 4TB │ $6.95 │ -│ Power │ 2 │ 4GB │ 60GB │ 6TB │ $10.95 │ -│ Performance │ 4 │ 8GB │ 100GB │ 8TB │ $16.95 │ -│ Ultimate │ 6 │12GB │ 160GB │ 10TB │ $24.95 │ -│ Enterprise │ 8 │16GB │ 240GB │ 12TB │ $34.95 │ -└─────────────┴──────┴─────┴─────────┴──────────┴──────────┘ - -🆚 WHY EZSCALE OVER HETZNER/CONTABO? -• Hetzner CX22 is €3.79 for 4GB BUT: 120ms latency from US, 24-48hr support -• Contabo is $4.95 for 8GB BUT: Notorious support quality, traffic shaping -• We're US-based with responsive support - choose reliability over cheapest specs - -[ORDER NOW] → https://ezscale.cloud/vps?promo=LEB2026 - -🎁 BONUS: Free migration assistance from any competitor (we handle everything) - -────────────────────────────────────────────────────────────────────────────── -ABOUT US: -We're a small team of hosting nerds who got tired of terrible support in the -budget VPS market. We run older but paid-off hardware (Dell R620s with E5-2670v2 -CPUs and SATA SSDs), which lets us offer US-based hosting at competitive prices -while actually responding to tickets in under 2 hours. - -We're not going to beat Hetzner on raw specs. But when your site goes down at -2am and you need help NOW, we'll be there. - -AMA below - I'll answer questions about infrastructure, support, network, etc. - -Offer valid through [2 weeks from post date]. Limited to first 200 signups. -``` - -2. **Founder AMA on LowEndBox thread** - - Answer ALL questions within 2 hours (prove our support claim) - - Be transparent about hardware (older servers, SATA SSDs) - - Highlight moats (support, US location, VirtFusion, bandwidth) - - Engage with competitors' customers (offer migration) - -3. **Track with unique promo code** - - `LEB2026` tracks conversions from LowEndBox - - Measure: signup rate, plan distribution, churn after 3 months - -**Expected Results:** -- 150-300 signups in first month (conservative estimate) -- 40-60% choose Value plan (our highest-margin hero) -- 100+ comments on LowEndBox thread (community engagement) -- 5-10 comparison posts on Reddit/forums (word-of-mouth) - -**Budget:** -- LowEndBox post: FREE (organic) -- Promotional discount cost: $2-4/customer for 3 months = $600-1200 total -- Expected revenue: 200 customers × $8 avg × 12 months = $19,200 ARR -- **ROI: 15-30x** - ---- - -### Phase 3: Sustained Growth (Month 2+) - -**Goal:** Build sustainable acquisition channels beyond LowEndBox - -**Marketing Channels:** - -1. **SEO (Organic Search)** - - Target keywords: "cheap VPS USA", "budget VPS hosting", "VirtFusion VPS", "Hetzner alternative US" - - Content: Comparison pages (EZSCALE vs Hetzner, vs DigitalOcean, vs Vultr) - - Blog: "How to Choose a VPS Provider", "VPS vs Shared Hosting", "Why US-based VPS Matters" - - Timeline: 3-6 months to rank - - Cost: $0 (DIY) or $500-1000/month (agency) - -2. **Reddit (Community Engagement)** - - Subreddits: r/selfhosted (500k members), r/homelab (800k), r/webhosting (100k) - - Strategy: Helpful content, not spam (answer questions, share tutorials) - - Monthly AMA: "I run a budget VPS company, AMA about hosting" - - Cost: FREE (time investment) - -3. **Referral Program** - - Give existing customers $5 credit for referrals - - Referred customer gets $5 credit too (double-sided incentive) - - Track with unique referral codes per customer - - Expected: 10% of customers refer 1+ friend = 30 referrals/month after 6 months - - Cost: $10/referral, ROI: 10-20x - -4. **Review Sites** - - Get listed on: VPSBenchmarks, ServerHunter, HostAdvice, Trustpilot - - Incentivize reviews: $5 credit for honest review (must mention in email) - - Target: 50+ reviews with 4.5+ star average - - Cost: $250 in credits - -5. **YouTube Sponsorships** - - Budget tech YouTubers (50-200k subs): NetworkChuck, TechHut, LearnLinuxTV - - Offer: $500-1000/video for 60-second sponsor spot + affiliate link - - Expected: 20-50 signups per video - - Cost: $2,000/month, ROI: 5-10x - -6. **Affiliate Program** - - 20% commission on first 3 months (e.g., $4.17 for Value plan customer) - - Target: Tech bloggers, YouTubers, tutorial sites - - Provide: Banners, copy, comparison tables - - Platform: Post Affiliate Pro or similar - - Expected: 50-100 affiliates, 20% active = $1,000-2,000/month in affiliate revenue - -**Sustained Growth Target:** -- Month 1-3: 20 signups/month (organic) -- Month 4-6: 40 signups/month (SEO kicking in) -- Month 7-12: 60-80 signups/month (multiple channels) - -**Annual Marketing Budget:** $10,000-15,000 -- YouTube: $6,000 -- Affiliate commissions: $3,000 -- SEO/content: $2,000 -- Review incentives: $1,000 -- Misc (ads, tools): $3,000 - -**Expected ROI:** 10-15x (industry standard for B2C SaaS/hosting) - ---- - -## OPERATIONAL CONSIDERATIONS - -### Inventory Management (Critical) - -**Current Capacity:** -- Assume 6 servers currently -- 25 VPS per server = 150 total capacity -- Current: 100 customers = 67% utilization - -**Problem:** What if we get 200 signups in month 1 from LowEndBox launch? -- We'd hit 300 customers = need 12 servers (double current capacity) -- Hardware procurement takes 2-4 weeks -- Out-of-stock = lost revenue + angry customers + bad reviews - -**Solution: Hardware Expansion Plan** - -| Trigger | Action | Timeline | Cost | Servers Needed | -|---------|--------|----------|------|----------------| -| 70% capacity (105 VPS) | Order 2 servers (emergency) | 1 week | $3,000 | +2 (total: 8) | -| 85% capacity (128 VPS) | Order 4 servers (pre-emptive) | 2 weeks | $6,000 | +4 (total: 10) | -| 95% capacity (143 VPS) | PAUSE new signups, rush order 4 servers | 1 week expedited | $10,000 | +4 (total: 10) | - -**Recommendations:** -1. **Have $10k line of credit ready** for rapid hardware expansion - - Business credit card with $10k limit - - Or cash reserve earmarked for hardware - -2. **Monitor daily** during LowEndBox launch - - Dashboard: Current VPS count, % of capacity, trending signups/day - - Alert at 60% capacity: "Prepare to order hardware" - -3. **Have vendor relationships** pre-established - - Pre-approved account with server vendor (e.g., ServerMonkey, Orange Computers) - - Know lead times for different urgency levels - - Pre-negotiate bulk pricing (10+ servers) - -4. **Tiered launch strategy** (if concerned about capacity): - - Week 1: LowEndBox post, cap at 50 new signups - - Week 2: Open to 100 signups (order hardware if needed) - - Week 3+: Unlimited (hardware arrived) - ---- - -### Support Scaling (Critical for Moat) - -**Current Support Model:** -- Assume solo admin or 2-person team currently -- Can handle ~10-15 tickets/day with <2 hour response time - -**Problem:** As customer count grows, ticket volume grows proportionally -- 100 customers = 5-10 tickets/day (manageable) -- 300 customers = 15-25 tickets/day (stretched thin) -- 500 customers = 30-50 tickets/day (need more staff) - -**Recommended Staffing** (based on customer count): - -| Customers | Tickets/Day | Support Staff | Cost/Month | When to Hire | -|-----------|-------------|---------------|------------|--------------| -| 0-100 | 5-10 | 1 person (founder) | $0 | Current state | -| 100-300 | 15-25 | 1 FT support tech | $3,500 | **CRITICAL: Hire at 150 customers** | -| 300-500 | 30-50 | 2 FT support techs | $7,000 | Hire 2nd at 350 customers | -| 500-1000 | 50-100 | 2 FT + 1 PT (nights/weekends) | $10,000 | Add PT at 550 customers | -| 1000+ | 100-200 | 3 FT + 1 PT + 1 manager | $15,000+ | Scale as needed | - -**Key Hire Timing: When you hit 150 customers, hire first support tech BEFORE quality degrades** - -**Why 150 is the Critical Number:** -- 150 customers = ~20 tickets/day -- 20 tickets/day = 8 hours/day at 24min per ticket (including email, research, testing) -- No time for proactive work, monitoring, improvements -- Response time starts creeping from 2hr → 4hr → 8hr -- Customer satisfaction drops -- **OUR MOAT (support quality) COLLAPSES** - -**First Support Tech Hire Profile:** -- **Skills:** Linux sysadmin experience (3+ years), customer service skills, ticket triage -- **Salary:** $40-45k/year ($3,500/month) for entry-level remote tech -- **Location:** Remote (US-based for timezone alignment) -- **Tools:** VirtFusion admin access, ticket system, documentation wiki -- **Training:** 2-week onboarding with founder shadowing - -**Support Tech Job Description Template:** - -``` -EZSCALE - VPS Support Technician (Remote, US-based) - -We're a small budget VPS provider competing on support quality. While -Hetzner/Contabo make customers wait 48 hours, we respond in <2 hours. -We need help maintaining this as we grow. - -Responsibilities: -• Respond to customer tickets (<2 hour SLA) -• Troubleshoot VPS issues (networking, OS, performance) -• Manage VirtFusion control panel (provision, resize, migrate VPS) -• Document common issues in knowledge base -• Escalate complex issues to senior team - -Requirements: -• 3+ years Linux sysadmin experience (MUST) -• Customer service mindset (we're not a "RTFM" company) -• Experience with KVM/virtualization -• Comfortable with networking (DNS, firewalls, routing) -• US-based (for timezone coverage) - -Nice to Have: -• VirtFusion experience -• Experience with budget hosting providers -• Active on LowEndBox/hosting communities - -Salary: $40-45k/year + benefits -Hours: Full-time, 9am-5pm ET (flexible, remote) - -Apply: careers@ezscale.cloud -``` - ---- - -### Automation Priorities - -**To maintain <2 hour response times at scale**, automate routine tasks: - -**High Priority (Implement Now):** - -1. **VPS Provisioning** (Likely already automated via VirtFusion) - - Customer orders → auto-provision in 2-5 minutes - - No manual intervention needed - -2. **Bandwidth Monitoring & Alerts** - - Auto-email at 75%/90% usage: "You've used 75% of your 4TB bandwidth" - - Include: Current usage, remaining, overage pricing, upgrade options - - Prevents: Surprise suspensions, angry tickets - -3. **Payment Failure Handling** (Dunning) - - Laravel app already built (from Phase 2) - - Auto-email sequence: Day 1 (payment failed), Day 3 (reminder), Day 7 (final warning), Day 10 (suspend) - - Prevents: Manual tracking, forgotten suspensions - -4. **Suspension/Unsuspension** - - Auto-suspend after Day 10 of non-payment - - Auto-unsuspend when payment succeeds - - Prevents: Manual work, delays - -**Medium Priority (Implement at 200+ customers):** - -5. **Backup Reminders** - - Weekly email to customers without backups: "You're not backing up - here's how" - - Upsell opportunity for automated backup service - -6. **Resource Usage Alerts** - - CPU >80% for 1 hour: "Your VPS is running hot - need an upgrade?" - - RAM >90%: "You're hitting RAM limits - consider Power plan" - - Disk >85%: "Running low on storage - upgrade available" - - Proactive support + upsell opportunity - -7. **Onboarding Sequence** - - Day 1: "Welcome to EZSCALE - Here's how to get started" - - Day 3: "Need help? Check our tutorials" (reduce tickets) - - Day 7: "How's it going?" (feedback request) - - Day 30: "Refer a friend, get $5 credit" - -**Low Priority (Nice to Have):** - -8. **Knowledge Base / FAQ Automation** - - Auto-suggest KB articles when customer opens ticket - - Reduces ticket volume by 10-20% - -9. **Server Health Monitoring Dashboard** - - Real-time view of all servers: CPU, RAM, disk, network - - Alerts when server-level issues detected - - Prevents: Customers noticing issues before we do - -**Don't Automate (Keep Human):** - -- ❌ **Abuse reports** - Requires judgment, legal risk -- ❌ **Upgrade/downgrade requests** - Upsell opportunity, relationship building -- ❌ **Migration assistance** - Our moat (white-glove service) -- ❌ **Technical troubleshooting** - Our moat (support quality) -- ❌ **Refund requests** - Requires judgment, retention opportunity - ---- - -## RISKS & MITIGATION - -### Risk 1: Hetzner/Contabo Start US Expansion - -**Probability:** Medium (Hetzner already has US datacenters, could expand) -**Impact:** High (could undercut us on US-based VPS pricing) -**Timeline:** 6-24 months - -**Scenario:** -- Hetzner opens 5 US datacenters, drops prices to match EU -- CX22 at $4 with 4GB RAM in US (vs. our $6.95 Value with 2GB) -- We lose on specs AND price - -**Mitigation Strategies:** - -1. **Build support quality moat NOW** (hard to copy) - - Hetzner's culture is low-touch, email-only support - - Changing corporate culture takes years - - We have 12-24 months head start - -2. **Build customer loyalty through grandfathering** - - Customers on grandfathered plans won't leave (locked pricing) - - Generous migrations create goodwill - -3. **Consider "Managed VPS" pivot** - - Add cPanel/Plesk licenses (+$15/month) - - Managed updates, security patches - - Hetzner doesn't offer managed services - -4. **Niche down if needed** - - "Best VPS for Laravel developers" (optimized stack) - - "Best VPS for WordPress agencies" (WP-specific tools) - - "Best VPS for small businesses" (hand-holding support) - -5. **Monitor Hetzner's US expansion closely** - - Track their datacenter openings - - If they expand aggressively, pivot to managed/niche strategy - -**Bottom Line:** Don't panic. Support quality and relationships are defensible moats. - ---- - -### Risk 2: LowEndBox Launch Flops - -**Probability:** Low (LEB always wants new providers) -**Impact:** Medium (slower growth than projected, but not fatal) -**Timeline:** Week 3-4 of launch - -**Scenario:** -- LowEndBox post gets <50 signups (vs. 150-300 expected) -- Growth target of 20/month not met -- Revenue projections miss - -**Mitigation Strategies:** - -1. **Diversify marketing BEFORE LEB launch** - - Reddit posts in r/selfhosted, r/homelab (build awareness) - - Discord/Slack community engagement - - Start SEO content early - -2. **Run targeted Facebook/Google ads** ($500/month budget) - - Target keywords: "cheap VPS", "budget hosting", "Hetzner alternative" - - $25 CPA (cost per acquisition) = 20 customers/month - -3. **Partner with dev bootcamps** (student discounts) - - Offer students 50% off (e.g., $3.50 for Value plan) - - Bootcamps promote us to students - - Students become long-term customers - -4. **Affiliate marketing push** - - Recruit 50 affiliates in month 1 - - 20% of them drive 80% of revenue - - Pay 20-30% commission on first 3 months - -5. **Improve LEB post based on feedback** - - If initial response is lukewarm, ask community what's missing - - Adjust pricing, features, or messaging - - Re-post with improvements - -**Bottom Line:** LowEndBox is one channel. If it flops, we have backup plans. - ---- - -### Risk 3: Hardware Failure During Growth - -**Probability:** Medium (older servers, higher failure rate) -**Impact:** High (reputation damage if new customers hit downtime) -**Timeline:** Ongoing risk, especially during rapid growth - -**Scenario:** -- Server fails during LowEndBox launch (50+ customers affected) -- New customers experience downtime in first month -- Bad reviews on LowEndBox thread: "Signed up, server died, terrible" -- Reputation damaged before we establish moat - -**Mitigation Strategies:** - -1. **RAID 10 on all servers** (sacrifice capacity for redundancy) - - Can survive 1 drive failure per RAID array - - Prevents: Data loss, downtime from drive failure - - Cost: 50% of drive capacity (worth it) - -2. **Keep 20% capacity buffer** (never sell to 100%) - - If server fails, migrate customers to other servers within hours - - Example: 6 servers × 25 VPS = 150 capacity, but only sell 120 (80%) - - Prevents: "We're oversold, can't migrate you" situations - -3. **Have spare parts inventory** ($2k worth) - - 2x hot-swap drives (RAID rebuilds) - - 2x RAM sticks (common failure point) - - 2x PSUs (redundant power) - - 1x motherboard (for emergency swaps) - - Prevents: Waiting 3-5 days for parts delivery - -4. **Colo relationship for emergency server swaps** - - Pre-arrange with datacenter: "If we need emergency server, can you rack within 4 hours?" - - Keep 1 spare server on-site (not racked) for emergencies - - Cost: ~$50/month for extra U space - -5. **Monitoring & Proactive Replacement** - - Monitor SMART data on drives (predict failures before they happen) - - Replace drives when warning signs appear - - Monitor server age: 7+ year old servers retired proactively - -6. **Customer Communication During Incidents** - - Transparent status page (status.ezscale.cloud) - - Real-time updates during incidents - - Post-mortem reports: "Here's what happened, here's what we're doing to prevent it" - - Downtime credits automatically applied - -**Bottom Line:** Hardware failures are inevitable with older servers. Plan for them, don't be surprised by them. - ---- - -### Risk 4: Price War with Budget Providers - -**Probability:** High (Contabo could drop to $3.95 for 8GB) -**Impact:** Medium (we can't compete on raw specs, but we don't have to) -**Timeline:** Ongoing risk - -**Scenario:** -- Contabo drops prices to $3.95 for 8GB RAM (vs. our $6.95 for 2GB) -- Customers ask: "Why should I pay more for less RAM?" -- We lose on specs AND price - -**Mitigation Strategies:** - -1. **DO NOT ENGAGE in price wars** (we'll lose) - - Never compete on specs alone - - Never drop prices to match (unsustainable margins) - - Focus on total value (specs + support + reliability) - -2. **Double down on support quality moat** - - Publicly track <2 hour response time - - Share customer testimonials about support - - "Contabo might be cheaper, but when you need help, you'll wait 3 days" - -3. **Niche down if needed** - - "Best VPS for [specific use case]" - - E.g., "Best VPS for Laravel developers" (optimized stack, tutorials) - - E.g., "Best VPS for WordPress agencies" (WP-specific tools) - -4. **Add-on revenue streams** (margin protection) - - Managed services (+$15/month): cPanel, updates, security patches - - Premium support (+$10/month): phone support, priority tickets - - Backups (+$5/month): automated daily backups - - Diversify revenue beyond raw VPS specs - -5. **Focus on customer LTV** (lifetime value, not acquisition cost) - - Contabo has high churn (bad support = customers leave) - - We have low churn (good support = customers stay) - - $6.95/month × 24 months LTV = $166.80 - - vs. Contabo $4.95/month × 6 months LTV = $29.70 - - We win on LTV even at higher price - -**Bottom Line:** Price wars are a race to the bottom. We win by being different, not cheaper. - ---- - -## RECOMMENDED NEXT STEPS - -### Week 1: Internal Preparation - -- [ ] **Update VirtFusion** to create new plan templates - - Create 6 new plans: Starter, Value, Power, Performance, Ultimate, Enterprise - - Set resource limits: vCPU, RAM, disk, bandwidth - - Test provisioning with internal test accounts - -- [ ] **Create grandfathering tags** in billing system - - Tag: "Grandfathered - Micro VPS $4.20" - - Tag: "Grandfathered - Mini VPS $6.00" - - etc. for all legacy plans - - Prevents: Accidental price changes - -- [ ] **Write all migration email templates** - - Category A: Free upgrades (template above) - - Category B: Grandfathered pricing (template above) - - Category C: Custom plans (template above) - - Category D: Dedicated upgrade (template above) - -- [ ] **Set up promotional codes** - - `LEB2026` - 25% off first 3 months (for LowEndBox launch) - - `EARLYBIRD20` - 20% off first month (for existing customers) - - Configure in billing system with expiration dates - -- [ ] **Train support team** on new plan positioning - - When customers ask: "Why are you more expensive than Hetzner?" - - Answer: "We're US-based with <2 hour support, Hetzner is EU with 24-48 hour email-only" - - Role-play common objections - -- [ ] **Create internal documentation** - - Plan comparison matrix (for support team) - - Migration flow chart (old plan → new plan) - - FAQ for support team - ---- - -### Week 2: Customer Communication - -- [ ] **Send Category A emails** (free upgrades - 40% of customers) - - Segment: Micro, Dev Starter, Basic VPS customers - - Subject: "You're Getting a Free Upgrade!" - - Include: Migration timeline (30 days), specs comparison - -- [ ] **Send Category B emails** (grandfathering - 35% of customers) - - Segment: Mini VPS, Standard VPS, Advanced VPS customers - - Subject: "Your Plan is Now Grandfathered - Pricing Locked Forever" - - Include: What grandfathering means, upgrade options - -- [ ] **Create migration FAQ page** - - URL: ezscale.cloud/vps-migration-faq - - Questions: "Will my price change?", "Will I experience downtime?", "Can I keep my old plan?" - - Link in all migration emails - -- [ ] **Set up Discord server** for community - - Channels: #general, #support, #status, #announcements - - Invite all customers - - Staff presence: Check every 2-4 hours - - Alternative: Slack or existing forum - -- [ ] **Monitor customer feedback** - - Track: Email replies, ticket volume, churn rate - - Adjust messaging if negative feedback - ---- - -### Week 3: Public Launch - -- [ ] **Update website** with new plans - - New pricing page: ezscale.cloud/pricing - - Plan comparison table - - FAQ section - - "Why EZSCALE?" section (support quality, US location, VirtFusion) - -- [ ] **Launch new pricing page design** - - Highlight hero plans (Value, Performance) with visual emphasis - - Comparison vs. Hetzner/DigitalOcean/Vultr - - Customer testimonials about support quality - -- [ ] **Post on LowEndBox** with promo - - Use template above - - Include promo code: `LEB2026` - - Respond to ALL comments within 2 hours (prove support quality) - -- [ ] **Enable promotional pricing** in billing system - - `LEB2026` code active - - Track signups per plan - - Monitor capacity (don't oversell) - -- [ ] **Monitor infrastructure** - - Dashboard: Current VPS count, capacity %, signups/day - - Alert: Email at 70% capacity ("prepare to order hardware") - ---- - -### Week 4: Monitor & Optimize - -- [ ] **Track conversion rates** by plan - - Which plans are popular? (Should be Value + Performance) - - Which plans are underperforming? (May need price adjustment) - - Tool: Google Analytics + billing system reports - -- [ ] **Survey new customers** on decision factors - - Email after 7 days: "Why did you choose EZSCALE?" - - Questions: "What made you choose [Plan Name]?", "How do we compare to competitors?", "What could we improve?" - - Incentive: $5 credit for completing survey - - Use: SurveyMonkey, Typeform, or Google Forms - -- [ ] **Adjust marketing** based on data - - If Starter plan is too popular (low margin): Reduce promotion - - If Performance plan is underperforming: Highlight more in marketing - - If signups are slow: Increase promo discount or extend deadline - -- [ ] **Plan hardware expansion** if needed - - If >70% capacity: Order 2 servers ($3k) - - If >85% capacity: Order 4 servers ($6k) - - If >95% capacity: Pause signups, rush order ($10k) - -- [ ] **Prepare for first support hire** - - If >120 customers: Start recruiting support tech - - If >150 customers: Hire immediately (don't wait) - - Job description ready (see above) - ---- - -### Month 2-3: Sustained Growth - -- [ ] **Send Category C & D emails** (custom plans, dedicated upgrades) - - Day 30: Category C (legacy plans) - - Day 60: Category D (dedicated server offers) - -- [ ] **Launch referral program** - - $5 credit for referrer + referred customer - - Track with unique codes per customer - - Promote in monthly newsletter - -- [ ] **Start SEO content** - - Blog: "EZSCALE vs Hetzner: Which VPS is Right for You?" - - Blog: "Why US-based VPS Matters for Your Business" - - Comparison pages: ezscale.cloud/vs/hetzner, /vs/digitalocean, /vs/vultr - -- [ ] **Engage on Reddit** - - Post helpful content (not spam) on r/selfhosted, r/homelab - - Monthly AMA: "I run a budget VPS company, AMA" - -- [ ] **Get listed on review sites** - - Submit to: VPSBenchmarks, ServerHunter, HostAdvice, Trustpilot - - Incentivize reviews: $5 credit for honest review - ---- - -## APPENDIX: COST BREAKDOWN PER SERVER - -### Server Hardware Economics - -**Server Hardware** (Dell R620/R630, paid off): -- Purchase cost: $0 (assuming already owned/depreciated) -- Power consumption: 150W average × 24hr × 30 days = 108 kWh/month -- Electricity cost: 108 kWh × $0.12/kWh = $13/month -- Cooling cost: ~30% of power = $4/month -- Datacenter colocation: $50/month (1U rack space) -- Network port: 1Gbps = $20/month -- **Total per server: $87/month** - -**Per-VPS Economics** (25 VPS per server): -- Base infrastructure cost: $87 / 25 = $3.48/VPS -- Bandwidth cost: Variable by plan tier - - Starter (2TB): 2TB × $0.25/TB = $0.50 - - Value (4TB): 4TB × $0.25/TB = $1.00 - - Performance (8TB): 8TB × $0.25/TB = $2.00 -- Support overhead: $2/VPS (amortized across customer base) -- **Break-even range: $5.98-$7.48/VPS** - -### Margin Analysis by Plan - -| Plan | Price/Mo | Infrastructure Cost | Bandwidth Cost | Support Overhead | Total Cost | Gross Margin | Margin % | -|------|----------|---------------------|----------------|------------------|------------|--------------|----------| -| Starter | $3.95 | $3.48 | $0.50 | $0.80 | $4.78 | -$0.83 | **-21%** (loss leader) | -| Value | $6.95 | $3.48 | $1.00 | $1.20 | $5.68 | $1.27 | **18%** | -| Power | $10.95 | $3.48 | $1.50 | $1.45 | $6.43 | $4.52 | **41%** | -| Performance | $16.95 | $3.48 | $2.00 | $2.00 | $7.48 | $9.47 | **56%** | -| Ultimate | $24.95 | $3.48 | $2.50 | $2.40 | $8.38 | $16.57 | **66%** | -| Enterprise | $34.95 | $3.48 | $3.00 | $2.60 | $9.08 | $25.87 | **74%** | - -**Notes:** -- Starter is intentionally a LOSS LEADER (-21% margin) - - Goal: Acquire customers, upsell to Value within 3-6 months - - Expected: 30% of Starter customers upgrade to Value - - Lifetime value makes up for initial loss - -- Value plan has LOWER margin than expected (18% vs 48% in earlier projection) - - Earlier projection used simplified $5/VPS base cost - - Actual cost is higher when you include support overhead - - Still profitable, but needs higher volume to fund operations - -- Performance+ plans have excellent margins (56-74%) - - These customers subsidize Starter losses - - High LTV (stay longer, open fewer tickets per dollar) - -**Blended Margin Analysis** (based on expected signup distribution): - -| Plan | % of Customers | Weighted Margin Contribution | -|------|----------------|------------------------------| -| Starter | 30% | -21% × 30% = -6.3% | -| Value | 40% | 18% × 40% = 7.2% | -| Power | 15% | 41% × 15% = 6.2% | -| Performance | 10% | 56% × 10% = 5.6% | -| Ultimate | 3% | 66% × 3% = 2.0% | -| Enterprise | 2% | 74% × 2% = 1.5% | -| **Blended Margin** | **100%** | **16.2%** | - -**Interpretation:** -- Blended gross margin: 16.2% (lower than ideal) -- Target: 30-40% for sustainable business -- **Problem:** Too many Starter customers (loss leaders) -- **Solution:** Focus LowEndBox marketing on Value plan (hero), de-emphasize Starter - -**Revised Marketing Strategy:** -- LowEndBox post: Lead with Value plan ($4.95 promo), not Starter -- Website: Make Value plan most prominent ("Most Popular" badge) -- Onboarding: Encourage Starter customers to upgrade after 30 days - ---- - -## FINAL RECOMMENDATIONS SUMMARY - -### ✅ DO THIS (Critical Success Factors): - -1. **Launch new 6-tier lineup** with Starter ($3.95), Value ($6.95), and Performance ($16.95) as heroes - - Value plan is PRIMARY hero (best margin, best specs-to-price ratio) - - Starter is loss leader (acquire customers, upsell within 6 months) - - Performance is SECONDARY hero (high LTV, high margin) - -2. **Grandfather generously** - 35% of customers keep old pricing forever - - Never make a customer worse off - - Builds loyalty and trust in LowEndBox community - - Prevents bad reviews and churn - -3. **Position on support quality** - not raw specs (we'll lose that fight) - - <2 hour ticket response (vs. 24-48hrs for competitors) - - Phone support for Performance+ customers - - Migration assistance (white glove service) - - Discord community engagement - -4. **LowEndBox soft launch** with 25% off promo code for first 3 months - - Code: `LEB2026` - - Lead with Value plan (not Starter) - - Founder AMA engagement (prove support quality) - - Expected: 150-300 signups in month 1 - -5. **Hire support tech at 150 customers** (before quality drops) - - First hire: $3,500/month for entry-level remote Linux tech - - DO NOT WAIT until quality degrades - - Support quality is our moat - protect it - -6. **Monitor capacity daily** during launch - - Alert at 70% capacity: Order hardware - - Keep 20% buffer (never sell to 100%) - - Have $10k line of credit for rapid expansion - ---- - -### ❌ DON'T DO THIS (Critical Mistakes to Avoid): - -1. **Don't force migrations** - let customers keep legacy plans indefinitely - - LowEndBox has long memory - - Forced migrations = bad reviews for years - -2. **Don't compete on specs alone** - Hetzner will always win - - Focus on total value: specs + support + reliability - - Niche down if needed ("Best VPS for Laravel developers") - -3. **Don't oversell servers** - quality > quantity for long-term reputation - - Cap at 25 VPS per server (not 50-100 like competitors) - - Keep 20% capacity buffer for migrations during failures - -4. **Don't skimp on hardware spares** - downtime kills budget provider reputation - - $2k inventory: drives, RAM, PSUs, motherboard - - Worth every penny to prevent 24hr+ downtimes - -5. **Don't automate support** - human touch is our moat - - Automate: provisioning, billing, alerts - - Keep human: technical support, migrations, abuse handling - -6. **Don't enter price wars** - focus on value, not bottom price - - If Contabo drops to $3.95 for 8GB, DON'T match - - Double down on support moat instead - -7. **Don't ignore LowEndBox community** - they're your customers - - Engage regularly, respond to comments - - Be transparent about hardware (older servers, SATA SSDs) - - Honesty builds trust in this community - ---- - -## CONCLUSION - -This VPS plan rebuild is a **strategic repositioning** from "cheap specs" to "best value" in the US budget VPS market. - -**Core Strategy:** -- **Can't win:** Raw specs vs. European giants (Hetzner/Contabo) -- **Can win:** Support quality + US location + VirtFusion + transparent policies -- **Target:** US-based developers and small businesses willing to pay 10-20% premium for reliability - -**Success Metrics (Year 1):** -- ✅ Grow from 100 to 300+ customers (+200%) -- ✅ Achieve $40k+ ARR (+169%) -- ✅ Maintain <2 hour ticket response (support moat) -- ✅ Achieve 4.5+ star reviews on Trustpilot -- ✅ Zero forced migrations (all grandfathered) - -**This plan works IF:** -1. Support quality is maintained (hire at 150 customers) -2. Hardware capacity is managed (don't oversell) -3. Marketing focuses on VALUE (not cheapest specs) -4. Community engagement is consistent (LowEndBox, Reddit, Discord) -5. Grandfathering is honored (builds trust) - -**Ready to execute?** Start with Week 1 tasks above. Let me know if you need help with: -- Laravel seeders for new plans -- Email template files -- LowEndBox post refinement -- Pricing page design -- Competitive comparison charts - -Good luck! 🚀 diff --git a/VPS_PLAN_UPDATED_REAL_INFRASTRUCTURE.md b/VPS_PLAN_UPDATED_REAL_INFRASTRUCTURE.md deleted file mode 100644 index d19674d..0000000 --- a/VPS_PLAN_UPDATED_REAL_INFRASTRUCTURE.md +++ /dev/null @@ -1,255 +0,0 @@ -# EZSCALE VPS PLAN REBUILD - UPDATED WITH REAL INFRASTRUCTURE - -**Based on Actual Discovery Data from 3 Production Nodes** - -*Generated: February 9, 2026* - ---- - -## CRITICAL UPDATE: YOUR INFRASTRUCTURE IS BETTER THAN ASSUMED - -### What We Thought You Had: -- 6 servers with E5-2670 v2 CPUs -- ~150-200GB RAM per server -- SATA SSD storage only -- 25 VPS per server capacity - -### What You ACTUALLY Have: -- **3 powerful servers with E5-2680 v2/v4 CPUs (faster)** -- **1,320GB total RAM** (503GB + 377GB + 440GB) -- **Mixed storage: 931GB NVMe + 13TB SATA SSD** -- **Only 60 VMs running** (massive capacity available) - -**This changes EVERYTHING. You can be much more competitive.** - ---- - -## YOUR REAL COMPETITIVE ADVANTAGES - -### 1. RAM DENSITY - You're RAM-RICH -- Node 1: 503GB RAM (only using 272GB = 54% free) -- Node 2: 377GB RAM (only using 225GB = 40% free) -- Node 3: 440GB RAM (only using 112GB = 75% free) - -**You can offer 2-4x more RAM than budget competitors at the same price.** - -### 2. NVMe Storage Available -- Node 1 has 931GB NVMe RAID1 (currently using only 6.6GB!) -- **You can offer REAL NVMe VPS** (not just SATA like I assumed) - -### 3. Massive Storage Capacity -- Node 2: 11.2TB SATA SSD RAID10 (64% used, 4.1TB free) -- Node 1: 7.3TB HDD RAID10 (1% used, 7.3TB free!) - -**You can offer 500GB-1TB storage plans easily.** - -### 4. Low Density = Better Performance -- Currently: ~20 VMs per server (not oversold) -- Competitors run 50-100 VMs per server -- **Your VMs will perform better with less noisy neighbors** - ---- - -## NEW VPS PLAN LINEUP (Updated for Real Hardware) - -### Strategy Shift: **RAM + NVMe as Primary Differentiators** - -Since you have abundant RAM and NVMe, position yourself as: -> **"Premium Specs at Budget Prices - We're not oversold like Hetzner"** - -| Plan | vCPU | RAM | Storage | Type | BW | Price/Mo | Target Margin | Note | -|------|------|-----|---------|------|----|---------| --------------|------| -| **Nano** | 1 | 1GB | 15GB | NVMe | 2TB | **$3.50** | 25% | Entry (compete with Vultr) | -| **Micro** | 1 | 2GB | 30GB | NVMe | 3TB | **$5.95** | 35% | ⭐ Budget hero | -| **Mini** | 2 | 4GB | 50GB | NVMe | 4TB | **$8.95** | 40% | ⭐⭐ MAIN HERO (RAM advantage) | -| **Standard** | 2 | 8GB | 80GB | NVMe | 6TB | **$14.95** | 45% | RAM beast (8GB @ $15!) | -| **Plus** | 4 | 12GB | 120GB | NVMe | 8TB | **$22.95** | 48% | High-RAM power user | -| **Pro** | 4 | 16GB | 160GB | NVMe | 10TB | **$29.95** | 50% | Ultimate RAM | -| **Storage-500** | 2 | 4GB | 500GB | SSD | 8TB | **$24.95** | 45% | Storage-focused | -| **Storage-1TB** | 4 | 8GB | 1TB | SSD | 12TB | **$44.95** | 50% | Mass storage | - -### Why This Lineup Wins - -**vs. Hetzner CX22 (€3.79 for 2vCPU/4GB/40GB SSD):** -- Our **Micro** ($5.95): 1vCPU/**2GB**/30GB **NVMe** - same RAM density, NVMe storage, US-based -- Our **Mini** ($8.95): 2vCPU/**4GB**/50GB **NVMe** - match their specs + NVMe + US-based for just $5 more -- Our **Standard** ($14.95): 2vCPU/**8GB**/80GB **NVMe** - **DOUBLE their RAM** for $11 more - -**vs. Contabo ($4.95 for 4 cores/8GB/50GB NVMe):** -- We can't beat them on core count, BUT: -- Our **Mini** ($8.95): 2vCPU/4GB/50GB NVMe - same storage, half RAM, but US-based + support -- Our **Standard** ($14.95): 2vCPU/8GB/80GB NVMe - match RAM, more storage, US-based + support - -**vs. DigitalOcean ($12 for 1vCPU/2GB/50GB):** -- Our **Mini** ($8.95): 2vCPU/**4GB**/50GB NVMe - **2x CPU, 2x RAM** for $3 less -- Our **Standard** ($14.95): 2vCPU/**8GB**/80GB NVMe - **4x RAM** for just $3 more - ---- - -## REVISED POSITIONING: "RAM + NVMe BEAST" - -### Marketing Angle -> **"Why settle for 2GB when you can have 4GB? Or 8GB for $15? We're not oversold."** - -### Hero Plans - -**Primary Hero: MINI ($8.95/mo)** -- 2 vCPU, **4GB RAM**, 50GB **NVMe**, 4TB bandwidth -- **Beats Hetzner CX22 specs** (same CPU/RAM, +10GB storage, NVMe vs SSD) -- **Beats DigitalOcean $12 plan** (2x CPU, 2x RAM, same storage, $3 less) -- US-based, <2hr support, VirtFusion - -**Secondary Hero: STANDARD ($14.95/mo)** -- 2 vCPU, **8GB RAM**, 80GB **NVMe**, 6TB bandwidth -- **8GB for $15** - this is INSANE value (Hetzner charges €6.80 for 8GB) -- Target: Developers who need RAM (databases, caching, Docker) - -**Entry Hero: MICRO ($5.95/mo)** -- 1 vCPU, **2GB RAM**, 30GB **NVMe**, 3TB bandwidth -- Beats Vultr $5 plan (1vCPU/1GB) - we give **2x RAM** -- Competes with Hetzner CX11 (€4.15 for 2GB) - we're $2 more but NVMe + US - ---- - -## CAPACITY PLANNING (Real Numbers) - -### Current State -- **60 VMs running** across 3 nodes -- **609GB RAM allocated** out of 1,320GB (only 46% utilization!) -- **Tons of room to grow** - -### Realistic Capacity Per Node - -**Node 1 (503GB RAM, 931GB NVMe):** -- Can host: **40-50 VMs** on NVMe storage -- Current: 28 VMs (28% of capacity) -- **Room for 12-22 more NVMe VMs** - -**Node 2 (377GB RAM, 11.2TB SSD):** -- Can host: **30-40 VMs** (RAM-limited) -- Current: 22 VMs (55% capacity) -- **Room for 8-18 more VMs** - -**Node 3 (440GB RAM, 1.8TB SSD):** -- Can host: **35-45 VMs** (storage-limited) -- Current: 10 VMs (22% capacity!) -- **Room for 25-35 more VMs** - -**Total Capacity:** 105-135 VMs across 3 nodes (you're at 60 now) -**Growth Headroom:** 45-75 more VPS before needing new hardware - -### If LowEndBox Launch Brings 200 Signups -- You'd hit ~260 total VMs -- You'd need to add 1-2 more servers (~$6-12k) -- This is MUCH better than my original projection (which assumed 6 servers already) - ---- - -## COST ANALYSIS (Real Hardware) - -### Per-Server Operating Cost - -**Node 1 (atl-01):** -- Power: ~180W avg × 24h × 30d = 129.6 kWh/mo × $0.12 = $15.55/mo -- Cooling: $15.55 × 30% = $4.67/mo -- Datacenter: $50/mo (rack space) -- Network: $20/mo (1Gbps port) -- **Total: $90.22/month** - -**Node 2 (atl-02):** -- Power: ~200W avg (more drives) × 24h × 30d = 144 kWh/mo × $0.12 = $17.28/mo -- Cooling: $17.28 × 30% = $5.18/mo -- Datacenter: $50/mo -- Network: $20/mo (1Gbps port) -- **Total: $92.46/month** - -**Node 3 (atl-03):** -- Power: ~150W avg × 24h × 30d = 108 kWh/mo × $0.12 = $12.96/mo -- Cooling: $12.96 × 30% = $3.89/mo -- Datacenter: $50/mo -- Network: $20/mo (1Gbps port) -- **Total: $86.85/month** - -**Total Operating Cost: $269.53/month** for all 3 nodes - -### Per-VPS Economics (60 VMs currently) - -**Current State:** -- Total cost: $269.53/month -- 60 VMs running -- **Cost per VPS: $4.49/month** (infrastructure only) - -**At Full Capacity (120 VMs):** -- Total cost: $269.53/month (same hardware) -- 120 VMs running -- **Cost per VPS: $2.25/month** (infrastructure only) - -### Margin Analysis by Plan (at 120 VPS density) - -| Plan | Price | Infra Cost | BW Cost | Support | Total Cost | Margin | Margin % | -|------|-------|------------|---------|---------|------------|--------|----------| -| Nano | $3.50 | $2.25 | $0.50 | $0.50 | $3.25 | $0.25 | 7% (loss leader) | -| Micro | $5.95 | $2.25 | $0.75 | $0.75 | $3.75 | $2.20 | 37% | -| **Mini** | **$8.95** | **$2.25** | **$1.00** | **$1.00** | **$4.25** | **$4.70** | **53%** | -| **Standard** | **$14.95** | **$2.25** | **$1.50** | **$1.25** | **$5.00** | **$9.95** | **67%** | -| Plus | $22.95 | $2.25 | $2.00 | $1.50 | $5.75 | $17.20 | 75% | -| Pro | $29.95 | $2.25 | $2.50 | $1.75 | $6.50 | $23.45 | 78% | - -**Key Insight:** Your margins are MUCH HIGHER than I originally calculated because: -1. You have bigger servers (fewer servers needed = lower cost per VPS) -2. You have tons of RAM (can run more VPS per server) -3. Hardware is paid off (no depreciation cost) - ---- - -## GRANDFATHERING STRATEGY (Same as Before) - -The grandfathering strategy from the original plan still applies, but you have MORE flexibility now because your margins are better. - -**You can afford to be generous:** -- Give existing customers free RAM upgrades (you have 711GB free RAM!) -- Grandfather ALL old plans at old pricing -- Offer free NVMe migrations (move customers from HDD to NVMe) - ---- - -## LAUNCH STRATEGY (Updated) - -### Phase 1: NVMe Migration for Existing Customers (Week 1) - -**Offer:** Free migration to NVMe for all existing customers on Node 1 -- "We just added 931GB of NVMe storage - want faster disks for free?" -- This will fill up Node 1's NVMe quickly and show goodwill - -### Phase 2: Soft Launch with RAM Focus (Week 2) - -**Hero Plan Promo:** -- Mini: $6.95 for first 3 months (vs $8.95 regular) - "4GB for $7" -- Standard: $11.95 for first 3 months (vs $14.95 regular) - "8GB for $12" - -**Marketing Message:** -> "Tired of 1GB VPS? Get 4GB for $7. Or 8GB for $12. NVMe included." - -### Phase 3: LowEndBox Launch (Week 3) - -**Post Title:** -> [EZSCALE] NVMe VPS with DOUBLE the RAM - Starting $5.95/mo | US-Based with Real Support - -**Promo Code: `LEB2026RAM`** -- Micro: $4.95 for first 3 months (2GB NVMe for $5) -- Mini: $6.95 for first 3 months (4GB NVMe for $7) -- Standard: $11.95 for first 3 months (8GB NVMe for $12) - -**Positioning:** -- Lead with RAM (you have tons of it) -- Highlight NVMe (real competitive advantage) -- Show Hetzner/DO comparison table (you win on RAM) - ---- - -## UPDATED COMPETITIVE COMPARISON - -### Head-to-Head: EZSCALE vs Market Leaders - -| Provider | Price | vCPU | RAM | Storage | BW | Notes | -|----------|-------|------|-----|---------|----|-EOFPLAN diff --git a/VPS_PLAN_UPDATE_REAL_INFRASTRUCTURE.md b/VPS_PLAN_UPDATE_REAL_INFRASTRUCTURE.md deleted file mode 100644 index fa87986..0000000 --- a/VPS_PLAN_UPDATE_REAL_INFRASTRUCTURE.md +++ /dev/null @@ -1,278 +0,0 @@ -# EZSCALE VPS PLAN UPDATE - Real Infrastructure Analysis - -**Critical Update Based on Discovery Data (Feb 9, 2026)** - ---- - -## YOUR ACTUAL INFRASTRUCTURE IS MUCH BETTER - -### What the Original Plan Assumed: -- 6 budget servers with E5-2670 v2 CPUs -- ~150GB RAM per server -- SATA SSD storage only -- Conservative capacity - -### What You ACTUALLY Have: -✅ **3 powerful nodes** with E5-2680 v2/v4 CPUs (28-40 cores each) -✅ **1,320GB total RAM** (503GB + 377GB + 440GB) - **You're RAM-RICH!** -✅ **931GB NVMe** + **13TB SATA SSD** storage -✅ **Only 60 VMs running** (massive growth capacity) -✅ **Low density** (20 VMs/server vs competitors' 50-100) - ---- - -## MAJOR STRATEGY CHANGES - -### 1. Position on RAM + NVMe (Not Just Support) - -**OLD Strategy:** "We can't beat Hetzner on specs, compete on support" -**NEW Strategy:** "We CAN beat them - we have NVMe + tons of RAM + support" - -### 2. NEW Competitive Advantages - -**RAM Abundance:** -- 711GB RAM currently unused (54% free!) -- Can offer 2-4x more RAM than competitors at same price -- **8GB for $15** beats Hetzner's €6.80 pricing - -**NVMe Storage:** -- Node 1: 931GB NVMe (only 6.6GB used - 99% free!) -- Can offer real NVMe VPS (not just marketing) -- Competitors charge premium for NVMe, you have it built-in - -**Low Density = Performance:** -- 60 VMs on 1,320GB RAM = very comfortable -- Competitors oversell 50-100 VMs per server -- Your customers get better performance (less noisy neighbors) - ---- - -## REVISED VPS LINEUP - -### New 8-Tier Plan (RAM-Focused) - -| Plan | vCPU | RAM | Storage | Type | BW | Price/Mo | vs Competitors | -|------|------|-----|---------|------|----|---------| ---------------| -| **Nano** | 1 | 1GB | 15GB | NVMe | 2TB | **$3.50** | Entry price point | -| **Micro** | 1 | **2GB** | 30GB | NVMe | 3TB | **$5.95** | 2x RAM of Vultr $5 | -| **Mini** | 2 | **4GB** | 50GB | NVMe | 4TB | **$8.95** | ⭐ Hero (matches Hetzner CX22 + NVMe) | -| **Standard** | 2 | **8GB** | 80GB | NVMe | 6TB | **$14.95** | ⭐⭐ Main Hero (8GB for $15!) | -| **Plus** | 4 | **12GB** | 120GB | NVMe | 8TB | **$22.95** | High-RAM option | -| **Pro** | 4 | **16GB** | 160GB | NVMe | 10TB | **$29.95** | Ultimate RAM | -| **Storage-500** | 2 | 4GB | **500GB** | SSD | 8TB | **$24.95** | Storage-focused | -| **Storage-1TB** | 4 | 8GB | **1TB** | SSD | 12TB | **$44.95** | Mass storage | - -### Hero Plan Analysis - -**MINI ($8.95/mo) - Primary Hero:** -- 2 vCPU, 4GB RAM, 50GB NVMe, 4TB BW -- **vs Hetzner CX22** (€3.79/$4): Same specs + NVMe + US location for +$5 -- **vs DigitalOcean** ($12): 2x CPU, 2x RAM for -$3 -- **Target:** 40% of new signups - -**STANDARD ($14.95/mo) - Secondary Hero:** -- 2 vCPU, **8GB RAM**, 80GB NVMe, 6TB BW -- **8GB for $15** - Hetzner charges €6.80 (~$7.20) for just 4GB -- **vs DigitalOcean** ($24): Same specs for -$9 -- **Target:** 25% of new signups - ---- - -## CAPACITY ANALYSIS - -### Current Utilization - -| Node | RAM | VMs | RAM Allocated | RAM Free | % Used | Room to Grow | -|------|-----|-----|---------------|----------|--------|--------------| -| Node 1 | 503GB | 28 | 272GB | 231GB | 54% | +20-25 VMs | -| Node 2 | 377GB | 22 | 225GB | 152GB | 60% | +12-15 VMs | -| Node 3 | 440GB | 10 | 112GB | 328GB | 25% | +30-35 VMs | -| **Total** | **1,320GB** | **60** | **609GB** | **711GB** | **46%** | **+62-75 VMs** | - -**Current Capacity:** 60 VMs running -**Realistic Max:** 120-135 VMs (before needing new hardware) -**Growth Headroom:** 62-75 more VPS - -### LowEndBox Launch Scenario - -If 200 signups in month 1: -- Total VMs: 260 (60 existing + 200 new) -- You'd need: 1-2 additional servers (~$6-12k investment) -- This is MUCH better than original projection (which assumed 6 servers already) - ---- - -## UPDATED MARGINS (Much Better!) - -### Cost Structure (at 120 VPS density) - -**Per-Server Operating Cost:** -- All 3 nodes: $269.53/month total -- At 120 VPS: **$2.25/VPS infrastructure cost** (vs $5/VPS in original plan) - -**Margin by Plan:** - -| Plan | Price | Cost | Margin | Margin % | -|------|-------|------|--------|----------| -| Nano | $3.50 | $3.25 | $0.25 | 7% (loss leader) | -| **Micro** | **$5.95** | **$3.75** | **$2.20** | **37%** | -| **Mini** | **$8.95** | **$4.25** | **$4.70** | **53%** | -| **Standard** | **$14.95** | **$5.00** | **$9.95** | **67%** | -| Plus | $22.95 | $5.75 | $17.20 | 75% | -| Pro | $29.95 | $6.50 | $23.45 | 78% | - -**Key Insight:** Margins are 2-3x better than original plan because: -1. Fewer servers needed (3 vs 6 assumed) -2. More RAM per server (can run more VPS) -3. Better hardware = better efficiency - ---- - -## GRANDFATHERING UPDATES - -With better margins, you can be MORE generous: - -1. **Free NVMe migrations** - Move existing customers from Node 1 HDD to NVMe (you have 924GB free!) -2. **Free RAM upgrades** - Bump 1GB customers to 2GB, 2GB to 4GB (you have 711GB unused RAM!) -3. **All old plans grandfathered** at old pricing forever -4. **No forced migrations** - let customers stay on legacy plans indefinitely - ---- - -## UPDATED MARKETING MESSAGING - -### OLD Positioning (Based on Wrong Assumptions): -> "We can't beat Hetzner on specs, but we have better support and are US-based" - -### NEW Positioning (Based on Real Hardware): -> **"Premium Specs at Budget Prices - NVMe + Double RAM + US Support"** - -### Comparison Table for Website - -| Feature | EZSCALE Mini | Hetzner CX22 | DigitalOcean | Winner | -|---------|--------------|--------------|--------------|--------| -| **Price** | **$8.95/mo** | €3.79 (~$4) | $12/mo | Hetzner (price) | -| **vCPU** | 2 | 2 | 1 | EZSCALE/Hetzner | -| **RAM** | **4GB** | 4GB | 2GB | **EZSCALE**/Hetzner | -| **Storage** | **50GB NVMe** | 40GB SSD | 50GB SSD | **EZSCALE** (NVMe) | -| **Bandwidth** | 4TB | 20TB (EU) / 1TB (US) | 2TB | Hetzner (EU) | -| **Support** | **<2hr response** | 24-48hr email | 4-12hr | **EZSCALE** | -| **Location** | **US East** | Germany | US | **EZSCALE** (latency) | -| **Control Panel** | **VirtFusion** | Basic custom | Good custom | **EZSCALE** | - -**Overall:** EZSCALE wins on 4/8 factors (storage type, support, location, control panel) - ---- - -## LOWEND BOX POST (Updated) - -```markdown -[EZSCALE] NVMe VPS with Double the RAM | Starting $3.50/mo | US-Based | Real Support -───────────────────────────────────────────────────────────────────────────────── - -Tired of waiting 48 hours for support? Want NVMe without paying a premium? -EZSCALE delivers budget VPS with generous RAM, real NVMe, and <2hr support. - -🎯 LAUNCH SPECIAL (Code: LEB2026RAM) -├─ Nano: $3.50/mo (1vCPU, 1GB RAM, 15GB NVMe, 2TB BW) -├─ Micro: $4.95/mo first 3mo (1vCPU, 2GB RAM, 30GB NVMe, 3TB BW) - reg $5.95 -├─ Mini: $6.95/mo first 3mo (2vCPU, 4GB RAM, 50GB NVMe, 4TB BW) - reg $8.95 ⭐ -└─ Standard: $11.95/mo first 3mo (2vCPU, 8GB RAM, 80GB NVMe, 6TB BW) - reg $14.95 - -After promo ends: $3.50, $5.95, $8.95, $14.95 respectively - -✅ Real NVMe storage (not marketing, actual PCIe NVMe drives) -✅ <2 hour average ticket response (we track this publicly) -✅ Low-density servers (20 VPS/server vs competitors' 50-100) -✅ US-based infrastructure (Virginia datacenter, <15ms from NYC) -✅ VirtFusion control panel (modern UI, one-click reinstalls, API) -✅ 30-day money-back guarantee - -📊 FULL LINEUP: -┌──────────┬──────┬─────┬──────────┬──────────┬──────────┐ -│ Plan │ vCPU │ RAM │ Storage │ Bandwidth│ Price/Mo │ -├──────────┼──────┼─────┼──────────┼──────────┼──────────┤ -│ Nano │ 1 │ 1GB │ 15GB NVMe│ 2TB │ $3.50 │ -│ Micro │ 1 │ 2GB │ 30GB NVMe│ 3TB │ $5.95 │ -│ Mini │ 2 │ 4GB │ 50GB NVMe│ 4TB │ $8.95 │ -│ Standard │ 2 │ 8GB │ 80GB NVMe│ 6TB │ $14.95 │ -│ Plus │ 4 │12GB │120GB NVMe│ 8TB │ $22.95 │ -│ Pro │ 4 │16GB │160GB NVMe│ 10TB │ $29.95 │ -└──────────┴──────┴─────┴──────────┴──────────┴──────────┘ - -📍 Location: Ashburn, Virginia (US East) -🔧 Network: 1Gbps ports, Premium Tier 1 bandwidth -💳 Payment: PayPal, Stripe, Bitcoin -📊 Uptime: 99.9% SLA with public status page - -🆚 WHY EZSCALE? -• Hetzner CX22 is €3.79 for 4GB BUT: 120ms latency from US, 24-48hr support, only 40GB storage -• DigitalOcean is $12 for 2GB BUT: 50% more expensive, half the RAM, same storage -• We're US-based with NVMe + generous RAM + support that actually responds - -🎁 FREE: Migration assistance from any competitor (we handle everything) - -[ORDER NOW] → https://ezscale.cloud/vps?promo=LEB2026RAM - -────────────────────────────────────────────────────────── -ABOUT US: -We run 3 high-spec servers (1.3TB total RAM!) with low VPS density, which means -your VPS gets real resources. When you open a ticket at 2am, we respond in <2 hours. - -AMA below - I'll answer questions about our infrastructure, NVMe setup, network, etc. - -Offer valid through [2 weeks from post]. Limited to first 150 signups. -``` - ---- - -## ACTION ITEMS (Updated Priority) - -### Week 1: Leverage Your NVMe -- [ ] **Offer free NVMe migrations** to existing customers on Node 1 - - Shows goodwill, fills up NVMe capacity - - "We just added 931GB NVMe - want faster disks for free?" - -- [ ] **Update VirtFusion** with new 8-tier plan lineup - - Nano through Pro on Node 1/3 (NVMe) - - Storage-500/1TB on Node 2 (11.2TB SATA SSD) - -### Week 2: Update Marketing -- [ ] **Rewrite pricing page** - lead with RAM + NVMe - - "4GB for $9, 8GB for $15 - with NVMe included" - - Comparison table vs Hetzner/DO/Vultr - -- [ ] **Create comparison tool** - interactive RAM/storage calculator - - "How much RAM do you need? We probably have more for less" - -### Week 3: LowEndBox Launch -- [ ] Post with code `LEB2026RAM` -- [ ] Focus messaging on RAM + NVMe (not just support) -- [ ] Target 100-150 signups (you have capacity!) - ---- - -## CONCLUSION - -**Your infrastructure is 2-3x better than I assumed.** This completely changes your competitive positioning: - -1. **You CAN compete on specs** (not just support) -2. **You have NVMe** (real competitive advantage) -3. **You have tons of RAM** (offer 2-4x more than competitors) -4. **Your margins are excellent** (67% on Standard plan!) -5. **You have room to grow** (60-75 more VPS before new hardware) - -**Bottom Line:** You're not a "budget specs + good support" provider. -You're a **"premium specs at budget prices"** provider. - -Position accordingly. - ---- - -## Files to Reference - -1. Original full strategy: `VPS_PLAN_REBUILD_2026.md` -2. This update: `VPS_PLAN_UPDATE_REAL_INFRASTRUCTURE.md` -3. Infrastructure discovery: `ezscale-discovery-20260208-163247/` - -**Next:** Update Laravel seeders with new 8-tier plan lineup? diff --git a/ezscale-horizon.conf b/docs/deployment/horizon-supervisor.conf similarity index 100% rename from ezscale-horizon.conf rename to docs/deployment/horizon-supervisor.conf diff --git a/install-horizon-supervisor.sh b/docs/deployment/install-horizon.sh similarity index 100% rename from install-horizon-supervisor.sh rename to docs/deployment/install-horizon.sh diff --git a/virtfusion-api-spec.yaml b/docs/integrations/virtfusion-api-spec.yaml similarity index 100% rename from virtfusion-api-spec.yaml rename to docs/integrations/virtfusion-api-spec.yaml diff --git a/discover.sh b/docs/scripts/discover.sh similarity index 100% rename from discover.sh rename to docs/scripts/discover.sh diff --git a/ezscale-discovery-20260208-163247/00-SUMMARY.txt b/ezscale-discovery-20260208-163247/00-SUMMARY.txt deleted file mode 100644 index a9c1df3..0000000 --- a/ezscale-discovery-20260208-163247/00-SUMMARY.txt +++ /dev/null @@ -1,53 +0,0 @@ -============================================ - EzScale Infrastructure Discovery Summary - Generated: Sun Feb 8 16:33:12 UTC 2026 -============================================ - -============================================ - NODE: vf-node-01 -============================================ - - OS: - Kernel: 5.14.0-611.11.1.el9_7.x86_64 - CPU: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz - Sockets: 2 - Cores: 14 - Threads: 56 - RAM: 503Gi total, 212Gi used - VMs: 28 running - Alloc: 108 vCPUs, 278528 MB (272 GB) RAM - CPU overcommit: 1.92x - RAM utilization: 50.0% - -============================================ - NODE: vf-node-02 -============================================ - - OS: - Kernel: 5.14.0-611.11.1.el9_7.x86_64 - CPU: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz - Sockets: 2 - Cores: 10 - Threads: 40 - RAM: 377Gi total, 189Gi used - VMs: 22 running - Alloc: 93 vCPUs, 230400 MB (225 GB) RAM - CPU overcommit: N/Ax - RAM utilization: N/A% - -============================================ - NODE: vf-node-03 -============================================ - - OS: - Kernel: 5.14.0-570.49.1.el9_6.x86_64 - CPU: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz - Sockets: 2 - Cores: 14 - Threads: 56 - RAM: 440Gi total, 180Gi used - VMs: 10 running - Alloc: 46 vCPUs, 114688 MB (112 GB) RAM - CPU overcommit: .82x - RAM utilization: 20.0% - diff --git a/ezscale-discovery-20260208-163247/vf-node-01.txt b/ezscale-discovery-20260208-163247/vf-node-01.txt deleted file mode 100644 index 08d8fbd..0000000 --- a/ezscale-discovery-20260208-163247/vf-node-01.txt +++ /dev/null @@ -1,525 +0,0 @@ -===== SYSTEM INFO ===== ---- Hostname --- -atl-01.node.vps.ezscale.tech - ---- OS --- -NAME="AlmaLinux" -VERSION="9.7 (Moss Jungle Cat)" -VERSION_ID="9.7" -PRETTY_NAME="AlmaLinux 9.7 (Moss Jungle Cat)" - ---- Kernel --- -5.14.0-611.11.1.el9_7.x86_64 - ---- Uptime --- - 11:32:47 up 59 days, 13:24, 0 users, load average: 5.82, 6.17, 6.34 - -===== CPU ===== ---- Model --- -Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz - ---- Physical CPUs --- -2 - ---- Cores per CPU --- -14 - ---- Total Threads --- -56 - ---- CPU Flags (virt) --- -ept vmx - ---- lscpu summary --- -CPU(s): 56 -On-line CPU(s) list: 0-55 -Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz -BIOS Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz -Thread(s) per core: 2 -Core(s) per socket: 14 -Socket(s): 2 -CPU(s) scaling MHz: 97% -CPU max MHz: 2900.0000 -CPU min MHz: 1200.0000 -L1d cache: 896 KiB (28 instances) -L1i cache: 896 KiB (28 instances) -L2 cache: 7 MiB (28 instances) -L3 cache: 70 MiB (2 instances) -NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54 -NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55 -Vulnerability L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable - -===== MEMORY ===== ---- Total / Used / Free --- - total used free shared buff/cache available -Mem: 503Gi 212Gi 2.9Gi 627Mi 291Gi 290Gi -Swap: 4.0Gi 4.0Gi 0.0Ki - ---- DIMM Details --- - Error Correction Type: Multi-bit ECC - Size: 64 GB - Locator: A1 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) LRDIMM - Speed: 2400 MT/s - Configured Memory Speed: 2400 MT/s - Size: 64 GB - Locator: A2 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) LRDIMM - Speed: 2400 MT/s - Configured Memory Speed: 2400 MT/s - Size: 64 GB - Locator: A3 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) LRDIMM - Speed: 2400 MT/s - Configured Memory Speed: 2400 MT/s - Locator: A4 - Bank Locator: Not Specified - Type: Unknown - Type Detail: None - Size: 64 GB - Locator: A5 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) LRDIMM - Speed: 2400 MT/s - Configured Memory Speed: 2400 MT/s - Locator: A6 - Bank Locator: Not Specified - Type: Unknown - Type Detail: None - Locator: A7 - Bank Locator: Not Specified - Type: Unknown - -===== STORAGE - BLOCK DEVICES ===== ---- lsblk --- -NAME SIZE TYPE FSTYPE MOUNTPOINT ROTA MODEL -sda 223.6G disk 0 MTFDDAK240MBP 01EJ260 01EJ260IBM -├─sda1 1G part xfs /boot 0 -└─sda2 222.6G part LVM2_member 0 - ├─almalinux-root 70G lvm xfs / 0 - ├─almalinux-swap 4G lvm swap [SWAP] 0 - └─almalinux-home 148.6G lvm xfs /home 0 -sdb 3.6T disk linux_raid_member 1 MG04SCA40EN -└─md1 7.3T raid10 xfs /mnt/bulk_vms 1 -sdc 3.6T disk linux_raid_member 1 MG04SCA40EN -└─md1 7.3T raid10 xfs /mnt/bulk_vms 1 -sdd 3.6T disk linux_raid_member 1 MG04SCA40EN -└─md1 7.3T raid10 xfs /mnt/bulk_vms 1 -sde 3.6T disk linux_raid_member 1 MG04SCA40EN -└─md1 7.3T raid10 xfs /mnt/bulk_vms 1 -nvme1n1 931.5G disk linux_raid_member 0 Sabrent Rocket 4.0 1TB -└─md0 931.4G raid1 xfs /mnt/nvme_vms 0 -nvme2n1 931.5G disk linux_raid_member 0 Sabrent Rocket 4.0 1TB -└─md0 931.4G raid1 xfs /mnt/nvme_vms 0 -nvme0n1 465.8G disk 0 Sabrent Rocket 4.0 500GB - ---- Disk Models --- -NAME SIZE MODEL ROTA TRAN -sda 223.6G MTFDDAK240MBP 01EJ260 01EJ260IBM 0 sas -sdb 3.6T MG04SCA40EN 1 sas -sdc 3.6T MG04SCA40EN 1 sas -sdd 3.6T MG04SCA40EN 1 sas -sde 3.6T MG04SCA40EN 1 sas -nvme1n1 931.5G Sabrent Rocket 4.0 1TB 0 nvme -nvme2n1 931.5G Sabrent Rocket 4.0 1TB 0 nvme -nvme0n1 465.8G Sabrent Rocket 4.0 500GB 0 nvme - -===== STORAGE - FILESYSTEM ===== ---- df -h --- -Filesystem Size Used Avail Use% Mounted on -/dev/mapper/almalinux-root 70G 5.4G 65G 8% / -/dev/sda1 960M 463M 498M 49% /boot -/dev/mapper/almalinux-home 149G 57G 92G 39% /home -/dev/md0 931G 6.6G 925G 1% /mnt/nvme_vms -/dev/md1 7.3T 52G 7.3T 1% /mnt/bulk_vms -192.168.10.3:/mnt/data/vms 12T 7.2T 4.1T 64% /mnt/vms - -===== STORAGE - ZFS ===== -ZFS not installed - -===== STORAGE - LVM ===== ---- Physical Volumes --- - PV VG Fmt Attr PSize PFree - /dev/sda2 almalinux lvm2 a-- <222.57g 0 - ---- Volume Groups --- - VG #PV #LV #SN Attr VSize VFree - almalinux 1 3 0 wz--n- <222.57g 0 - ---- Logical Volumes --- - LV VG LSize Attr - home almalinux <148.57g -wi-ao---- - root almalinux 70.00g -wi-ao---- - swap almalinux 4.00g -wi-ao---- - -===== STORAGE - MDADM (Software RAID) ===== -Personalities : [raid1] [raid10] -md1 : active raid10 sdd[0] sde[3] sdc[2] sdb[1] - 7813772288 blocks super 1.2 512K chunks 2 near-copies [4/4] [UUUU] - bitmap: 0/59 pages [0KB], 65536KB chunk - -md0 : active raid1 nvme1n1[1] nvme2n1[0] - 976630464 blocks super 1.2 [2/2] [UU] - bitmap: 0/8 pages [0KB], 65536KB chunk - -unused devices: - -===== NETWORK ===== ---- Interfaces --- -lo UNKNOWN 127.0.0.1/8 ::1/128 -eno3 DOWN -eno4 DOWN -eno1 UP -eno2 UP 192.168.10.2/29 -br0 UP 66.186.37.253/25 2602:2f3:ff:105::b/64 fe80::6240:606f:8445:594f/64 -5668246001 UNKNOWN fe80::fc5a:41ff:fe05:483/64 -7952655313 UNKNOWN fe80::fcd9:1fff:fef5:7fdc/64 -9669788654 UNKNOWN fe80::fc6e:f4ff:fe67:347a/64 -1585574411 UNKNOWN fe80::fc67:96ff:feea:ce07/64 -6538424133 UNKNOWN fe80::fc95:9eff:fe0c:7ae0/64 -7575455714 UNKNOWN fe80::fcce:70ff:fed5:3823/64 -1900074498 UNKNOWN fe80::fc2f:2dff:fe1c:6f20/64 -6868627519 UNKNOWN fe80::fc2c:a0ff:fed3:f24b/64 -8290678221 UNKNOWN fe80::fcd2:6aff:fea2:c868/64 -3144884207 UNKNOWN fe80::fcd2:c1ff:fe4f:da96/64 -9864921145 UNKNOWN fe80::fc90:ceff:febd:8a83/64 -3854082875 UNKNOWN fe80::fc08:cbff:fe96:16e/64 -2847939492 UNKNOWN fe80::fc9f:1cff:fe83:6e3f/64 -2270446172 UNKNOWN fe80::fced:2cff:feab:d352/64 -5375909748 UNKNOWN fe80::fc57:c6ff:fe73:57ae/64 -9709633390 UNKNOWN fe80::fcd1:aff:fead:7805/64 -6686699813 UNKNOWN fe80::fc65:61ff:fea3:754/64 -2577660031 UNKNOWN fe80::fc8b:12ff:fe20:fc7d/64 -1873685436 UNKNOWN fe80::fc94:5cff:fe67:d27a/64 -8339041496 UNKNOWN fe80::fc75:bdff:fee4:e7b0/64 -4635498757 UNKNOWN fe80::fcd6:e1ff:fe7f:d368/64 -2739236756 UNKNOWN fe80::fcdb:1cff:fefe:6d6/64 -5274046373 UNKNOWN fe80::fc85:cbff:fe49:5b14/64 -2672200667 UNKNOWN fe80::fcfb:32ff:fe12:73ae/64 -1473682335 UNKNOWN fe80::fcf6:edff:fe0a:4fc2/64 -1197738280 UNKNOWN fe80::fcd0:98ff:fe65:c3d3/64 -7928453883 UNKNOWN fe80::fc26:13ff:fed4:b9eb/64 -4723927902 UNKNOWN fe80::fc7a:57ff:fea1:32b6/64 -6775358137 UNKNOWN fe80::fcb4:d2ff:fed9:2709/64 - ---- Interface Speeds --- - 1197738280: 10Mbps (driver: tun) - 1473682335: 10Mbps (driver: tun) - 1585574411: 10Mbps (driver: tun) - 1873685436: 10Mbps (driver: tun) - 1900074498: 10Mbps (driver: tun) - 2270446172: 10Mbps (driver: tun) - 2577660031: 10Mbps (driver: tun) - 2672200667: 10Mbps (driver: tun) - 2739236756: 10Mbps (driver: tun) - 2847939492: 10Mbps (driver: tun) - 3144884207: 10Mbps (driver: tun) - 3854082875: 10Mbps (driver: tun) - 4635498757: 10Mbps (driver: tun) - 4723927902: 10Mbps (driver: tun) - 5274046373: 10Mbps (driver: tun) - 5375909748: 10Mbps (driver: tun) - 5668246001: 10Mbps (driver: tun) - 6538424133: 10Mbps (driver: tun) - 6686699813: 10Mbps (driver: tun) - 6775358137: 10Mbps (driver: tun) - 6868627519: 10Mbps (driver: tun) - 7575455714: 10Mbps (driver: tun) - 7928453883: 10Mbps (driver: tun) - 7952655313: 10Mbps (driver: tun) - 8290678221: 10Mbps (driver: tun) - 8339041496: 10Mbps (driver: tun) - 9669788654: 10Mbps (driver: tun) - 9709633390: 10Mbps (driver: tun) - 9864921145: 10Mbps (driver: tun) - br0: 10000Mbps (driver: bridge) - eno1: 10000Mbps (driver: ixgbe) - eno2: 10000Mbps (driver: ixgbe) - eno3: -1Mbps (driver: igb) - eno4: -1Mbps (driver: igb) - ---- Default Route --- -default via 66.186.37.129 dev br0 proto static metric 10 - ---- Bridge / Bond Config --- -bridge name bridge id STP enabled interfaces -br0 8000.246e96a63f40 yes 1197738280 - 1473682335 - 1585574411 - 1873685436 - 1900074498 - 2270446172 - 2577660031 - 2672200667 - 2739236756 - 2847939492 - 3144884207 - 3854082875 - 4635498757 - 4723927902 - 5274046373 - 5375909748 - 5668246001 - 6538424133 - 6686699813 - 6775358137 - 6868627519 - 7575455714 - 7928453883 - 7952655313 - 8290678221 - 8339041496 - 9669788654 - 9709633390 - 9864921145 - eno1 -6: br0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 - - -===== LIBVIRT / KVM ===== ---- Libvirt Version --- -Compiled against library: libvirt 10.10.0 -Using library: libvirt 10.10.0 -Using API: QEMU 10.10.0 -Running hypervisor: QEMU 9.1.0 -Running against daemon: 10.10.0 - - ---- All VMs (running + stopped) --- - Id Name State ------------------------------------------------------- - 6 b5d24674-c0e6-487f-94b6-d3c378108244 running - 9 b6a57a3b-d4f9-4804-aa2a-fd5c40514e86 running - 10 203239a0-3222-42bc-aace-2f9633ae91b3 running - 11 47bb28c5-cedb-425d-97fa-c71321481b19 running - 14 4a951d30-4aea-4f13-b591-8d6ef3d15bac running - 18 85a274bd-a625-4301-8975-1040ebb0111e running - 19 33c942cf-f311-428b-bbdc-6808bc0c4de0 running - 21 409c693b-d165-4bdb-81af-d7a7ce23eaa7 running - 25 b7dc324d-9b3b-41c7-a572-57bef6874c84 running - 27 c434d488-44a6-4d76-8530-818a086b0b3c running - 29 8babf155-7b38-490b-815b-faf507cd0cdc running - 30 4b16b482-d871-4404-b641-b33d4103fa00 running - 31 415c3951-acf3-411f-ae3f-a8a4456b8e92 running - 34 4a56b2e2-1655-4893-8f2a-e909be9f5d5a running - 35 95e44451-1bce-4270-82d1-2f29a404d9dd running - 36 6e50481d-ac2d-4492-a44e-19fa1da29bd6 running - 48 2d704a2a-3a0a-432e-89b4-2f04516b771e paused - 50 41b20d00-f4c4-4064-8e1d-7bd284bcb773 running - 53 3c0b6c1a-a6b5-4522-b458-31e3773b3d0d running - 54 83deb44e-acf3-4631-b757-44c00b88b256 running - 56 88fef797-3629-4e09-85a7-500ff6d7b05c running - 57 dddeb4bf-149b-4271-af3e-9125bcad38a8 running - 60 0df53bc1-d5bd-4843-87c0-32a81bb9afcc running - 61 44caf596-e1ca-43cc-a44f-576441be8c48 running - 62 2fbf4caf-e7c0-4874-9f41-71555b593de0 running - 64 1e6bc3e6-9044-489a-92dc-243f929d2d05 running - 67 068bafe5-f180-4763-b1c0-a1a75028929f running - 68 be0cfe25-04af-4865-afd3-eb5796f7e018 running - 69 fbc7f30d-df58-4f86-b36b-608bfbf2c483 running - - ---- Running VM Count --- -28 - ---- VM Resource Usage --- -VM_NAME | vCPUs | RAM_MAX | STATE ---------|-------|---------|------ -b5d24674-c0e6-487f-94b6-d3c378108244 | 4 | 8388608 KiB | running -b6a57a3b-d4f9-4804-aa2a-fd5c40514e86 | 1 | 1048576 KiB | running -203239a0-3222-42bc-aace-2f9633ae91b3 | 4 | 8388608 KiB | running -47bb28c5-cedb-425d-97fa-c71321481b19 | 6 | 16777216 KiB | running -4a951d30-4aea-4f13-b591-8d6ef3d15bac | 4 | 8388608 KiB | running -85a274bd-a625-4301-8975-1040ebb0111e | 6 | 16777216 KiB | running -33c942cf-f311-428b-bbdc-6808bc0c4de0 | 8 | 33554432 KiB | running -409c693b-d165-4bdb-81af-d7a7ce23eaa7 | 1 | 2097152 KiB | running -b7dc324d-9b3b-41c7-a572-57bef6874c84 | 4 | 8388608 KiB | running -c434d488-44a6-4d76-8530-818a086b0b3c | 4 | 8388608 KiB | running -8babf155-7b38-490b-815b-faf507cd0cdc | 1 | 1048576 KiB | running -4b16b482-d871-4404-b641-b33d4103fa00 | 8 | 33554432 KiB | running -415c3951-acf3-411f-ae3f-a8a4456b8e92 | 2 | 2097152 KiB | running -4a56b2e2-1655-4893-8f2a-e909be9f5d5a | 2 | 2097152 KiB | running -95e44451-1bce-4270-82d1-2f29a404d9dd | 2 | 8388608 KiB | running -6e50481d-ac2d-4492-a44e-19fa1da29bd6 | 2 | 4194304 KiB | running -41b20d00-f4c4-4064-8e1d-7bd284bcb773 | 1 | 1048576 KiB | running -3c0b6c1a-a6b5-4522-b458-31e3773b3d0d | 4 | 8388608 KiB | running -83deb44e-acf3-4631-b757-44c00b88b256 | 4 | 8388608 KiB | running -88fef797-3629-4e09-85a7-500ff6d7b05c | 8 | 33554432 KiB | running -dddeb4bf-149b-4271-af3e-9125bcad38a8 | 4 | 8388608 KiB | running -0df53bc1-d5bd-4843-87c0-32a81bb9afcc | 8 | 16777216 KiB | running -44caf596-e1ca-43cc-a44f-576441be8c48 | 4 | 8388608 KiB | running -2fbf4caf-e7c0-4874-9f41-71555b593de0 | 6 | 16777216 KiB | running -1e6bc3e6-9044-489a-92dc-243f929d2d05 | 1 | 2097152 KiB | running -068bafe5-f180-4763-b1c0-a1a75028929f | 1 | 1048576 KiB | running -be0cfe25-04af-4865-afd3-eb5796f7e018 | 4 | 8388608 KiB | running -fbc7f30d-df58-4f86-b36b-608bfbf2c483 | 4 | 8388608 KiB | running - ---- Total Allocated vCPUs (running VMs) --- -108 - ---- Total Allocated RAM (running VMs) --- -278528 MB (272 GB) - ---- VM Disk Locations --- -[b5d24674-c0e6-487f-94b6-d3c378108244] - file disk vda /mnt/vms/b5d24674-c0e6-487f-94b6-d3c378108244_1.img - file disk sdx /home/vf-data/server/b5d24674-c0e6-487f-94b6-d3c378108244/cloud-drive.img -[b6a57a3b-d4f9-4804-aa2a-fd5c40514e86] - file disk vda /mnt/vms/b6a57a3b-d4f9-4804-aa2a-fd5c40514e86_1.img - file disk sdx /home/vf-data/server/b6a57a3b-d4f9-4804-aa2a-fd5c40514e86/cloud-drive.img -[203239a0-3222-42bc-aace-2f9633ae91b3] - file disk vda /mnt/vms/203239a0-3222-42bc-aace-2f9633ae91b3_1.img - file disk sdx /home/vf-data/server/203239a0-3222-42bc-aace-2f9633ae91b3/cloud-drive.img -[47bb28c5-cedb-425d-97fa-c71321481b19] - file disk vda /mnt/vms/47bb28c5-cedb-425d-97fa-c71321481b19_1.img - file disk sdx /home/vf-data/server/47bb28c5-cedb-425d-97fa-c71321481b19/cloud-drive.img -[4a951d30-4aea-4f13-b591-8d6ef3d15bac] - file disk vda /mnt/vms/4a951d30-4aea-4f13-b591-8d6ef3d15bac_1.img - file disk sdx /home/vf-data/server/4a951d30-4aea-4f13-b591-8d6ef3d15bac/cloud-drive.img -[85a274bd-a625-4301-8975-1040ebb0111e] - file disk vda /mnt/vms/85a274bd-a625-4301-8975-1040ebb0111e_1.img - file disk sdx /home/vf-data/server/85a274bd-a625-4301-8975-1040ebb0111e/cloud-drive.img -[33c942cf-f311-428b-bbdc-6808bc0c4de0] - file disk vda /mnt/vms/33c942cf-f311-428b-bbdc-6808bc0c4de0_1.img - file disk sdx /home/vf-data/server/33c942cf-f311-428b-bbdc-6808bc0c4de0/cloud-drive.img -[409c693b-d165-4bdb-81af-d7a7ce23eaa7] - file disk vda /mnt/vms/409c693b-d165-4bdb-81af-d7a7ce23eaa7_1.img - file disk sdx /home/vf-data/server/409c693b-d165-4bdb-81af-d7a7ce23eaa7/cloud-drive.img -[b7dc324d-9b3b-41c7-a572-57bef6874c84] - file disk vda /mnt/vms/b7dc324d-9b3b-41c7-a572-57bef6874c84_1.img - file disk sdx /home/vf-data/server/b7dc324d-9b3b-41c7-a572-57bef6874c84/cloud-drive.img -[c434d488-44a6-4d76-8530-818a086b0b3c] - file disk vda /mnt/vms/c434d488-44a6-4d76-8530-818a086b0b3c_1.img - file disk sdx /home/vf-data/server/c434d488-44a6-4d76-8530-818a086b0b3c/cloud-drive.img -[8babf155-7b38-490b-815b-faf507cd0cdc] - file disk vda /mnt/vms/8babf155-7b38-490b-815b-faf507cd0cdc_1.img - file disk sdx /home/vf-data/server/8babf155-7b38-490b-815b-faf507cd0cdc/cloud-drive.img -[4b16b482-d871-4404-b641-b33d4103fa00] - file disk vda /mnt/vms/4b16b482-d871-4404-b641-b33d4103fa00_1.img - file disk sdx /home/vf-data/server/4b16b482-d871-4404-b641-b33d4103fa00/cloud-drive.img -[415c3951-acf3-411f-ae3f-a8a4456b8e92] - file disk vda /mnt/vms/415c3951-acf3-411f-ae3f-a8a4456b8e92_1.img - file disk sdx /home/vf-data/server/415c3951-acf3-411f-ae3f-a8a4456b8e92/cloud-drive.img -[4a56b2e2-1655-4893-8f2a-e909be9f5d5a] - file disk vda /mnt/vms/4a56b2e2-1655-4893-8f2a-e909be9f5d5a_1.img - file disk sdx /home/vf-data/server/4a56b2e2-1655-4893-8f2a-e909be9f5d5a/cloud-drive.img -[95e44451-1bce-4270-82d1-2f29a404d9dd] - file disk vda /mnt/vms/95e44451-1bce-4270-82d1-2f29a404d9dd_1.img - file disk sdx /home/vf-data/server/95e44451-1bce-4270-82d1-2f29a404d9dd/cloud-drive.img -[6e50481d-ac2d-4492-a44e-19fa1da29bd6] - file disk vda /mnt/vms/6e50481d-ac2d-4492-a44e-19fa1da29bd6_1.img - file disk sdx /home/vf-data/server/6e50481d-ac2d-4492-a44e-19fa1da29bd6/cloud-drive.img -[2d704a2a-3a0a-432e-89b4-2f04516b771e] - file disk vda /mnt/vms/2d704a2a-3a0a-432e-89b4-2f04516b771e_1.img - file disk sdx /home/vf-data/server/2d704a2a-3a0a-432e-89b4-2f04516b771e/cloud-drive.img -[41b20d00-f4c4-4064-8e1d-7bd284bcb773] - file disk vda /mnt/vms/41b20d00-f4c4-4064-8e1d-7bd284bcb773_1.img - file disk sdx /home/vf-data/server/41b20d00-f4c4-4064-8e1d-7bd284bcb773/cloud-drive.img -[3c0b6c1a-a6b5-4522-b458-31e3773b3d0d] - file disk vda /mnt/vms/3c0b6c1a-a6b5-4522-b458-31e3773b3d0d_1.img - file disk sdx /home/vf-data/server/3c0b6c1a-a6b5-4522-b458-31e3773b3d0d/cloud-drive.img -[83deb44e-acf3-4631-b757-44c00b88b256] - file disk vda /mnt/vms/83deb44e-acf3-4631-b757-44c00b88b256_1.img - file disk sdx /home/vf-data/server/83deb44e-acf3-4631-b757-44c00b88b256/cloud-drive.img -[88fef797-3629-4e09-85a7-500ff6d7b05c] - file disk vda /mnt/vms/88fef797-3629-4e09-85a7-500ff6d7b05c_1.img - file disk sdx /home/vf-data/server/88fef797-3629-4e09-85a7-500ff6d7b05c/cloud-drive.img -[dddeb4bf-149b-4271-af3e-9125bcad38a8] - file disk vda /mnt/vms/dddeb4bf-149b-4271-af3e-9125bcad38a8_1.img - file disk sdx /home/vf-data/server/dddeb4bf-149b-4271-af3e-9125bcad38a8/cloud-drive.img -[0df53bc1-d5bd-4843-87c0-32a81bb9afcc] - file disk vda /mnt/vms/0df53bc1-d5bd-4843-87c0-32a81bb9afcc_1.img - file disk sdx /home/vf-data/server/0df53bc1-d5bd-4843-87c0-32a81bb9afcc/cloud-drive.img -[44caf596-e1ca-43cc-a44f-576441be8c48] - file disk vda /mnt/vms/44caf596-e1ca-43cc-a44f-576441be8c48_1.img - file disk sdx /home/vf-data/server/44caf596-e1ca-43cc-a44f-576441be8c48/cloud-drive.img -[2fbf4caf-e7c0-4874-9f41-71555b593de0] - file disk vda /mnt/vms/2fbf4caf-e7c0-4874-9f41-71555b593de0_1.img - file disk sdx /home/vf-data/server/2fbf4caf-e7c0-4874-9f41-71555b593de0/cloud-drive.img -[1e6bc3e6-9044-489a-92dc-243f929d2d05] - file disk vda /mnt/vms/1e6bc3e6-9044-489a-92dc-243f929d2d05_1.img - file disk sdx /home/vf-data/server/1e6bc3e6-9044-489a-92dc-243f929d2d05/cloud-drive.img -[068bafe5-f180-4763-b1c0-a1a75028929f] - file disk vda /mnt/vms/068bafe5-f180-4763-b1c0-a1a75028929f_1.img - file disk sdx /home/vf-data/server/068bafe5-f180-4763-b1c0-a1a75028929f/cloud-drive.img -[be0cfe25-04af-4865-afd3-eb5796f7e018] - file disk vda /mnt/vms/be0cfe25-04af-4865-afd3-eb5796f7e018_1.img - file disk sdx /home/vf-data/server/be0cfe25-04af-4865-afd3-eb5796f7e018/cloud-drive.img -[fbc7f30d-df58-4f86-b36b-608bfbf2c483] - file disk vda /mnt/vms/fbc7f30d-df58-4f86-b36b-608bfbf2c483_1.img - file disk sdx /home/vf-data/server/fbc7f30d-df58-4f86-b36b-608bfbf2c483/cloud-drive.img - ---- Storage Pools --- - Name State Autostart ---------------------------- - - -===== QEMU ===== ---- QEMU Version --- -QEMU emulator version 9.1.0 (qemu-kvm-9.1.0-29.el9_7.alma.1) - -===== DISK USAGE BY VM IMAGES ===== ---- qcow2 files --- - /home/vf-data/os/template/almalinux-9-gnome-x86_64-2023-04-25.qcow2 (actual: 1.1G, virtual: 4.88 GiB) - /home/vf-data/os/template/cloudlinux-9-latest-x86_64.qcow2 (actual: 1.1G, virtual: 10 GiB) - /home/vf-data/os/template/ubuntu-jammy-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 643M, virtual: 2.2 GiB) - /home/vf-data/os/template/ubuntu-lunar-server-cloudimg-amd64.qcow2 (actual: 722M, virtual: 3.5 GiB) - /home/vf-data/os/template/ubuntu-bionic-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 387M, virtual: 2.2 GiB) - /home/vf-data/os/template/ubuntu-focal-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 613M, virtual: 2.2 GiB) - /home/vf-data/os/template/debian-12-x86_64-2023-06-11.qcow2 (actual: 441M, virtual: 1.95 GiB) - /home/vf-data/os/template/alma-linux-8-minimal-x86_64-2024-01-27.qcow2 (actual: 666M, virtual: 10 GiB) - /home/vf-data/os/template/windows_server_2012_r2_standard.qcow2 (actual: 12G, virtual: 12.2 GiB) - /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 (actual: 558M, virtual: 3.5 GiB) - /home/vf-data/os/template/centos-7-minimal-x86-64.qcow2 (actual: 446M, virtual: 1.95 GiB) - /home/vf-data/os/template/debian-11-xfce-x86_64-2023-04-25.qcow2 (actual: 1.3G, virtual: 4.88 GiB) - /home/vf-data/os/template/fedora-40-x86-64.qcow2 (actual: 380M, virtual: 5 GiB) - /home/vf-data/os/template/debian-11-x86_64-2023-04-25.qcow2 (actual: 373M, virtual: 1.95 GiB) - /home/vf-data/os/template/debian-12-ext4-x86_64-2025-03-13.qcow2 (actual: 403M, virtual: 1.95 GiB) - /home/vf-data/os/template/windows-server-2025-standard-2024-11-06.qcow2 (actual: 5.9G, virtual: 12.2 GiB) - /home/vf-data/os/template/centos-8-3-x86-64.qcow2 (actual: 1.3G, virtual: 10 GiB) - /home/vf-data/os/template/windows-server-2019-standard-2024-03-06.qcow2 (actual: 5.8G, virtual: 13.7 GiB) - /home/vf-data/os/template/almalinux-9-x86_64-2024-11-20.qcow2 (actual: 507M, virtual: 10 GiB) - /home/vf-data/os/template/centos-stream-8-minimal-x86_64.qcow2 (actual: 486M, virtual: 3.61 GiB) - /home/vf-data/os/template/almalinux-10-x86-64.qcow2 (actual: 439M, virtual: 10 GiB) - /home/vf-data/os/template/fedora-42-x86-64.qcow2 (actual: 508M, virtual: 5 GiB) - /home/vf-data/os/template/windows-server-2022-standard-2024-03-06.qcow2 (actual: 5.5G, virtual: 12.2 GiB) - ---- raw disk files --- - -===== SERVICES ===== ---- Key Services Status --- - libvirtd: inactive -not-found - qemu-guest-agent: inactive -not-found - virtfusion: inactive -not-found - virtfusion-agent: inactive -not-found - zfs-zed: inactive -not-found - zfs-import-cache: inactive -not-found - zfs-mount: inactive -not-found - -===== RESOURCE SUMMARY ===== ---- CPU --- - Total threads: 56 - Allocated vCPUs: 108 - Overcommit ratio: 1.92 - ---- RAM --- - Total RAM: 515361 MB (503 GB) - Allocated to VMs: 278528 MB (272 GB) - Free for host/new VMs: 236833 MB - Utilization: 50.0% - -===== END ===== diff --git a/ezscale-discovery-20260208-163247/vf-node-02.txt b/ezscale-discovery-20260208-163247/vf-node-02.txt deleted file mode 100644 index e4ee40f..0000000 --- a/ezscale-discovery-20260208-163247/vf-node-02.txt +++ /dev/null @@ -1,514 +0,0 @@ -===== SYSTEM INFO ===== ---- Hostname --- -atl-02.node.vps.ezscale.tech - ---- OS --- -NAME="AlmaLinux" -VERSION="9.7 (Moss Jungle Cat)" -VERSION_ID="9.7" -PRETTY_NAME="AlmaLinux 9.7 (Moss Jungle Cat)" - ---- Kernel --- -5.14.0-611.11.1.el9_7.x86_64 - ---- Uptime --- - 11:32:57 up 59 days, 13:42, 0 users, load average: 5.48, 6.85, 6.74 - -===== CPU ===== ---- Model --- -Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz - ---- Physical CPUs --- -2 - ---- Cores per CPU --- -10 - ---- Total Threads --- -40 - ---- CPU Flags (virt) --- -ept vmx - ---- lscpu summary --- -CPU(s): 40 -On-line CPU(s) list: 0-39 -Model name: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz -BIOS Model name: Intel(R) Xeon(R) CPU E5-2680 v2 @ 2.80GHz -Thread(s) per core: 2 -Core(s) per socket: 10 -Socket(s): 2 -CPU(s) scaling MHz: 86% -CPU max MHz: 3600.0000 -CPU min MHz: 1200.0000 -L1d cache: 640 KiB (20 instances) -L1i cache: 640 KiB (20 instances) -L2 cache: 5 MiB (20 instances) -L3 cache: 50 MiB (2 instances) -NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38 -NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39 -Vulnerability L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable - -===== MEMORY ===== ---- Total / Used / Free --- - total used free shared buff/cache available -Mem: 377Gi 189Gi 2.7Gi 1.6Gi 189Gi 188Gi -Swap: 4.0Gi 4.0Gi 5.0Mi - ---- DIMM Details --- - Error Correction Type: Multi-bit ECC - Size: 16 GB - Locator: DIMM_A1 - Bank Locator: Not Specified - Type: DDR3 - Type Detail: Synchronous Registered (Buffered) - Speed: 1600 MT/s - Configured Memory Speed: 1333 MT/s - Size: 16 GB - Locator: DIMM_A2 - Bank Locator: Not Specified - Type: DDR3 - Type Detail: Synchronous Registered (Buffered) - Speed: 1600 MT/s - Configured Memory Speed: 1333 MT/s - Size: 16 GB - Locator: DIMM_A3 - Bank Locator: Not Specified - Type: DDR3 - Type Detail: Synchronous Registered (Buffered) - Speed: 1600 MT/s - Configured Memory Speed: 1333 MT/s - Size: 16 GB - Locator: DIMM_A4 - Bank Locator: Not Specified - Type: DDR3 - Type Detail: Synchronous Registered (Buffered) - Speed: 1600 MT/s - Configured Memory Speed: 1333 MT/s - Size: 16 GB - Locator: DIMM_A5 - Bank Locator: Not Specified - Type: DDR3 - Type Detail: Synchronous Registered (Buffered) - Speed: 1600 MT/s - Configured Memory Speed: 1333 MT/s - Size: 16 GB - Locator: DIMM_A6 - Bank Locator: Not Specified - Type: DDR3 - -===== STORAGE - BLOCK DEVICES ===== ---- lsblk --- -NAME SIZE TYPE FSTYPE MOUNTPOINT ROTA MODEL -sda 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdb 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdc 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdd 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sde 279.4G disk ddf_raid_member 1 AL13SEB300 -├─md126 278.9G raid1 1 -│ ├─md126p1 1G part xfs /boot 1 -│ └─md126p2 277.9G part LVM2_member 1 -│ ├─almalinux-root 70G lvm xfs / 1 -│ ├─almalinux-swap 4G lvm swap [SWAP] 1 -│ └─almalinux-home 203.9G lvm xfs /home 1 -└─md127 0B md 0 -sdf 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdg 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdh 279.4G disk ddf_raid_member 1 AL13SEB300 -├─md126 278.9G raid1 1 -│ ├─md126p1 1G part xfs /boot 1 -│ └─md126p2 277.9G part LVM2_member 1 -│ ├─almalinux-root 70G lvm xfs / 1 -│ ├─almalinux-swap 4G lvm swap [SWAP] 1 -│ └─almalinux-home 203.9G lvm xfs /home 1 -└─md127 0B md 0 -sdi 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdj 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdk 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdl 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdm 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 -sdn 1.9T disk linux_raid_member 0 Micron_1100_MTFDDAK2T0TBN -└─md0 11.2T raid10 LVM2_member 0 - └─vg_vm-lv_vm 11.2T lvm xfs /mnt/data 0 - ---- Disk Models --- -NAME SIZE MODEL ROTA TRAN -sda 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdb 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdc 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdd 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sde 279.4G AL13SEB300 1 sas -sdf 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdg 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdh 279.4G AL13SEB300 1 sas -sdi 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdj 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdk 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdl 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdm 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas -sdn 1.9T Micron_1100_MTFDDAK2T0TBN 0 sas - -===== STORAGE - FILESYSTEM ===== ---- df -h --- -Filesystem Size Used Avail Use% Mounted on -/dev/mapper/almalinux-root 70G 9.8G 61G 15% / -/dev/md126p1 960M 397M 564M 42% /boot -/dev/mapper/almalinux-home 204G 45G 160G 22% /home -/dev/mapper/vg_vm-lv_vm 12T 7.2T 4.1T 64% /mnt/data -localhost:/mnt/data/vms 12T 7.2T 4.1T 64% /mnt/vms - -===== STORAGE - ZFS ===== -ZFS not installed - -===== STORAGE - LVM ===== ---- Physical Volumes --- - PV VG Fmt Attr PSize PFree - /dev/md0 vg_vm lvm2 a-- <11.18t 0 - /dev/md126p2 almalinux lvm2 a-- 277.87g 0 - ---- Volume Groups --- - VG #PV #LV #SN Attr VSize VFree - almalinux 1 3 0 wz--n- 277.87g 0 - vg_vm 1 1 0 wz--n- <11.18t 0 - ---- Logical Volumes --- - LV VG LSize Attr - home almalinux 203.87g -wi-ao---- - root almalinux 70.00g -wi-ao---- - swap almalinux 4.00g -wi-ao---- - lv_vm vg_vm <11.18t -wi-ao---- - -===== STORAGE - MDADM (Software RAID) ===== -Personalities : [raid1] [raid10] -md0 : active raid10 sdk[1] sdn[0] sdg[2] sdd[5] sdj[11] sdi[8] sdf[6] sdc[4] sdm[3] sdb[9] sda[10] sdl[7] - 12001597440 blocks super 1.2 512K chunks 2 near-copies [12/12] [UUUUUUUUUUUU] - bitmap: 36/90 pages [144KB], 65536KB chunk - -md126 : active raid1 sdh[1] sde[0] - 292421632 blocks super external:/md127/0 [2/2] [UU] - -md127 : inactive sdh[1](S) sde[0](S) - 1094236 blocks super external:ddf - -unused devices: - -===== NETWORK ===== ---- Interfaces --- -lo UNKNOWN 127.0.0.1/8 ::1/128 -eno1 UP -eno2 DOWN -eno3 UP 172.20.254.253/16 -enp68s0f0 UP 192.168.10.3/29 fe80::a236:9fff:fe42:febc/64 -eno4 DOWN -enp68s0f1 DOWN -br0 UP 66.186.37.254/25 2605:bb00:c010:4::3/64 fe80::dbb6:6f64:abf5:c9a4/64 -4142776250 UNKNOWN fe80::fcae:98ff:fe9b:9169/64 -3687292804@eno3 UP fe80::2c0:21ff:fe51:49c7/64 -9865730239 UNKNOWN fe80::fcc8:51ff:fe9e:f946/64 -4480397161 UNKNOWN fe80::fc41:37ff:fef7:544a/64 -6226104096 UNKNOWN fe80::fc4c:25ff:fede:57d6/64 -1512514452 UNKNOWN fe80::fc37:dfff:fec2:e703/64 -5691952363 UNKNOWN fe80::fc94:5cff:fe53:23b/64 -4793215883 UNKNOWN fe80::fc3e:3aff:fe53:690c/64 -9065882520 UNKNOWN fe80::fc25:f3ff:fe86:256c/64 -8232538989 UNKNOWN fe80::fc5d:f2ff:feba:3b6d/64 -1876239691 UNKNOWN fe80::fc89:cdff:feb1:f4ea/64 -5579955486 UNKNOWN fe80::fc20:26ff:feab:ace1/64 -1384622875 UNKNOWN fe80::fc37:94ff:fee9:6f46/64 -3473746128 UNKNOWN fe80::fc62:fcff:fe5b:656a/64 -6844105562 UNKNOWN fe80::fc69:e3ff:fe51:837c/64 -2285253971 UNKNOWN fe80::fc43:26ff:feea:ec4f/64 -4965374655 UNKNOWN fe80::fce8:fff:fe38:5de7/64 -3975024440 UNKNOWN fe80::fcf9:f2ff:fe93:87b6/64 -8318991295 UNKNOWN fe80::fc16:faff:feeb:fc18/64 -6899839531 UNKNOWN fe80::fcbf:b3ff:fe7f:faa6/64 -5136141790 UNKNOWN fe80::fc7a:b2ff:fee9:f0fa/64 -6945298055 UNKNOWN fe80::fce2:d3ff:fed8:fc28/64 -6641190120 UNKNOWN fe80::fc4f:73ff:fea1:71c/64 - ---- Interface Speeds --- - 1384622875: 10Mbps (driver: tun) - 1512514452: 10Mbps (driver: tun) - 1876239691: 10Mbps (driver: tun) - 2285253971: 10Mbps (driver: tun) - 3473746128: 10Mbps (driver: tun) - 3687292804: 1000Mbps (driver: macvlan) - 3975024440: 10Mbps (driver: tun) - 4142776250: 10Mbps (driver: tun) - 4480397161: 10Mbps (driver: tun) - 4793215883: 10Mbps (driver: tun) - 4965374655: 10Mbps (driver: tun) - 5136141790: 10Mbps (driver: tun) - 5579955486: 10Mbps (driver: tun) - 5691952363: 10Mbps (driver: tun) - 6226104096: 10Mbps (driver: tun) - 6641190120: 10Mbps (driver: tun) - 6844105562: 10Mbps (driver: tun) - 6899839531: 10Mbps (driver: tun) - 6945298055: 10Mbps (driver: tun) - 8232538989: 10Mbps (driver: tun) - 8318991295: 10Mbps (driver: tun) - 9065882520: 10Mbps (driver: tun) - 9865730239: 10Mbps (driver: tun) - br0: 1000Mbps (driver: bridge) - eno1: 1000Mbps (driver: igb) - eno2: -1Mbps (driver: igb) - eno3: 1000Mbps (driver: igb) - eno4: -1Mbps (driver: igb) - enp68s0f0: 10000Mbps (driver: ixgbe) - enp68s0f1: -1Mbps (driver: ixgbe) - ---- Default Route --- -default via 66.186.37.129 dev br0 proto static metric 10 - ---- Bridge / Bond Config --- -bridge name bridge id STP enabled interfaces -br0 8000.b8ca3a6ec5cc yes 1384622875 - 1512514452 - 1876239691 - 2285253971 - 3473746128 - 3975024440 - 4142776250 - 4480397161 - 4793215883 - 4965374655 - 5136141790 - 5579955486 - 5691952363 - 6226104096 - 6641190120 - 6844105562 - 6899839531 - 6945298055 - 8232538989 - 8318991295 - 9065882520 - 9865730239 - eno1 -8: br0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 - - -===== LIBVIRT / KVM ===== ---- Libvirt Version --- -Compiled against library: libvirt 10.10.0 -Using library: libvirt 10.10.0 -Using API: QEMU 10.10.0 -Running hypervisor: QEMU 9.1.0 -Running against daemon: 10.10.0 - - ---- All VMs (running + stopped) --- - Id Name State ------------------------------------------------------- - 1 82e3ea29-a7eb-49eb-ad66-2a7523359408 running - 2 0ad0f8f8-c784-4cd7-a885-064fd5dec42b running - 5 c163a847-d2cf-489a-b2ae-402daa0fb880 running - 6 571fa5af-f75c-4f6e-95b7-c0e68200a9ae running - 10 9469dd33-0d1e-460e-9674-94508798497c running - 11 0ce20a29-bf89-4095-9abc-1e148613d2a7 running - 12 40631bb2-34fc-42ea-b58c-60506d1adb09 running - 13 98268e4a-7812-43a7-bbd1-b1cc4e366368 running - 14 99a23167-132c-49b8-8203-7529077b135e running - 15 2dd34cb1-8faa-4448-a5b8-21bbd1104459 running - 18 4d4689a2-543c-4543-b501-31828c9c6564 running - 22 bbb290fa-2a94-408a-904c-b96140034807 running - 25 8e3d0c3a-2a70-4c6b-9030-057300cb5e47 running - 26 e028b84c-5a0d-427d-bd98-efb178826072 running - 27 3579b300-eac8-4e7f-b6fa-d3c11b63c062 running - 28 5cf90f68-657c-41af-a96d-ddc7b2c3e0b8 running - 34 594ffdd9-06dd-4183-b956-21a601edfef1 running - 35 721de6e8-0e3c-490b-aab6-4daa7aed7f35 running - 36 680f78b5-d774-4aa9-a12b-3c6aaa9f4aae running - 38 95b968e8-1975-4de1-85bb-9c521486d431 running - 39 e8fac828-9665-42b1-bde0-a46d63e67e60 running - 40 716d7378-9108-4b12-afef-cd1af4448c25 running - - ---- Running VM Count --- -22 - ---- VM Resource Usage --- -VM_NAME | vCPUs | RAM_MAX | STATE ---------|-------|---------|------ -82e3ea29-a7eb-49eb-ad66-2a7523359408 | 1 | 1048576 KiB | running -0ad0f8f8-c784-4cd7-a885-064fd5dec42b | 6 | 16777216 KiB | running -c163a847-d2cf-489a-b2ae-402daa0fb880 | 4 | 8388608 KiB | running -571fa5af-f75c-4f6e-95b7-c0e68200a9ae | 4 | 8388608 KiB | running -9469dd33-0d1e-460e-9674-94508798497c | 6 | 16777216 KiB | running -0ce20a29-bf89-4095-9abc-1e148613d2a7 | 6 | 16777216 KiB | running -40631bb2-34fc-42ea-b58c-60506d1adb09 | 6 | 16777216 KiB | running -98268e4a-7812-43a7-bbd1-b1cc4e366368 | 6 | 16777216 KiB | running -99a23167-132c-49b8-8203-7529077b135e | 4 | 8388608 KiB | running -2dd34cb1-8faa-4448-a5b8-21bbd1104459 | 4 | 8388608 KiB | running -4d4689a2-543c-4543-b501-31828c9c6564 | 4 | 8388608 KiB | running -bbb290fa-2a94-408a-904c-b96140034807 | 1 | 1048576 KiB | running -8e3d0c3a-2a70-4c6b-9030-057300cb5e47 | 4 | 2097152 KiB | running -e028b84c-5a0d-427d-bd98-efb178826072 | 6 | 16777216 KiB | running -3579b300-eac8-4e7f-b6fa-d3c11b63c062 | 1 | 2097152 KiB | running -5cf90f68-657c-41af-a96d-ddc7b2c3e0b8 | 6 | 16777216 KiB | running -594ffdd9-06dd-4183-b956-21a601edfef1 | 1 | 2097152 KiB | running -721de6e8-0e3c-490b-aab6-4daa7aed7f35 | 1 | 1048576 KiB | running -680f78b5-d774-4aa9-a12b-3c6aaa9f4aae | 6 | 16777216 KiB | running -95b968e8-1975-4de1-85bb-9c521486d431 | 4 | 8388608 KiB | running -e8fac828-9665-42b1-bde0-a46d63e67e60 | 8 | 33554432 KiB | running -716d7378-9108-4b12-afef-cd1af4448c25 | 4 | 8388608 KiB | running - ---- Total Allocated vCPUs (running VMs) --- -93 - ---- Total Allocated RAM (running VMs) --- -230400 MB (225 GB) - ---- VM Disk Locations --- -[82e3ea29-a7eb-49eb-ad66-2a7523359408] - file disk vda /mnt/vms/82e3ea29-a7eb-49eb-ad66-2a7523359408_1.img - file disk sdx /home/vf-data/server/82e3ea29-a7eb-49eb-ad66-2a7523359408/cloud-drive.img -[0ad0f8f8-c784-4cd7-a885-064fd5dec42b] - file disk vda /mnt/vms/0ad0f8f8-c784-4cd7-a885-064fd5dec42b_1.img - file disk sdx /home/vf-data/server/0ad0f8f8-c784-4cd7-a885-064fd5dec42b/cloud-drive.img -[c163a847-d2cf-489a-b2ae-402daa0fb880] - file disk vda /mnt/vms/c163a847-d2cf-489a-b2ae-402daa0fb880_1.img - file disk sdx /home/vf-data/server/c163a847-d2cf-489a-b2ae-402daa0fb880/cloud-drive.img -[571fa5af-f75c-4f6e-95b7-c0e68200a9ae] - file disk vda /mnt/vms/571fa5af-f75c-4f6e-95b7-c0e68200a9ae_1.img - file disk sdx /home/vf-data/server/571fa5af-f75c-4f6e-95b7-c0e68200a9ae/cloud-drive.img -[9469dd33-0d1e-460e-9674-94508798497c] - file disk vda /mnt/vms/9469dd33-0d1e-460e-9674-94508798497c_1.img - file disk sdx /home/vf-data/server/9469dd33-0d1e-460e-9674-94508798497c/cloud-drive.img -[0ce20a29-bf89-4095-9abc-1e148613d2a7] - file disk vda /mnt/vms/0ce20a29-bf89-4095-9abc-1e148613d2a7_1.img - file disk sdx /home/vf-data/server/0ce20a29-bf89-4095-9abc-1e148613d2a7/cloud-drive.img -[40631bb2-34fc-42ea-b58c-60506d1adb09] - file disk vda /mnt/vms/40631bb2-34fc-42ea-b58c-60506d1adb09_1.img - file disk sdx /home/vf-data/server/40631bb2-34fc-42ea-b58c-60506d1adb09/cloud-drive.img -[98268e4a-7812-43a7-bbd1-b1cc4e366368] - file disk vda /mnt/vms/98268e4a-7812-43a7-bbd1-b1cc4e366368_1.img - file disk sdx /home/vf-data/server/98268e4a-7812-43a7-bbd1-b1cc4e366368/cloud-drive.img -[99a23167-132c-49b8-8203-7529077b135e] - file disk vda /mnt/vms/99a23167-132c-49b8-8203-7529077b135e_1.img - file disk sdx /home/vf-data/server/99a23167-132c-49b8-8203-7529077b135e/cloud-drive.img -[2dd34cb1-8faa-4448-a5b8-21bbd1104459] - file disk vda /mnt/vms/2dd34cb1-8faa-4448-a5b8-21bbd1104459_1.img - file disk sdx /home/vf-data/server/2dd34cb1-8faa-4448-a5b8-21bbd1104459/cloud-drive.img -[4d4689a2-543c-4543-b501-31828c9c6564] - file disk vda /mnt/vms/4d4689a2-543c-4543-b501-31828c9c6564_1.img - file disk sdx /home/vf-data/server/4d4689a2-543c-4543-b501-31828c9c6564/cloud-drive.img -[bbb290fa-2a94-408a-904c-b96140034807] - file disk vda /mnt/vms/bbb290fa-2a94-408a-904c-b96140034807_1.img - file disk sdx /home/vf-data/server/bbb290fa-2a94-408a-904c-b96140034807/cloud-drive.img -[8e3d0c3a-2a70-4c6b-9030-057300cb5e47] - file disk vda /mnt/vms/8e3d0c3a-2a70-4c6b-9030-057300cb5e47_1.img - file disk vdb /mnt/vms/8e3d0c3a-2a70-4c6b-9030-057300cb5e47_2.img - file disk sdx /home/vf-data/server/8e3d0c3a-2a70-4c6b-9030-057300cb5e47/cloud-drive.img -[e028b84c-5a0d-427d-bd98-efb178826072] - file disk vda /mnt/vms/e028b84c-5a0d-427d-bd98-efb178826072_1.img - file disk sdx /home/vf-data/server/e028b84c-5a0d-427d-bd98-efb178826072/cloud-drive.img -[3579b300-eac8-4e7f-b6fa-d3c11b63c062] - file disk vda /mnt/vms/3579b300-eac8-4e7f-b6fa-d3c11b63c062_1.img - file disk sdx /home/vf-data/server/3579b300-eac8-4e7f-b6fa-d3c11b63c062/cloud-drive.img -[5cf90f68-657c-41af-a96d-ddc7b2c3e0b8] - file disk vda /mnt/vms/5cf90f68-657c-41af-a96d-ddc7b2c3e0b8_1.img - file disk vdd /mnt/vms/5cf90f68-657c-41af-a96d-ddc7b2c3e0b8_4.img - file disk sdx /home/vf-data/server/5cf90f68-657c-41af-a96d-ddc7b2c3e0b8/cloud-drive.img -[594ffdd9-06dd-4183-b956-21a601edfef1] - file disk vda /mnt/vms/594ffdd9-06dd-4183-b956-21a601edfef1_1.img - file disk sdx /home/vf-data/server/594ffdd9-06dd-4183-b956-21a601edfef1/cloud-drive.img -[721de6e8-0e3c-490b-aab6-4daa7aed7f35] - file disk vda /mnt/vms/721de6e8-0e3c-490b-aab6-4daa7aed7f35_1.img - file disk sdx /home/vf-data/server/721de6e8-0e3c-490b-aab6-4daa7aed7f35/cloud-drive.img -[680f78b5-d774-4aa9-a12b-3c6aaa9f4aae] - file disk vda /mnt/vms/680f78b5-d774-4aa9-a12b-3c6aaa9f4aae_1.img - file disk sdx /home/vf-data/server/680f78b5-d774-4aa9-a12b-3c6aaa9f4aae/cloud-drive.img -[95b968e8-1975-4de1-85bb-9c521486d431] - file disk vda /mnt/vms/95b968e8-1975-4de1-85bb-9c521486d431_1.img - file disk sdx /home/vf-data/server/95b968e8-1975-4de1-85bb-9c521486d431/cloud-drive.img -[e8fac828-9665-42b1-bde0-a46d63e67e60] - file disk vda /mnt/vms/e8fac828-9665-42b1-bde0-a46d63e67e60_1.img - file disk sdx /home/vf-data/server/e8fac828-9665-42b1-bde0-a46d63e67e60/cloud-drive.img -[716d7378-9108-4b12-afef-cd1af4448c25] - file disk vda /mnt/vms/716d7378-9108-4b12-afef-cd1af4448c25_1.img - file disk sdx /home/vf-data/server/716d7378-9108-4b12-afef-cd1af4448c25/cloud-drive.img - ---- Storage Pools --- - Name State Autostart ---------------------------- - - -===== QEMU ===== ---- QEMU Version --- -QEMU emulator version 9.1.0 (qemu-kvm-9.1.0-29.el9_7.alma.1) - -===== DISK USAGE BY VM IMAGES ===== ---- qcow2 files --- - /home/vf-data/os/template/ubuntu-lunar-server-cloudimg-amd64.qcow2 (actual: 722M, virtual: 3.5 GiB) - /home/vf-data/os/template/ubuntu-focal-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 613M, virtual: 2.2 GiB) - /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 (actual: 557M, virtual: 3.5 GiB) - /home/vf-data/os/template/windows_server_2012_r2_standard.qcow2 (actual: 12G, virtual: 12.2 GiB) - /home/vf-data/os/template/centos-7-minimal-x86-64.qcow2 (actual: 446M, virtual: 1.95 GiB) - /home/vf-data/os/template/alma-linux-8-minimal-x86_64-2024-01-27.qcow2 (actual: 679M, virtual: 10 GiB) - /home/vf-data/os/template/centos-stream-8-minimal-x86_64.qcow2 (actual: 486M, virtual: 3.61 GiB) - /home/vf-data/os/template/debian-12-x86_64-2023-06-11.qcow2 (actual: 441M, virtual: 1.95 GiB) - /home/vf-data/os/template/ubuntu-jammy-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 646M, virtual: 2.2 GiB) - /home/vf-data/os/template/almalinux-9-x86_64-2024-11-20.qcow2 (actual: 507M, virtual: 10 GiB) - /home/vf-data/os/template/windows-server-2025-standard-2024-11-06.qcow2 (actual: 5.9G, virtual: 12.2 GiB) - /home/vf-data/os/template/windows-server-2019-standard-2024-03-06.qcow2 (actual: 5.8G, virtual: 13.7 GiB) - /home/vf-data/os/template/windows-server-2022-standard-2024-03-06.qcow2 (actual: 5.5G, virtual: 12.2 GiB) - /home/vf-data/os/template/centos-8-3-x86-64.qcow2 (actual: 1.3G, virtual: 10 GiB) - /home/vf-data/os/template/almalinux-10-x86-64.qcow2 (actual: 439M, virtual: 10 GiB) - /home/vf-data/os/template/fedora-42-x86-64.qcow2 (actual: 508M, virtual: 5 GiB) - /mnt/data/windows_10_template_v1.qcow2 (actual: 11G, virtual: 25 GiB) - ---- raw disk files --- - -===== SERVICES ===== ---- Key Services Status --- - libvirtd: active - qemu-guest-agent: inactive -not-found - virtfusion: inactive -not-found - virtfusion-agent: inactive -not-found - zfs-zed: inactive -not-found - zfs-import-cache: inactive -not-found - zfs-mount: inactive -not-found - -===== RESOURCE SUMMARY ===== ---- CPU --- - Total threads: 40 - Allocated vCPUs: 93 - Overcommit ratio: N/A - ---- RAM --- - Total RAM: 386388 MB (377 GB) - Allocated to VMs: 230400 MB (225 GB) - Free for host/new VMs: 155988 MB - Utilization: N/A% - -===== END ===== diff --git a/ezscale-discovery-20260208-163247/vf-node-03.txt b/ezscale-discovery-20260208-163247/vf-node-03.txt deleted file mode 100644 index 97fe5e9..0000000 --- a/ezscale-discovery-20260208-163247/vf-node-03.txt +++ /dev/null @@ -1,374 +0,0 @@ -===== SYSTEM INFO ===== ---- Hostname --- -atl-03.node.vps.ezscale.tech - ---- OS --- -NAME="AlmaLinux" -VERSION="9.6 (Sage Margay)" -VERSION_ID="9.6" -PRETTY_NAME="AlmaLinux 9.6 (Sage Margay)" - ---- Kernel --- -5.14.0-570.49.1.el9_6.x86_64 - ---- Uptime --- - 11:33:06 up 99 days, 4:43, 0 users, load average: 1.41, 1.92, 1.97 - -===== CPU ===== ---- Model --- -Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz - ---- Physical CPUs --- -2 - ---- Cores per CPU --- -14 - ---- Total Threads --- -56 - ---- CPU Flags (virt) --- -ept vmx - ---- lscpu summary --- -CPU(s): 56 -On-line CPU(s) list: 0-55 -Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz -BIOS Model name: Intel(R) Xeon(R) CPU E5-2680 v4 @ 2.40GHz -Thread(s) per core: 2 -Core(s) per socket: 14 -Socket(s): 2 -CPU(s) scaling MHz: 100% -CPU max MHz: 2900.0000 -CPU min MHz: 1200.0000 -L1d cache: 896 KiB (28 instances) -L1i cache: 896 KiB (28 instances) -L2 cache: 7 MiB (28 instances) -L3 cache: 70 MiB (2 instances) -NUMA node0 CPU(s): 0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54 -NUMA node1 CPU(s): 1,3,5,7,9,11,13,15,17,19,21,23,25,27,29,31,33,35,37,39,41,43,45,47,49,51,53,55 -Vulnerability L1tf: Mitigation; PTE Inversion; VMX conditional cache flushes, SMT vulnerable - -===== MEMORY ===== ---- Total / Used / Free --- - total used free shared buff/cache available -Mem: 440Gi 180Gi 238Gi 4.0Gi 27Gi 259Gi -Swap: 15Gi 0B 15Gi - ---- DIMM Details --- - Error Correction Type: Multi-bit ECC - Locator: A1 - Bank Locator: Not Specified - Type: Unknown - Type Detail: None - Size: 32 GB - Locator: A2 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) - Speed: 2400 MT/s - Configured Memory Speed: 1866 MT/s - Size: 32 GB - Locator: A3 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) - Speed: 2400 MT/s - Configured Memory Speed: 1866 MT/s - Size: 32 GB - Locator: A4 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) - Speed: 2400 MT/s - Configured Memory Speed: 1866 MT/s - Locator: A5 - Bank Locator: Not Specified - Type: Unknown - Type Detail: None - Size: 32 GB - Locator: A6 - Bank Locator: Not Specified - Type: DDR4 - Type Detail: Synchronous Registered (Buffered) - Speed: 2400 MT/s - Configured Memory Speed: 1866 MT/s - Size: 32 GB - Locator: A7 - Bank Locator: Not Specified - -===== STORAGE - BLOCK DEVICES ===== ---- lsblk --- -NAME SIZE TYPE FSTYPE MOUNTPOINT ROTA MODEL -sda 223.6G disk 0 KINGSTON SA400S37240G -├─sda1 1G part xfs /boot 0 -└─sda2 222.6G part linux_raid_member 0 - └─md127 222.4G raid1 ext4 / 0 -sdb 0B disk 0 STORAGE DEVICE -sdc 1.9T disk 0 Micron_1100_MTFDDAK2T0TBN -├─sdc1 1.9T part zfs_member 0 -└─sdc9 8M part 0 -sdd 1.9T disk 0 Micron_1100_MTFDDAK2T0TBN -├─sdd1 1.9T part zfs_member 0 -└─sdd9 8M part 0 -sde 223.6G disk 0 KINGSTON SA400S37240G -└─sde1 222.6G part linux_raid_member 0 - └─md127 222.4G raid1 ext4 / 0 - ---- Disk Models --- -NAME SIZE MODEL ROTA TRAN -sda 223.6G KINGSTON SA400S37240G 0 sata -sdb 0B STORAGE DEVICE 0 usb -sdc 1.9T Micron_1100_MTFDDAK2T0TBN 0 sata -sdd 1.9T Micron_1100_MTFDDAK2T0TBN 0 sata -sde 223.6G KINGSTON SA400S37240G 0 sata - -===== STORAGE - FILESYSTEM ===== ---- df -h --- -Filesystem Size Used Avail Use% Mounted on -/dev/md127 218G 113G 95G 55% / -/dev/sda1 960M 330M 631M 35% /boot -tank 1.7T 128K 1.7T 1% /tank -tank/vms 1.8T 165G 1.7T 10% /tank/vms - -===== STORAGE - ZFS ===== ---- ZFS Pools --- -NAME SIZE ALLOC FREE CKPOINT EXPANDSZ FRAG CAP DEDUP HEALTH ALTROOT -tank 1.86T 197G 1.67T - - 35% 10% 1.00x ONLINE - - mirror-0 1.86T 197G 1.67T - - 35% 10.3% - ONLINE - ata-Micron_1100_MTFDDAK2T0TBN_17021569179A 1.86T - - - - - - - ONLINE - ata-Micron_1100_MTFDDAK2T0TBN_1711166E8924 1.86T - - - - - - - ONLINE - ---- ZFS Pool Status --- - pool: tank - state: ONLINE -config: - - NAME STATE READ WRITE CKSUM - tank ONLINE 0 0 0 - mirror-0 ONLINE 0 0 0 - ata-Micron_1100_MTFDDAK2T0TBN_17021569179A ONLINE 0 0 0 - ata-Micron_1100_MTFDDAK2T0TBN_1711166E8924 ONLINE 0 0 0 - -errors: No known data errors - ---- ZFS Datasets --- -NAME USED AVAIL REFER MOUNTPOINT -tank 197G 1.61T 96K /tank -tank/vms 196G 1.61T 165G /tank/vms - ---- ZFS Properties (compression, ashift, recordsize) --- - -===== STORAGE - LVM ===== ---- Physical Volumes --- - ---- Volume Groups --- - ---- Logical Volumes --- - -===== STORAGE - MDADM (Software RAID) ===== -Personalities : [raid1] -md127 : active raid1 sde1[0] sda2[1] - 233248768 blocks super 1.2 [2/2] [UU] - bitmap: 2/2 pages [8KB], 65536KB chunk - -unused devices: - -===== NETWORK ===== ---- Interfaces --- -lo UNKNOWN 127.0.0.1/8 ::1/128 -enp3s0f0 DOWN -eno1 DOWN -enp3s0f1 DOWN -eno2 DOWN -eno3 UP -eno4 UP -enp129s0f0 DOWN -enp129s0f1 DOWN -br0 UP 66.186.37.252/25 fe80::1c0c:69a9:ca9b:f163/64 -6676408128 UNKNOWN fe80::fc30:1cff:fe10:3959/64 -4794906989 UNKNOWN fe80::fc98:3ff:fe85:6a2e/64 -8901578154 UNKNOWN fe80::fcf0:2cff:fe63:ba26/64 -1787749754 UNKNOWN fe80::fce5:fcff:fe53:513f/64 -3327536383 UNKNOWN fe80::fc0d:1aff:fe42:94c0/64 -5326490493 UNKNOWN fe80::fce3:fbff:fec0:f4cd/64 -2313996727 UNKNOWN fe80::fc19:21ff:fe56:f471/64 -9265995741 UNKNOWN fe80::fc02:3dff:fe83:2d3f/64 -7640912805 UNKNOWN fe80::fc9b:fff:fe23:46be/64 -4655817081 UNKNOWN fe80::fc0d:d7ff:fea6:e089/64 -7771553970 UNKNOWN fe80::fcb8:dfff:fe7b:492e/64 - ---- Interface Speeds --- - 1787749754: 10Mbps (driver: tun) - 2313996727: 10Mbps (driver: tun) - 3327536383: 10Mbps (driver: tun) - 4655817081: 10Mbps (driver: tun) - 4794906989: 10Mbps (driver: tun) - 5326490493: 10Mbps (driver: tun) - 6676408128: 10Mbps (driver: tun) - 7640912805: 10Mbps (driver: tun) - 7771553970: 10Mbps (driver: tun) - 8901578154: 10Mbps (driver: tun) - 9265995741: 10Mbps (driver: tun) - br0: 1000Mbps (driver: bridge) - eno1: -1Mbps (driver: bnx2x) - eno2: -1Mbps (driver: bnx2x) - eno3: 1000Mbps (driver: bnx2x) - eno4: 1000Mbps (driver: bnx2x) - enp129s0f0: -1Mbps (driver: bnx2x) - enp129s0f1: -1Mbps (driver: bnx2x) - enp3s0f0: -1Mbps (driver: ixgbe) - enp3s0f1: -1Mbps (driver: ixgbe) - ---- Default Route --- -default via 66.186.37.129 dev br0 proto static metric 425 - ---- Bridge / Bond Config --- -bridge name bridge id STP enabled interfaces -br0 8000.1866da8ba8ee yes 1787749754 - 2313996727 - 3327536383 - 4655817081 - 4794906989 - 5326490493 - 6676408128 - 7640912805 - 7771553970 - 8901578154 - 9265995741 - eno4 -10: br0: mtu 1500 qdisc noqueue state UP mode DEFAULT group default qlen 1000 - - -===== LIBVIRT / KVM ===== ---- Libvirt Version --- -Compiled against library: libvirt 10.10.0 -Using library: libvirt 10.10.0 -Using API: QEMU 10.10.0 -Running hypervisor: QEMU 9.1.0 -Running against daemon: 10.10.0 - - ---- All VMs (running + stopped) --- - Id Name State -------------------------------------------------------- - 4 2ce09938-9aa6-44cc-9a58-a52a9f717c5e running - 8 5e134a7a-728e-4fec-bf37-7e6e4649904c running - 28 b69ff6b7-5145-4254-9013-6ce723a68c40 running - 44 1f192a2c-0ef2-4b2d-9722-db4914b4efaa running - 81 9b8b3835-192e-4f81-ada6-ba3c4b6b6bfc paused - 85 192e4df7-d1ce-40e9-b4f5-ad8c69ce97dd running - 86 5cf0eb8f-dd1a-43cf-a3ea-c618484d6aa6 running - 97 d779c625-55e4-4e3e-8d37-a374d8715c37 running - 100 cb1e6977-93ef-4fd7-a48e-850eb6dc08e7 running - 101 7fe23def-a545-4f65-ac5a-9ff570efaabe running - 102 fff80538-33cd-46a2-a29c-bafbe08eb507 running - - ---- Running VM Count --- -10 - ---- VM Resource Usage --- -VM_NAME | vCPUs | RAM_MAX | STATE ---------|-------|---------|------ -2ce09938-9aa6-44cc-9a58-a52a9f717c5e | 8 | 33554432 KiB | running -5e134a7a-728e-4fec-bf37-7e6e4649904c | 6 | 16777216 KiB | running -b69ff6b7-5145-4254-9013-6ce723a68c40 | 4 | 8388608 KiB | running -1f192a2c-0ef2-4b2d-9722-db4914b4efaa | 4 | 8388608 KiB | running -192e4df7-d1ce-40e9-b4f5-ad8c69ce97dd | 4 | 8388608 KiB | running -5cf0eb8f-dd1a-43cf-a3ea-c618484d6aa6 | 4 | 8388608 KiB | running -d779c625-55e4-4e3e-8d37-a374d8715c37 | 4 | 8388608 KiB | running -cb1e6977-93ef-4fd7-a48e-850eb6dc08e7 | 4 | 8388608 KiB | running -7fe23def-a545-4f65-ac5a-9ff570efaabe | 4 | 8388608 KiB | running -fff80538-33cd-46a2-a29c-bafbe08eb507 | 4 | 8388608 KiB | running - ---- Total Allocated vCPUs (running VMs) --- -46 - ---- Total Allocated RAM (running VMs) --- -114688 MB (112 GB) - ---- VM Disk Locations --- -[2ce09938-9aa6-44cc-9a58-a52a9f717c5e] - file disk vda /tank/vms/2ce09938-9aa6-44cc-9a58-a52a9f717c5e_1.img -[5e134a7a-728e-4fec-bf37-7e6e4649904c] - file disk vda /tank/vms/5e134a7a-728e-4fec-bf37-7e6e4649904c_1.img -[b69ff6b7-5145-4254-9013-6ce723a68c40] - file disk vda /tank/vms/b69ff6b7-5145-4254-9013-6ce723a68c40_1.img - file disk sdx /home/vf-data/server/b69ff6b7-5145-4254-9013-6ce723a68c40/cloud-drive.img -[1f192a2c-0ef2-4b2d-9722-db4914b4efaa] - file disk vda /tank/vms/1f192a2c-0ef2-4b2d-9722-db4914b4efaa_1.img - file disk sdx /home/vf-data/server/1f192a2c-0ef2-4b2d-9722-db4914b4efaa/cloud-drive.img -[9b8b3835-192e-4f81-ada6-ba3c4b6b6bfc] - file disk vda /tank/vms/9b8b3835-192e-4f81-ada6-ba3c4b6b6bfc_1.img - file disk sdx /home/vf-data/server/9b8b3835-192e-4f81-ada6-ba3c4b6b6bfc/cloud-drive.img -[192e4df7-d1ce-40e9-b4f5-ad8c69ce97dd] - file disk vda /tank/vms/192e4df7-d1ce-40e9-b4f5-ad8c69ce97dd_1.img - file disk sdx /home/vf-data/server/192e4df7-d1ce-40e9-b4f5-ad8c69ce97dd/cloud-drive.img -[5cf0eb8f-dd1a-43cf-a3ea-c618484d6aa6] - file disk vda /tank/vms/5cf0eb8f-dd1a-43cf-a3ea-c618484d6aa6_1.img - file disk sdx /home/vf-data/server/5cf0eb8f-dd1a-43cf-a3ea-c618484d6aa6/cloud-drive.img -[d779c625-55e4-4e3e-8d37-a374d8715c37] - file disk vda /tank/vms/d779c625-55e4-4e3e-8d37-a374d8715c37_1.img - file disk sdx /home/vf-data/server/d779c625-55e4-4e3e-8d37-a374d8715c37/cloud-drive.img -[cb1e6977-93ef-4fd7-a48e-850eb6dc08e7] - file disk vda /tank/vms/cb1e6977-93ef-4fd7-a48e-850eb6dc08e7_1.img - file disk sdx /home/vf-data/server/cb1e6977-93ef-4fd7-a48e-850eb6dc08e7/cloud-drive.img -[7fe23def-a545-4f65-ac5a-9ff570efaabe] - file disk vda /tank/vms/7fe23def-a545-4f65-ac5a-9ff570efaabe_1.img - file disk sdx /home/vf-data/server/7fe23def-a545-4f65-ac5a-9ff570efaabe/cloud-drive.img -[fff80538-33cd-46a2-a29c-bafbe08eb507] - file disk vda /tank/vms/fff80538-33cd-46a2-a29c-bafbe08eb507_1.img - file disk sdx /home/vf-data/server/fff80538-33cd-46a2-a29c-bafbe08eb507/cloud-drive.img - ---- Storage Pools --- - Name State Autostart ---------------------------- - - -===== QEMU ===== ---- QEMU Version --- -QEMU emulator version 9.1.0 (qemu-kvm-9.1.0-15.el9_6.9.alma.1) - -===== DISK USAGE BY VM IMAGES ===== ---- qcow2 files --- - /home/vf-data/os/template/windows-server-2025-standard-2024-11-06.qcow2 (actual: 5.9G, virtual: 12.2 GiB) - /home/vf-data/os/template/ubuntu-noble-server-cloudimg-amd64-2024-04-25.qcow2 (actual: 592M, virtual: 3.5 GiB) - /home/vf-data/os/template/ubuntu-focal-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 618M, virtual: 2.2 GiB) - /home/vf-data/os/template/almalinux-10-x86-64.qcow2 (actual: 439M, virtual: 10 GiB) - /home/vf-data/os/template/ubuntu-jammy-server-cloudimg-amd64-2023-04-25.qcow2 (actual: 655M, virtual: 2.2 GiB) - /home/vf-data/os/template/windows-server-2019-standard-2024-03-06.qcow2 (actual: 5.8G, virtual: 13.7 GiB) - /home/vf-data/os/template/windows-server-2022-standard-2024-03-06.qcow2 (actual: 5.5G, virtual: 12.2 GiB) - /home/vf-data/os/template/centos-8-3-x86-64.qcow2 (actual: 1.3G, virtual: 10 GiB) - /home/vf-data/os/template/almalinux-9-x86_64-2024-11-20.qcow2 (actual: 507M, virtual: 10 GiB) - /home/vf-data/os/template/alma-linux-8-minimal-x86_64-2024-01-27.qcow2 (actual: 679M, virtual: 10 GiB) - ---- raw disk files --- - -===== SERVICES ===== ---- Key Services Status --- - libvirtd: inactive -not-found - qemu-guest-agent: inactive -not-found - virtfusion: inactive -not-found - virtfusion-agent: inactive -not-found - zfs-zed: active - zfs-import-cache: active - zfs-mount: active - -===== RESOURCE SUMMARY ===== ---- CPU --- - Total threads: 56 - Allocated vCPUs: 46 - Overcommit ratio: .82 - ---- RAM --- - Total RAM: 450850 MB (440 GB) - Allocated to VMs: 114688 MB (112 GB) - Free for host/new VMs: 336162 MB - Utilization: 20.0% - -===== END ===== diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.editorconfig b/vuexy-theme-vue-laravel-full-example-typescript/.editorconfig deleted file mode 100644 index acdbcd9..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.editorconfig +++ /dev/null @@ -1,38 +0,0 @@ -# EditorConfig is awesome: https://EditorConfig.org - -# top-most EditorConfig file -root = true - -# Unix-style newlines with a newline ending every file -[*] -end_of_line = lf -insert_final_newline = true - -# Matches multiple files with brace expansion notation -# Set default charset -[*.{js,py}] -charset = utf-8 - -# 4 space indentation -[*.py] -indent_style = space -indent_size = 4 - -# 2 space indentation -[*.{vue,scss,ts}] -indent_style = space -indent_size = 2 - -# Tab indentation (no size specified) -[Makefile] -indent_style = tab - -# Indentation override for all JS under lib directory -[lib/**.js] -indent_style = space -indent_size = 2 - -# Matches the exact files either package.json or .travis.yml -[{package.json,.travis.yml}] -indent_style = space -indent_size = 2 diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.env.example b/vuexy-theme-vue-laravel-full-example-typescript/.env.example deleted file mode 100644 index cc8145e..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.env.example +++ /dev/null @@ -1,67 +0,0 @@ -APP_NAME=Laravel -APP_ENV=local -APP_KEY= -APP_DEBUG=true -APP_URL=http://localhost - -APP_LOCALE=en -APP_FALLBACK_LOCALE=en -APP_FAKER_LOCALE=en_US - -APP_MAINTENANCE_DRIVER=file -# APP_MAINTENANCE_STORE=database - -# PHP_CLI_SERVER_WORKERS=4 - -BCRYPT_ROUNDS=12 - -LOG_CHANNEL=stack -LOG_STACK=single -LOG_DEPRECATIONS_CHANNEL=null -LOG_LEVEL=debug - -DB_CONNECTION=sqlite -# DB_HOST=127.0.0.1 -# DB_PORT=3306 -# DB_DATABASE=laravel -# DB_USERNAME=root -# DB_PASSWORD= - -SESSION_DRIVER=database -SESSION_LIFETIME=120 -SESSION_ENCRYPT=false -SESSION_PATH=/ -SESSION_DOMAIN=null - -BROADCAST_CONNECTION=log -FILESYSTEM_DISK=local -QUEUE_CONNECTION=database - -CACHE_STORE=database -# CACHE_PREFIX= - -MEMCACHED_HOST=127.0.0.1 - -REDIS_CLIENT=phpredis -REDIS_HOST=127.0.0.1 -REDIS_PASSWORD=null -REDIS_PORT=6379 - -MAIL_MAILER=log -MAIL_SCHEME=null -MAIL_HOST=127.0.0.1 -MAIL_PORT=2525 -MAIL_USERNAME=null -MAIL_PASSWORD=null -MAIL_FROM_ADDRESS="hello@example.com" -MAIL_FROM_NAME="${APP_NAME}" - -AWS_ACCESS_KEY_ID= -AWS_SECRET_ACCESS_KEY= -AWS_DEFAULT_REGION=us-east-1 -AWS_BUCKET= -AWS_USE_PATH_STYLE_ENDPOINT=false - -VITE_APP_NAME="${APP_NAME}" -VITE_API_BASE_URL= -VITE_MAPBOX_ACCESS_TOKEN= \ No newline at end of file diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.eslintrc.cjs b/vuexy-theme-vue-laravel-full-example-typescript/.eslintrc.cjs deleted file mode 100644 index 279eafb..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.eslintrc.cjs +++ /dev/null @@ -1,242 +0,0 @@ -module.exports = { - env: { - browser: true, - es2021: true, - }, - extends: [ - '@antfu/eslint-config-vue', - 'plugin:vue/vue3-recommended', - 'plugin:import/recommended', - 'plugin:import/typescript', - 'plugin:promise/recommended', - 'plugin:sonarjs/recommended', - 'plugin:@typescript-eslint/recommended', - 'plugin:case-police/recommended', - 'plugin:regexp/recommended', - - // 'plugin:unicorn/recommended', - ], - parser: 'vue-eslint-parser', - parserOptions: { - ecmaVersion: 13, - parser: '@typescript-eslint/parser', - sourceType: 'module', - }, - plugins: [ - 'vue', - '@typescript-eslint', - 'regex', - 'regexp', - ], - ignorePatterns: ['resources/ts/plugins/iconify/*.js', 'node_modules', 'dist', '*.d.ts', 'vendor', '*.json'], - rules: { - 'no-console': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - 'no-debugger': process.env.NODE_ENV === 'production' ? 'warn' : 'off', - - // indentation (Already present in TypeScript) - 'comma-spacing': ['error', { before: false, after: true }], - 'key-spacing': ['error', { afterColon: true }], - 'n/prefer-global/process': ['off'], - 'sonarjs/cognitive-complexity': ['off'], - - 'vue/first-attribute-linebreak': ['error', { - singleline: 'beside', - multiline: 'below', - }], - - 'antfu/top-level-function': 'off', - '@typescript-eslint/no-explicit-any': 'off', - - // indentation (Already present in TypeScript) - 'indent': ['error', 2], - - // Enforce trailing comma (Already present in TypeScript) - 'comma-dangle': ['error', 'always-multiline'], - - // Enforce consistent spacing inside braces of object (Already present in TypeScript) - 'object-curly-spacing': ['error', 'always'], - - // Enforce camelCase naming convention - 'camelcase': 'error', - - // Disable max-len - 'max-len': 'off', - - // we don't want it - 'semi': ['error', 'never'], - - // add parens ony when required in arrow function - 'arrow-parens': ['error', 'as-needed'], - - // add new line above comment - 'newline-before-return': 'error', - - // add new line above comment - 'lines-around-comment': [ - 'error', - { - beforeBlockComment: true, - beforeLineComment: true, - allowBlockStart: true, - allowClassStart: true, - allowObjectStart: true, - allowArrayStart: true, - - // We don't want to add extra space above closing SECTION - ignorePattern: '!SECTION', - }, - ], - - // Ignore _ as unused variable - '@typescript-eslint/no-unused-vars': ['error', { varsIgnorePattern: '^_+$', argsIgnorePattern: '^_+$' }], - - 'array-element-newline': ['error', 'consistent'], - 'array-bracket-newline': ['error', 'consistent'], - - 'vue/multi-word-component-names': 'off', - - 'padding-line-between-statements': [ - 'error', - { blankLine: 'always', prev: 'expression', next: 'const' }, - { blankLine: 'always', prev: 'const', next: 'expression' }, - { blankLine: 'always', prev: 'multiline-const', next: '*' }, - { blankLine: 'always', prev: '*', next: 'multiline-const' }, - ], - - // Plugin: eslint-plugin-import - 'import/prefer-default-export': 'off', - 'import/newline-after-import': ['error', { count: 1 }], - 'no-restricted-imports': ['error', 'vuetify/components', { - name: 'vue3-apexcharts', - message: 'apexcharts are auto imported', - }], - - // For omitting extension for ts files - 'import/extensions': [ - 'error', - 'ignorePackages', - { - js: 'never', - jsx: 'never', - ts: 'never', - tsx: 'never', - }, - ], - - // ignore virtual files - 'import/no-unresolved': [2, { - ignore: [ - '~pages$', - 'virtual:meta-layouts', - '#auth$', - '#components$', - - // Ignore vite's ?raw imports - '.*\?raw', - ], - }], - - // Thanks: https://stackoverflow.com/a/63961972/10796681 - 'no-shadow': 'off', - '@typescript-eslint/no-shadow': ['error'], - - '@typescript-eslint/consistent-type-imports': 'error', - - // Plugin: eslint-plugin-promise - 'promise/always-return': 'off', - 'promise/catch-or-return': 'off', - - // ESLint plugin vue - 'vue/block-tag-newline': 'error', - 'vue/component-api-style': 'error', - 'vue/component-name-in-template-casing': ['error', 'PascalCase', { registeredComponentsOnly: false, ignores: ['/^swiper-/'] }], - 'vue/custom-event-name-casing': ['error', 'camelCase', { - ignores: [ - '/^(click):[a-z]+((\d)|([A-Z0-9][a-z0-9]+))*([A-Z])?/', - ], - }], - 'vue/define-macros-order': 'error', - 'vue/html-comment-content-newline': 'error', - 'vue/html-comment-content-spacing': 'error', - 'vue/html-comment-indent': 'error', - 'vue/match-component-file-name': 'error', - 'vue/no-child-content': 'error', - 'vue/require-default-prop': 'off', - - 'vue/no-duplicate-attr-inheritance': 'error', - 'vue/no-empty-component-block': 'error', - 'vue/no-multiple-objects-in-class': 'error', - 'vue/no-reserved-component-names': 'error', - 'vue/no-template-target-blank': 'error', - 'vue/no-useless-mustaches': 'error', - 'vue/no-useless-v-bind': 'error', - 'vue/padding-line-between-blocks': 'error', - 'vue/prefer-separate-static-class': 'error', - 'vue/prefer-true-attribute-shorthand': 'error', - 'vue/v-on-function-call': 'error', - 'vue/no-restricted-class': ['error', '/^(p|m)(l|r)-/'], - 'vue/valid-v-slot': ['error', { - allowModifiers: true, - }], - - // -- Extension Rules - 'vue/no-irregular-whitespace': 'error', - 'vue/template-curly-spacing': 'error', - - // -- Sonarlint - 'sonarjs/no-duplicate-string': 'off', - 'sonarjs/no-nested-template-literals': 'off', - - // -- Unicorn - // 'unicorn/filename-case': 'off', - // 'unicorn/prevent-abbreviations': ['error', { - // replacements: { - // props: false, - // }, - // }], - - // Internal Rules - 'valid-appcardcode-code-prop': 'error', - 'valid-appcardcode-demo-sfc': 'error', - - // https://github.com/gmullerb/eslint-plugin-regex - 'regex/invalid': [ - 'error', - [ - { - regex: '@/assets/images', - replacement: '@images', - message: 'Use \'@images\' path alias for image imports', - }, - { - regex: '@/assets/styles', - replacement: '@styles', - message: 'Use \'@styles\' path alias for importing styles from \'resources/ts/assets/styles\'', - }, - { - regex: '@core/\\w', - message: 'You can\'t use @core when you are in @layouts module', - files: { - inspect: '@layouts/.*', - }, - }, - { - regex: 'useLayouts\\(', - message: '`useLayouts` composable is only allowed in @layouts & @core directory. Please use `useThemeConfig` composable instead.', - files: { - inspect: '^(?!.*(@core|@layouts)).*', - }, - }, - ], - - // Ignore files - '\.eslintrc\.cjs', - ], - }, - settings: { - 'import/resolver': { - node: true, - typescript: {}, - }, - }, -} diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.gitattributes b/vuexy-theme-vue-laravel-full-example-typescript/.gitattributes deleted file mode 100644 index e9375a1..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.gitattributes +++ /dev/null @@ -1,207 +0,0 @@ -## GITATTRIBUTES FOR WEB PROJECTS -# -# These settings are for any web project. -# -# Details per file setting: -# text These files should be normalized (i.e. convert CRLF to LF). -# binary These files are binary and should be left untouched. -# -# Note that binary is a macro for -text -diff. -###################################################################### - -# Auto detect -## Handle line endings automatically for files detected as -## text and leave all files detected as binary untouched. -## This will handle all files NOT defined below. -* text=auto - -# Source code -*.bash text eol=lf -*.bat text eol=crlf -*.cmd text eol=crlf -*.coffee text -*.css text diff=css -*.htm text diff=html -*.html text diff=html -*.inc text -*.ini text -*.js text -*.json text -*.jsx text -*.less text -*.ls text -*.map text -diff -*.od text -*.onlydata text -*.php text diff=php -*.pl text -*.ps1 text eol=crlf -*.py text diff=python -*.rb text diff=ruby -*.sass text -*.scm text -*.scss text diff=css -*.sh text eol=lf -.husky/* text eol=lf -*.sql text -*.styl text -*.tag text -*.ts text -*.tsx text -*.xml text -*.xhtml text diff=html - -# Docker -Dockerfile text - -# Documentation -*.ipynb text eol=lf -*.markdown text diff=markdown -*.md text diff=markdown -*.mdwn text diff=markdown -*.mdown text diff=markdown -*.mkd text diff=markdown -*.mkdn text diff=markdown -*.mdtxt text -*.mdtext text -*.txt text -AUTHORS text -CHANGELOG text -CHANGES text -CONTRIBUTING text -COPYING text -copyright text -*COPYRIGHT* text -INSTALL text -license text -LICENSE text -NEWS text -readme text -*README* text -TODO text - -# Templates -*.dot text -*.ejs text -*.erb text -*.haml text -*.handlebars text -*.hbs text -*.hbt text -*.jade text -*.latte text -*.mustache text -*.njk text -*.phtml text -*.svelte text -*.tmpl text -*.tpl text -*.twig text -*.vue text - -# Configs -*.cnf text -*.conf text -*.config text -.editorconfig text -.env text -.gitattributes text -.gitconfig text -.htaccess text -*.lock text -diff -package.json text eol=lf -package-lock.json text eol=lf -diff -pnpm-lock.yaml text eol=lf -diff -.prettierrc text -yarn.lock text -diff -*.toml text -*.yaml text -*.yml text -browserslist text -Makefile text -makefile text - -# Heroku -Procfile text - -# Graphics -*.ai binary -*.bmp binary -*.eps binary -*.gif binary -*.gifv binary -*.ico binary -*.jng binary -*.jp2 binary -*.jpg binary -*.jpeg binary -*.jpx binary -*.jxr binary -*.pdf binary -*.png binary -*.psb binary -*.psd binary -# SVG treated as an asset (binary) by default. -*.svg text -# If you want to treat it as binary, -# use the following line instead. -# *.svg binary -*.svgz binary -*.tif binary -*.tiff binary -*.wbmp binary -*.webp binary - -# Audio -*.kar binary -*.m4a binary -*.mid binary -*.midi binary -*.mp3 binary -*.ogg binary -*.ra binary - -# Video -*.3gpp binary -*.3gp binary -*.as binary -*.asf binary -*.asx binary -*.avi binary -*.fla binary -*.flv binary -*.m4v binary -*.mng binary -*.mov binary -*.mp4 binary -*.mpeg binary -*.mpg binary -*.ogv binary -*.swc binary -*.swf binary -*.webm binary - -# Archives -*.7z binary -*.gz binary -*.jar binary -*.rar binary -*.tar binary -*.zip binary - -# Fonts -*.ttf binary -*.eot binary -*.otf binary -*.woff binary -*.woff2 binary - -# Executables -*.exe binary -*.pyc binary - -# RC files (like .babelrc or .eslintrc) -*.*rc text - -# Ignore files (like .npmignore or .gitignore) -*.*ignore text diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.gitignore b/vuexy-theme-vue-laravel-full-example-typescript/.gitignore deleted file mode 100644 index 40be686..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.gitignore +++ /dev/null @@ -1,67 +0,0 @@ -*.log -.DS_Store -.env -.env.backup -.env.production -.phpactor.json -.phpunit.result.cache -/.fleet -/.idea -/.nova -/.phpunit.cache -/.zed -/auth.json -/node_modules -/public/build -/public/hot -/public/storage -/storage/*.key -/storage/pail -/vendor -Homestead.json -Homestead.yaml -Thumbs.db - -# Logs -logs -*.log -npm-debug.log* -yarn-debug.log* -yarn-error.log* -pnpm-debug.log* -lerna-debug.log* - -node_modules -.DS_Store -dist -dist-ssr -*.local - -/cypress/videos/ -/cypress/screenshots/ - -# 👉 Custom Git ignores - -# Editor directories and files -.vscode/* -!.vscode/extensions.json -!.vscode/settings.json -!.vscode/*.code-snippets -!.vscode/tours -.idea -*.suo -*.ntvs* -*.njsproj -*.sln -*.sw? -.yarn - -# iconify dist files -resources/ts/plugins/iconify/icons.css - -# Ignore MSW script -public/mockServiceWorker.js - -# Env files -.env* -!.env.example diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.npmrc b/vuexy-theme-vue-laravel-full-example-typescript/.npmrc deleted file mode 100644 index af3b96e..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.npmrc +++ /dev/null @@ -1,2 +0,0 @@ -auto-install-peers=true -shamefully-hoist=true diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.nvmrc b/vuexy-theme-vue-laravel-full-example-typescript/.nvmrc deleted file mode 100644 index 0fe2022..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.nvmrc +++ /dev/null @@ -1 +0,0 @@ -lts/* diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.stylelintrc.json b/vuexy-theme-vue-laravel-full-example-typescript/.stylelintrc.json deleted file mode 100644 index d58c45e..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.stylelintrc.json +++ /dev/null @@ -1,46 +0,0 @@ -{ - "extends": [ - "stylelint-config-standard-scss", - "stylelint-config-idiomatic-order", - "@stylistic/stylelint-config" - ], - "plugins": [ - "stylelint-use-logical-spec", - "@stylistic/stylelint-plugin" - ], - "overrides": [ - { - "files": [ - "**/*.scss" - ], - "customSyntax": "postcss-scss" - }, - { - "files": [ - "**/*.vue" - ], - "customSyntax": "postcss-html" - } - ], - "rules": { - "@stylistic/max-line-length": [ - 220, - { - "ignore": "comments" - } - ], - "@stylistic/indentation": 2, - "liberty/use-logical-spec": true, - "selector-class-pattern": null, - "color-function-notation": null, - "annotation-no-unknown": [ - true, - { - "ignoreAnnotations": [ - "default" - ] - } - ], - "media-feature-range-notation": null - } -} diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/anchor-comments.code-snippets b/vuexy-theme-vue-laravel-full-example-typescript/.vscode/anchor-comments.code-snippets deleted file mode 100644 index 00ce659..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/anchor-comments.code-snippets +++ /dev/null @@ -1,23 +0,0 @@ -{ - "Add hand emoji": { - "prefix": "cm-hand-emoji", - "body": [ - "👉" - ], - "description": "Add hand emoji" - }, - "Add info emoji": { - "prefix": "cm-info-emoji", - "body": [ - "ℹ️" - ], - "description": "Add info emoji" - }, - "Add warning emoji": { - "prefix": "cm-warning-emoji", - "body": [ - "❗" - ], - "description": "Add warning emoji" - } -} diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/extensions.json b/vuexy-theme-vue-laravel-full-example-typescript/.vscode/extensions.json deleted file mode 100644 index 9a36ff3..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/extensions.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "recommendations": [ - "dbaeumer.vscode-eslint", - "editorconfig.editorconfig", - "xabikos.javascriptsnippets", - "stylelint.vscode-stylelint", - "fabiospampinato.vscode-highlight", - "github.vscode-pull-request-github", - "vue.volar", - "antfu.iconify", - "cipchk.cssrem", - "matijao.vue-nuxt-snippets", - "dongido.sync-env" - ] -} diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/settings.json b/vuexy-theme-vue-laravel-full-example-typescript/.vscode/settings.json deleted file mode 100644 index 24dee01..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/settings.json +++ /dev/null @@ -1,115 +0,0 @@ -{ - "editor.formatOnSave": true, - "files.insertFinalNewline": true, - "javascript.updateImportsOnFileMove.enabled": "always", - "[javascript]": { - "editor.defaultFormatter": "dbaeumer.vscode-eslint" - }, - "[typescript]": { - "editor.defaultFormatter": "dbaeumer.vscode-eslint", - "editor.autoClosingBrackets": "always" - }, - "[markdown]": { - "editor.defaultFormatter": "DavidAnson.vscode-markdownlint" - }, - // SCSS - "[scss]": { - "editor.defaultFormatter": "stylelint.vscode-stylelint" - }, - // JSON - "[json]": { - "editor.defaultFormatter": "vscode.json-language-features" - }, - "[jsonc]": { - "editor.defaultFormatter": "vscode.json-language-features" - }, - // Vue - "[vue]": { - "editor.defaultFormatter": "dbaeumer.vscode-eslint", - }, - // Extension: Volar - "volar.preview.port": 3000, - "volar.completion.preferredTagNameCase": "pascal", - // Extension: ESLint - "eslint.options": { - "rulePaths": [ - "eslint-internal-rules" - ] - }, - "editor.codeActionsOnSave": { - "source.fixAll.eslint": "explicit", - "source.fixAll.stylelint": "explicit", - "source.organizeImports": "explicit" - }, - "eslint.alwaysShowStatus": true, - "eslint.format.enable": true, - "eslint.packageManager": "pnpm", - // Extension: Stylelint - "stylelint.packageManager": "pnpm", - "stylelint.validate": [ - "css", - "scss", - "vue" - ], - // Extension: Spell Checker - "cSpell.words": [ - "addressline", - "Composables", - "Customizer", - "destr", - "flagpack", - "Iconify", - "nuxt", - "ofetch", - "psudo", - "stylelint", - "touchless", - "triggerer", - "vuetify" - ], - // Extension: Comment Anchors - "commentAnchors.tags.anchors": { - "ℹ️": { - "scope": "hidden", - // This color is taken from "Better Comments" Extension (?) - "highlightColor": "#3498DB", - "styleComment": true, - "isItalic": false, - }, - "👉": { - "scope": "file", - // This color is taken from "Better Comments" Extension (*) - "highlightColor": "#98C379", - "styleComment": true, - "isItalic": false - }, - "❗": { - "scope": "hidden", - // This color is taken from "Better Comments" Extension (*) - "highlightColor": "#FF2D00", - "styleComment": true, - "isItalic": false, - }, - }, - // Extension: fabiospampinato.vscode-highlight - "highlight.regexFlags": "gi", - "highlight.regexes": { - // We flaged this for enforcing logical CSS properties - "(100vh|translate|margin:|padding:|margin-left|margin-right|rotate|text-align|border-top|border-right|border-bottom|border-left|float|background-position|transform|width|height|top|left|bottom|right|float|clear|(p|m)(l|r)-|border-(start|end)-(start|end)-radius)": [ - { - // "rangeBehavior": 1, - "borderWidth": "1px", - "borderColor": "tomato", - "borderStyle": "solid" - } - ], - "(overflow-x:|overflow-y:)": [ - { - // "rangeBehavior": 1, - "borderWidth": "1px", - "borderColor": "green", - "borderStyle": "solid" - } - ] - } -} diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/vue-ts.code-snippets b/vuexy-theme-vue-laravel-full-example-typescript/.vscode/vue-ts.code-snippets deleted file mode 100644 index 567bc8e..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/vue-ts.code-snippets +++ /dev/null @@ -1,18 +0,0 @@ -{ - "Vue TS - DefineProps": { - "prefix": "dprops", - "body": [ - "defineProps<${1:Props}>()" - ], - "description": "DefineProps in script setup" - }, - "Vue TS - Props interface": { - "prefix": "iprops", - "body": [ - "interface Props {", - " ${1}", - "}" - ], - "description": "Create props interface in script setup" - } -} diff --git a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/vue.code-snippets b/vuexy-theme-vue-laravel-full-example-typescript/.vscode/vue.code-snippets deleted file mode 100644 index 9dcfea6..0000000 --- a/vuexy-theme-vue-laravel-full-example-typescript/.vscode/vue.code-snippets +++ /dev/null @@ -1,63 +0,0 @@ -{ - "script": { - "prefix": "vue-sfc-ts", - "body": [ - "", - "", - "", - "", - "", - "" - ], - "description": "Vue SFC Typescript" - }, - "template": { - "scope": "vue", - "prefix": "template", - "body": [ - "" - ], - "description": "Create