# Server Recommendation System AI-powered server recommendation service built on Cloudflare Workers, leveraging Workers AI, D1 Database, and real VPS benchmark data. ## Features - **AI-Powered Recommendations**: Uses Workers AI (Llama 3.1 8B) to analyze requirements and provide intelligent recommendations - **Real Benchmark Data**: 269 VPS benchmarks from 110 providers across 26 countries (Geekbench 6) - **Natural Language Input**: Describe your project in plain language (tech stack, users, use case) - **Cost-Efficiency Focus**: Budget/Balanced/Premium tiers with performance-per-dollar analysis - **D1 Database**: Stores 1,119 server specifications with regional availability - **KV Caching**: Caches recommendations for 1 hour to reduce AI calls ## API URL **Production**: `https://server-recommend.kappa-d8e.workers.dev` ## Architecture ``` ┌─────────────┐ │ Client │ └──────┬──────┘ │ HTTP Request (Natural Language) ▼ ┌─────────────────────────────────────────┐ │ Cloudflare Worker │ │ ┌───────────────────────────────────┐ │ │ │ Request Handler │ │ │ │ - CORS │ │ │ │ - Validation │ │ │ │ - Flexible Region Matching │ │ │ └────┬──────────────────┬───────────┘ │ │ │ │ │ │ ┌────▼─────┐ ┌─────────▼──────────┐ │ │ │ KV Cache │ │ D1 Database │ │ │ │ (1h TTL) │ │ - 1,119 Servers │ │ │ └──────────┘ │ - 269 Benchmarks │ │ │ │ - 110 Providers │ │ │ └─────────┬──────────┘ │ │ │ │ │ ┌─────────▼───────────┐ │ │ │ Workers AI │ │ │ │ (Llama 3.1 8B) │ │ │ │ + Benchmark Data │ │ │ └─────────────────────┘ │ └─────────────────────────────────────────┘ ``` ## API Endpoints ### GET /api/health Health check endpoint. ```bash curl https://server-recommend.kappa-d8e.workers.dev/api/health ``` **Response:** ```json { "status": "ok", "timestamp": "2025-01-23T12:00:00.000Z", "service": "server-recommend" } ``` ### POST /api/recommend Get AI-powered server recommendations based on your project requirements. **Request Body:** ```json { "tech_stack": "gnuboard php mysql", "expected_users": 1000, "use_case": "community forum website", "region_preference": ["korea"], "budget_range": "balanced", "provider_filter": ["vultr", "aws", "linode"] } ``` **Fields:** | Field | Required | Description | |-------|----------|-------------| | `tech_stack` | Yes | Technologies used (e.g., "nodejs express mongodb") | | `expected_users` | Yes | Expected concurrent users | | `use_case` | Yes | Brief description of the project | | `region_preference` | No | Array of preferred regions (flexible matching) | | `budget_range` | No | "budget", "balanced", or "premium" (default: "balanced") | | `provider_filter` | No | Array of preferred providers | **Region Matching:** The system supports flexible region matching: - Country codes: `kr`, `jp`, `sg`, `us`, `de` - Country names: `korea`, `japan`, `singapore` - City names: `seoul`, `tokyo`, `frankfurt` - Region codes: `ap-northeast-2`, `us-east-1` **Example Requests:** ```bash # Korean community website curl -X POST https://server-recommend.kappa-d8e.workers.dev/api/recommend \ -H "Content-Type: application/json" \ -d '{ "tech_stack": "gnuboard php mysql", "expected_users": 1000, "use_case": "community forum", "region_preference": ["korea"] }' # Node.js API server in Japan curl -X POST https://server-recommend.kappa-d8e.workers.dev/api/recommend \ -H "Content-Type: application/json" \ -d '{ "tech_stack": "nodejs express postgresql", "expected_users": 500, "use_case": "REST API backend", "region_preference": ["japan"], "budget_range": "budget" }' # High-traffic e-commerce in Singapore curl -X POST https://server-recommend.kappa-d8e.workers.dev/api/recommend \ -H "Content-Type: application/json" \ -d '{ "tech_stack": "laravel php redis mysql", "expected_users": 5000, "use_case": "e-commerce platform", "region_preference": ["singapore"], "budget_range": "premium" }' ``` **Response:** ```json { "recommendations": [ { "tier": "Budget", "server_id": "vultr-vc2-1c-1gb", "server_name": "Vultr vc2-1c-1gb", "provider": "Vultr", "instance_type": "vc2-1c-1gb", "score": 85, "reasoning": "Excellent value for small PHP applications...", "strengths": [ "Low monthly cost ($5)", "Seoul region for low latency to Korea", "High single-core benchmark (2053)" ], "considerations": [ "Limited RAM (1GB) for growth", "May need upgrade for traffic spikes" ], "specs": { "cpu_cores": 1, "memory_gb": 1, "storage_gb": 25, "network_mbps": 1000 }, "benchmark": { "single_score": 2053, "multi_score": 3685, "benchmark_source": "Geekbench 6" }, "price_monthly": 5, "available_regions": ["seoul", "tokyo", "singapore"] } ], "total_candidates": 15, "cached": false, "benchmark_context": { "total_benchmarks": 269, "matched_benchmarks": 8 } } ``` ### GET /api/servers List servers with optional filtering. **Query Parameters:** - `provider`: Filter by provider ID - `minCpu`: Minimum CPU cores - `minMemory`: Minimum memory in GB - `region`: Filter by region code ```bash curl "https://server-recommend.kappa-d8e.workers.dev/api/servers?provider=vultr®ion=korea" ``` ## Benchmark Data ### Statistics (2025-01-23) | Metric | Count | |--------|-------| | Total Benchmarks | 269 | | Providers | 110 | | Countries | 26 | | Asia Benchmarks | 50+ | ### Regional Reliability | Region | Benchmarks | Providers | Reliability | |--------|------------|-----------|-------------| | US | 80+ | 40+ | 80% | | DE | 50+ | 30+ | 75% | | SG | 25+ | 15+ | 75% | | JP | 13 | 8 | 70% | | KR | 11 | 6 | 70% | | NL | 20+ | 15+ | 75% | ### Top Providers by Performance/Dollar (Asia) | Rank | Provider | Plan | Region | Single | Price | Perf/$ | |------|----------|------|--------|--------|-------|--------| | 1 | GreenCloud | 2c 4g AMD | SG | 974 | $2.1 | 1380.8 | | 2 | Advin Servers | 4c 16gb AMD | SG | 981 | $8 | 517.3 | | 3 | Vultr HP | 1c 1g AMD | SG | 1174 | $6 | 384.3 | | 4 | Vultr Dedicated | AMD Seoul | KR | 2053 | $60 | - | | 5 | ExtraVM | 1c 2g Intel | SG | 1782 | $10 | 357.0 | ## AI Recommendation Strategy ### Budget Tiers The AI provides recommendations across three tiers: 1. **Budget Tier**: Best performance-per-dollar - Focus: Cost efficiency - Target: Small projects, development, testing 2. **Balanced Tier**: Optimal price-performance ratio - Focus: Value and reliability - Target: Production applications, medium traffic 3. **Premium Tier**: Maximum performance - Focus: Raw performance and reliability - Target: High-traffic, mission-critical applications ### Scoring Formula - Requirement Match: 40% - Value for Money: 30% - Benchmark Performance: 20% - Reliability/SLA: 10% ## Setup ### Quick Start 1. Install dependencies: ```bash npm install ``` 2. Create Cloudflare resources: ```bash npx wrangler d1 create server-recommend-db npx wrangler kv:namespace create CACHE # Update wrangler.toml with the IDs ``` 3. Initialize database: ```bash npx wrangler d1 execute server-recommend-db --file=schema.sql npx wrangler d1 execute server-recommend-db --file=seed.sql ``` 4. Development: ```bash npm run dev ``` 5. Deploy: ```bash npm run deploy ``` ## Database Schema **Tables:** - `providers`: Cloud provider information (50+ providers) - `servers`: Server specifications and pricing (1,119 servers) - `regions`: Regional availability (100+ regions) - `server_regions`: Server-region mapping - `vps_benchmarks`: Geekbench 6 benchmark scores (269 records) ## Limitations - **Game Servers**: AI recommendations may not be accurate for specialized workloads like Minecraft, game servers. Manual adjustment recommended. - **Benchmark Coverage**: Some smaller providers may not have benchmark data. - **Real-time Pricing**: Prices are updated periodically, not in real-time. ## Data Sources - **Benchmarks**: Geekbench Browser, VPSBenchmarks.com, LowEndTalk - **Benchmark Version**: Geekbench 6 - **Server Catalog**: Provider APIs, public documentation ## Performance | Metric | Value | |--------|-------| | Cold Start | < 100ms | | Warm Response | < 50ms | | AI Response | 2-5s | | Cached Response | < 100ms | ## License ISC