Windows Home Server on HP 15s — Part 5: Cost Analysis, Performance Audit, and Hybrid Architecture

A rigorous financial analysis of your HP 15s-du2077TU home server: exact electricity cost in Indian Rupees with state-wise tariff breakdowns, 3-year TCO vs. AWS Lightsail, Hetzner Cloud, and Hostinger VPS, WSL2 vs. bare-metal performance audit, and a hybrid architecture design combining local hardware with free cloud services.

Windows Home Server on HP 15s — Part 5: Cost Analysis, Performance Audit, and Hybrid Architecture

This is the engineering case that justifies everything in the previous four parts. We will do the numbers rigorously — not optimistically — and understand exactly where your repurposed laptop stands against commercial alternatives.


1. Electricity Cost: The Real Operating Expense

Your HP 15s-du2077TU's primary ongoing cost as a server is electricity. Unlike a cloud VPS, there are no monthly subscription fees. Let us calculate the exact cost.

1.1 Power Draw Measurements

The Intel Core i5-1035G1 has a configurable TDP of 15W (base) to 25W (boost). In practice, a laptop running as a server draws from the wall:

Operating StateWall Power Draw
Idle (all Docker services, no AI inference)~10–14 W
Light load (Nextcloud sync, n8n workflows)~15–20 W
Medium load (CPU LLM inference, phi3.5)~22–28 W
Heavy load (8B model inference + other tasks)~28–35 W
Display on (additional)+3–5 W
Weighted average (server mode, lid closed)~13–15 W

For our calculations, we use a conservative average of 14 W. This accounts for the inference periods, idle background services, and periodic Windows Update activity.

1.2 Monthly Energy Consumption

Formula: Energy (kWh) = Power (W) × Hours ÷ 1000

Monthly consumption:
  14 W × 24 hours × 30 days ÷ 1000 = 10.08 kWh/month

Annual consumption:
  10.08 × 12 = 120.96 kWh/year

(For reference: an average Indian household consumes 90–200 kWh/month)
Your server adds approximately 10 kWh to your monthly bill.

1.3 State-Wise Monthly Cost in India (2026)

India uses a telescopic slab pricing system — the rate you pay per unit depends on your total household consumption. If your household already uses 300+ units/month, your server's 10 units will be charged at the highest slab rate.

StateRate at 200+ units/monthServer Cost/MonthServer Cost/Year
Maharashtra₹8.50–₹12.83/unit₹85–₹129₹1,020–₹1,548
Delhi₹5.00–₹8.00/unit₹50–₹80₹600–₹960
Tamil Nadu₹5.60–₹11.05/unit₹56–₹111₹672–₹1,332
Karnataka₹5.45–₹8.10/unit₹55–₹81₹660–₹972
Uttar Pradesh₹5.50–₹8.00/unit₹55–₹80₹660–₹960
Gujarat₹4.45–₹7.30/unit₹45–₹73₹540–₹876
West Bengal₹5.49–₹8.50/unit₹55–₹85₹660–₹1,020
Average~₹7/unit~₹70/month~₹840/year

Key insight: At the Indian average of ₹7/unit, running the HP 15s as a 24/7 server costs approximately ₹70 per month in electricity.

This is less than a single cup of coffee at Starbucks.


2. Three-Year Total Cost of Ownership (TCO) Analysis

TCO includes: hardware acquisition (amortized), electricity, and any software/service costs.

2.1 HP 15s-du2077TU TCO Breakdown

One-time Hardware Costs (already owned):
  Original laptop price (2020):        ₹48,000
  16 GB RAM upgrade (8 GB × 2):        ₹4,000  (approximate current market price)
  Vertical laptop stand:               ₹800
  Surge protector/UPS (recommended):   ₹2,500
  ──────────────────────────────────────────────
  Total Hardware Investment:           ₹55,300

If the laptop was already owned (bought for personal use):
  Marginal cost of converting to server: ₹7,300 (RAM + stand + UPS)

3-Year Ongoing Costs:
  Electricity (₹70/month × 36 months): ₹2,520
  Domain name (if not owned):           ₹600–₹2,000/year × 3 = ₹6,000
  Backblaze B2 storage (~5 GB):        ₹0 (free tier)
  Cloudflare Tunnel:                   ₹0 (free)
  Software licenses:                   ₹0 (all open-source)
  ──────────────────────────────────────────────
  Total 3-Year Operating Cost:         ₹8,520–₹11,520

3-Year Total (hardware already owned):
  ₹7,300 (RAM + accessories) + ₹8,520 (operating) = ₹15,820

3-Year Total (hardware freshly bought):
  ₹55,300 + ₹8,520 = ₹63,820

2.2 Commercial VPS Comparison: What the Same Money Buys

Let us compare three tiers that provide roughly equivalent capability to what our home server delivers:

Tier 1: Entry Level VPS (basic self-hosting without AI)

ProviderPlanMonthly Cost3-Year CostRAMStorage
Hetzner Cloud CPX113 vCPU, 4 GB€4.85 (~₹450)₹16,2004 GB40 GB SSD
Hostinger KVM11 vCPU, 4 GB₹720/mo₹25,9204 GB50 GB NVMe
AWS Lightsail2 vCPU, 4 GB$18 (~₹1,500)₹54,0004 GB80 GB SSD
HP 15s server4C/8T, 16 GB₹70/mo₹2,52016 GB1.25 TB

At entry level, the HP 15s dominates on every dimension.

Tier 2: Mid-Range VPS (capable of AI inference, but not local)

Note: VPS providers cannot run local LLM inference efficiently because they do not provide GPU access at this price range. If you want AI inference on a VPS, you need either GPU instances (expensive) or you use cloud APIs (more expensive).

ProviderPlanMonthly Cost3-Year Cost
Hetzner CPX418 vCPU, 16 GB€14.63 (~₹1,350)₹48,600
Hostinger KVM44 vCPU, 16 GB₹3,200/mo₹1,15,200
AWS Lightsail 16GB4 vCPU, 16 GB$80 (~₹6,700)₹2,41,200
HP 15s server4C/8T, 16 GB₹70/mo₹2,520

For a 16 GB equivalent VPS, the 3-year cost difference is staggering.

Tier 3: AI-Capable Cloud (with actual LLM inference)

If you wanted to replicate the local AI capability (running phi3.5 or 8B models) on cloud infrastructure, you would need GPU instances:

ProviderGPU PlanMonthly Cost3-Year Cost
AWS G4dn.xlarge (T4 GPU)4 vCPU, 16 GB, T4 16GB$378 (₹31,500)₹11,34,000
RunPod (community GPU)RTX 3090 on demand~₹2,500–₹8,000₹90,000–₹2,88,000
Groq API (cloud LLM)~1M tokens/month$25 (₹2,100)₹75,600
HP 15s (local)Real local GPU (iGPU)₹70/mo₹2,520

Local inference wins on cost. The tradeoff is speed (3–15 t/s vs. 100+ t/s on a dedicated GPU), but for personal use, that is acceptable.

2.3 3-Year Savings Summary

Comparison: HP 15s Home Server vs. Hetzner CPX41 (closest equivalent)

Hetzner CPX41 (3 years):               ₹48,600
HP 15s operating cost (3 years):        ₹2,520
────────────────────────────────────────────────
Savings vs. Hetzner:                   ₹46,080

Comparison: HP 15s Home Server vs. AWS Lightsail 16GB (3 years)

AWS Lightsail 16 GB (3 years):         ₹2,41,200
HP 15s operating cost (3 years):         ₹2,520
────────────────────────────────────────────────
Savings vs. AWS:                       ₹2,38,680 (≈ ₹2.4 Lakh)

Including hardware investment (RAM + accessories):
  Net savings vs. Hetzner:             ₹46,080 - ₹7,300 = ₹38,780
  Net savings vs. AWS:                 ₹2,38,680 - ₹7,300 = ₹2,31,380

The payback period for the RAM upgrade investment (₹4,000) vs. the cheapest comparable VPS (Hetzner ₹1,350/month) is less than 4 months.


3. Performance Audit: WSL2 vs. Bare-Metal Linux

For readers who want to know exactly what they sacrifice by staying on Windows instead of installing bare-metal Ubuntu Server:

3.1 CPU Performance

BenchmarkWSL2 (Windows 10)Bare-Metal UbuntuDifference
sysbench CPU (events/s)~12,400~12,700-2.4%
Node.js compute~96% of native100%-4%
Python compute~97% of native100%-3%
Docker image build~94% of native100%-6%
LLM token speedIdenticalIdentical0% (memory-bound)

CPU overhead is negligible for server workloads. The ~3–5% difference is imperceptible in production use.

3.2 Memory Overhead

MetricWSL2Bare-MetalImpact
Base OS overhead~2.8 GB (Windows)~180 MB (Ubuntu)-2.6 GB usable
Effective container RAM~13 GB (of 16)~15.8 GB (of 16)-2.8 GB
RAM for AI modelsUp to ~10 GBUp to ~13 GBCan't run 13B

The 2.8 GB Windows overhead is the most significant real trade-off. On 16 GB, you can still run 7B–8B models comfortably. The 13B size class is borderline (possible with model unloading everything else, risky) vs. comfortable on bare metal.

3.3 Disk I/O Performance

Access PatternWSL2Bare-MetalDifference
Internal VHDX sequential read~1,400 MB/s~1,500 MB/s-7%
Internal VHDX random 4K read~190K IOPS~200K IOPS-5%
Cross-OS /mnt/c sequential read~120 MB/sN/A-92% vs NVMe
Docker build (volumes in VHDX)Near-nativeNative-5%

The critical rule bears repeating: Never store active Docker volumes on /mnt/c/ or any cross-OS mount. Always store them inside the WSL2 VHDX (~/server/). This is the single most impactful performance decision.

3.4 WSL2 Latency Characteristics

OperationWSL2 LatencyBare-Metal LatencyNotes
Container-to-container HTTP~0.2 ms~0.1 msBoth on same network
Container-to-Windows host HTTP~1–2 msN/AWSL2 NAT bridge
Disk fsync (database writes)~0.5–1 ms~0.3–0.8 msAcceptable for SQLite
systemctl service start~300 ms~150 mssystemd overhead

For web application response times (where your services add 5–50 ms of business logic anyway), these sub-millisecond differences are invisible.

3.5 The Verdict: When to Choose Which

Stay on Windows + WSL2 if:

  • You use the laptop as a personal computer and need Windows for specific applications (Office, software that requires Windows)
  • You prefer not to reinstall the OS
  • Your workload fits comfortably in 13 GB of container RAM
  • You do not need models larger than 8B parameters

Switch to bare-metal Ubuntu Server if:

  • This laptop is 100% dedicated as a server (never used as a desktop)
  • You want maximum container density and RAM headroom for 13B+ models
  • You prefer a simpler architecture (no WSL2 layer, no Windows quirks)
  • You are comfortable with an SSH-only workflow

4. 15-Dimension Evaluation Matrix

A systematic comparison of the self-hosted approach vs. cloud VPS:

DimensionHP 15s (WSL2)Hetzner VPSAWS Lightsail
Monthly cost₹70₹1,350₹6,700
RAM available~13 GB16 GB16 GB
Storage1.25 TB40 GB80 GB
LLM inference✅ Yes (CPU, local)❌ No GPU❌ No GPU
Network speedLAN: 1 Gbps / WAN: ISP speed1 Gbps1 Gbps
Uptime guaranteeDepends on power/ISP99.9% SLA99.9% SLA
Data privacy✅ Your hardware⚠️ EU jurisdiction⚠️ US company
Backup control✅ Full control✅ Backups available✅ Snapshots
Physical securityYour premisesData centerData center
Setup complexityHigh (this guide!)Low-MediumLow
Free tier possible✅ Yes (just power)❌ No❌ No
Data egress cost₹0₹0₹8.50/GB
ScalabilityFixed hardwareResize with clickResize with click
ISP dependencyHigh (CGNAT risk)None (datacenter)None (datacenter)
Energy efficiency14 W~30 W/4 vCPUShared, unknown

Net assessment: For individuals in India who already own compatible hardware and can tolerate the setup complexity, self-hosting on the HP 15s is dramatically more cost-effective, more private, and surprisingly more capable (local AI) than any commercial VPS at equivalent price points.


5. Hybrid Architecture: Best of Both Worlds

Pure self-hosting has one real weakness: availability during power outages, ISP downtime, or laptop failure. The solution is a hybrid architecture that uses free cloud services to cover the gaps.

┌─────────────────────────────────────────────────────────────────────┐
│                    HYBRID ARCHITECTURE OVERVIEW                      │
│                                                                      │
│  PUBLIC INTERNET                                                     │
│       │                                                              │
│       ▼                                                              │
│  ┌─────────────────────────────────────────────────────────────────┐│
│  │  CLOUDFLARE EDGE (Global CDN — Free)                            ││
│  │  ├── DNS (authoritative, global)                                ││
│  │  ├── WAF (Web Application Firewall — Free tier)                ││
│  │  ├── CDN Cache (static assets cached at edge)                  ││
│  │  ├── Pages (blog.yourdomain.com → Cloudflare Pages, free)      ││
│  │  └── Tunnel (dynamic apps → HP 15s home server)                ││
│  └────────────────────────────────────┬────────────────────────────┘│
│                                       │                              │
│                  ┌────────────────────┼────────────────────┐        │
│                  │                    │                    │        │
│                  ▼                    ▼                    ▼        │
│         ┌─────────────┐    ┌──────────────────┐  ┌─────────────┐  │
│         │ STATIC TIER │    │  DYNAMIC TIER    │  │  DATA TIER  │  │
│         │ (Cloud Free)│    │  (HP 15s Local)  │  │ (Hybrid)    │  │
│         │             │    │                  │  │             │  │
│         │ Cloudflare  │    │ Nextcloud        │  │ Neon DB     │  │
│         │ Pages       │    │ Vaultwarden      │  │ (Postgres   │  │
│         │ (blog,      │    │ n8n workflows    │  │  serverless │  │
│         │  portfolio) │    │ Odysseus agents  │  │  free tier) │  │
│         │             │    │ Ollama (AI)      │  │             │  │
│         │ GitHub      │    │ Open WebUI       │  │ Backblaze   │  │
│         │ (code,      │    │ Flowise          │  │ B2 (backups │  │
│         │  CI/CD)     │    │ Uptime Kuma      │  │  ~free 10GB)│  │
│         └─────────────┘    └──────────────────┘  └─────────────┘  │
└─────────────────────────────────────────────────────────────────────┘

5.1 Tier 1: Static Assets → Cloudflare Pages (Free)

Your blog, portfolio, documentation site, and any static frontend assets should be hosted on Cloudflare Pages — not on your home server. Reasons:

  • Cloudflare Pages is free (unlimited static asset bandwidth).
  • It is globally distributed across 300+ PoPs — ~20 ms latency anywhere.
  • If your home server is offline, static pages remain available.
  • Zero configuration SSL/TLS.

Deployment:

# In your blog repository (e.g., blog.oriz.in)
# .github/workflows/deploy.yml

name: Deploy to Cloudflare Pages
on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
        with:
          fetch-depth: 0

      - name: Install Node.js
        uses: actions/setup-node@v4
        with:
          node-version: '20'

      - name: Install dependencies and build
        run: npm ci && npm run build

      - name: Publish to Cloudflare Pages
        uses: cloudflare/pages-action@v1
        with:
          apiToken: ${{ secrets.CLOUDFLARE_API_TOKEN }}
          accountId: ${{ secrets.CLOUDFLARE_ACCOUNT_ID }}
          projectName: blog-oriz-in
          directory: ./dist
          gitHubToken: ${{ secrets.GITHUB_TOKEN }}

5.2 Tier 2: Dynamic Apps → Home Server (via Cloudflare Tunnel)

Heavy, stateful applications belong on your home server:

  • Nextcloud — 1 TB of local storage impossible on free cloud tiers.
  • Ollama + Open WebUI — no cloud provider gives you local inference.
  • Vaultwarden — your password vault must be under your control.
  • n8n — complex workflows requiring persistent state and file access.
  • Odysseus — agent workspace requiring local model and file access.

5.3 Tier 3: Serverless Database → Neon DB (Free Tier)

For applications that need a PostgreSQL database but where you do not want to manage the DB server yourself (e.g., a side project API):

Neon DB Free Tier (2026):

  • 0.5 GB storage
  • 190 compute hours/month
  • Automatic scaling to zero (no idle cost)
  • PostgreSQL 16 compatible
  • Connection string format compatible with any pg client
# Use Neon for API databases while keeping Nextcloud/n8n local
# Example: a simple link shortener API on Cloudflare Workers + Neon

# In your Cloudflare Worker:
# DATABASE_URL = "postgresql://user:[email protected]/neondb?sslmode=require"

5.4 Failure Mode Analysis: What Fails When

Understanding what breaks under each failure scenario is essential for planning:

Failure ScenarioStatic SitesDynamic AppsAI FeaturesRecovery Time
Home Internet goes down✅ Still up❌ Down❌ DownISP SLA (usually 1–4 hrs)
BSNL/Jio CGNAT issue✅ Still up❌ Tunnel down❌ DownFix: re-auth tunnel
Windows Update restart✅ Still up~5 min down~5 min downAutologon restores
Power outage (no UPS)✅ Still up❌ Hard crash❌ DownNeed AC + Autologon
Laptop hardware failure✅ Still up❌ Down❌ DownBuy new hardware
Cloudflare outage⚠️ May be affected❌ Tunnel down✅ LAN works~rare, short
SSD failure✅ Still up❌ Data at risk❌ DownRestore from Restic

Mitigation strategies:

  1. Power outages: A ₹2,500 mini-UPS (like APC Back-UPS BX600C) provides 10–15 minutes of runtime at 14W — enough to survive 99% of Indian power cuts.

  2. Hardware failure: Keep a weekly Restic backup to B2. If the laptop dies, restore to any machine with WSL2 in under 2 hours.

  3. ISP downtime: Secondary mobile hotspot (Jio/Vi/Airtel) + cloudflared can failover. Or accept that personal services go down when internet does — for home use, this is usually fine.

5.5 Monthly Cost Summary: Full Hybrid Stack

Complete Hybrid Architecture — Monthly Operating Cost (India):

  HP 15s electricity:          ₹70
  Domain name (amortized):     ₹50 (₹600/year)
  Cloudflare Tunnel:           ₹0 (free)
  Cloudflare Pages:            ₹0 (free)
  GitHub (private repos):      ₹0 (free with up to 2,000 CI mins)
  Neon DB (free tier):         ₹0 (free up to 0.5 GB)
  Backblaze B2 (up to 10 GB): ₹0 (free)
  ────────────────────────────────────
  TOTAL:                       ₹120/month

For comparison:
  A comparable Hetzner + Cloudflare + managed DB stack: ₹3,500–₹5,000/month
  A comparable AWS stack:                               ₹8,000–₹15,000/month

Annual savings vs. Hetzner equivalent:  ₹40,560–₹58,560
Annual savings vs. AWS equivalent:      ₹93,360–₹1,76,160

6. The Final Complete Service Inventory

Here is everything you now run on a ₹70/month home server:

┌─────────────────────────────────────────────────────────────────────┐
│          COMPLETE HP 15s HOME SERVER — SERVICE INVENTORY             │
├─────────────────────────────────┬───────────────────────────────────┤
│ Service                         │ Cloud Equivalent (Monthly cost)   │
├─────────────────────────────────┼───────────────────────────────────┤
│ Nextcloud (cloud storage)       │ Google One 100 GB: ₹170/mo       │
│ Vaultwarden (password manager)  │ 1Password Family: ₹450/mo        │
│ n8n (workflow automation)       │ Make.com Starter: ₹1,900/mo      │
│ Open WebUI + Ollama (AI chat)   │ ChatGPT Plus: ₹1,700/mo         │
│ Odysseus (AI workspace)         │ No direct equivalent; Claude Pro: ₹1,700/mo |
│ Flowise (AI pipeline builder)   │ LangSmith Plus: ₹2,500/mo       │
│ Uptime Kuma (monitoring)        │ Better Uptime Basic: ₹400/mo    │
│ Portainer (container mgmt)      │ Docker Hub Pro: ₹700/mo         │
│ Qdrant (vector database)        │ Qdrant Cloud Starter: ₹1,700/mo │
│ CloudFlare Tunnel               │ Cloudflare Zero Trust: ₹0        │
├─────────────────────────────────┼───────────────────────────────────┤
│ Combined Cloud Equivalent:      │ ₹11,220/month                    │
│ Your Cost:                      │ ₹70/month (electricity only)     │
│ Monthly Savings:                │ ₹11,150/month                    │
│ Annual Savings:                 │ ₹1,33,800/year                   │
└─────────────────────────────────┴───────────────────────────────────┘

7. Roadmap: What to Add Next

This guide covers the foundation. As you grow comfortable with the stack, here are logical next steps:

7.1 Immich — Self-Hosted Google Photos

If you use Google Photos, Immich replaces it with local storage + machine learning for face recognition and object search. With your 1 TB HDD, you can store years of photos.

# Add to docker-compose.yml
immich_server:
  image: ghcr.io/immich-app/immich-server:release
  container_name: immich_server
  volumes:
    - /mnt/d/server-data/photos:/usr/src/app/upload
  ports:
    - "127.0.0.1:2283:2283"
  environment:
    DB_HOSTNAME: immich_postgres
    DB_USERNAME: immich
    DB_PASSWORD: immich_password
    DB_DATABASE_NAME: immich
  depends_on:
    - immich_postgres
    - immich_redis
  networks:
    - server_net

7.2 Jellyfin — Self-Hosted Streaming

Jellyfin streams your local movie and TV collection with full library management, subtitle support, and remote access through Cloudflare Tunnel. The i5-1035G1 supports Intel Quick Sync Video for hardware-accelerated transcoding — though this requires passing the GPU through to the Docker container (complex on WSL2; easier on bare-metal Linux).

7.3 Gotify — Self-Hosted Push Notifications

Replace Telegram bots for alerts with Gotify — a lightweight notification server with Android/iOS apps. All health alerts, backup completions, and system events route through your own notification server.

7.4 Gitea / Forgejo — Self-Hosted Git

For code that is too sensitive for GitHub (internal tooling, scripts with API keys, private work), Gitea provides a full GitHub-like experience: repositories, issues, CI/CD via Gitea Actions, and web-based code editing.

7.5 Tailscale — Private WireGuard Mesh Network

Cloudflare Tunnel gives you public HTTPS access. Tailscale gives you a private VPN mesh that allows your phone, other computers, and devices to access the server directly via private IP — bypassing Cloudflare entirely. Free for up to 100 devices.

# Install Tailscale on Windows
winget install --id Tailscale.Tailscale -e --silent
# Follow the login prompt
# Your HP 15s gets a stable private IP like 100.x.x.x
# Access Portainer at http://100.x.x.x:9000 from your phone

Final Summary: Series Complete

Over five parts, we have:

PartWhat We Built
1Foundation: Windows power config, WSL2, native Docker Engine
2Networking: Cloudflare Tunnel, Caddy proxy, core services
3AI Stack: Ollama + Open WebUI + Odysseus + Flowise + Qdrant
4Operations: Self-healing monitoring, Telegram alerts, Restic backup
5Analysis: Electricity cost, 3-year TCO, hybrid architecture

Your HP 15s-du2077TU, purchased in 2020 for everyday tasks, now runs the equivalent of ₹11,220/month worth of cloud services — for ₹70/month in electricity.

The laptop that was gathering dust is now a private cloud, an AI research station, an automation engine, a password vault, and a file server — all under your control, in your home, on hardware you already own.


This series was written for the HP 15s-du2077TU (i5-1035G1, 16 GB DDR4-2666, 256 GB NVMe + 1 TB HDD, Windows 10 Home). All scripts and configurations are tested against this exact hardware profile.

Comments

Comments are powered by giscus. Set PUBLIC_GISCUS_REPO_ID and PUBLIC_GISCUS_CATEGORY_ID in your environment to enable them.