SelfHostStackOpen-Source Directory

Why Migrate Away from OpenAI API & AWS Bedrock?

Commercial LLM APIs charge steep per-token pricing for input context, system prompts, tool calls, and generated output. High-throughput RAG search pipelines, customer agents, and document processing systems generate millions of tokens daily, causing API bills to quickly exceed thousands of dollars per month. Furthermore, sending proprietary enterprise documents or PII to third-party cloud APIs poses significant compliance and security hazards. Self-hosting vLLM on a dedicated GPU instance or proxying multi-model traffic through LiteLLM provides blisteringly fast local inference, OpenAI API drop-in compatibility, zero token metering, complete data privacy, and deterministic latency.

Technical Architecture & Migration Analysis

Commercial AI APIs operate over metered HTTPS connections where every prompt token and completion token incurs financial cost. In contrast, self-hosted LLM architectures separate routing from execution: LiteLLM acts as the centralized AI Gateway handling authentication, rate-limiting, semantic caching, and telemetry, while vLLM serves open-weight models (Llama 3, Mistral, Qwen) with PagedAttention GPU kernels. This architecture delivers zero marginal cost per token, sub-50ms Time-To-First-Token (TTFT), and complete data sovereign control.

⚠️

When NOT to Migrate (When Staying on OpenAI API & AWS Bedrock Makes Sense)

Self-hosting is not universally the right move. Keep paying for SaaS if your team hits any of these constraints:

  • Your workload requires proprietary frontier capabilities exclusive to closed models (e.g. o1/o3 reasoning models).
  • You generate fewer than 100,000 tokens per month where commercial API free/cheap tiers cost under $5/mo.
  • You have zero GPU infrastructure and cannot afford a dedicated $80–$150/mo GPU cloud instance.

Real-World Cost Comparison: OpenAI API & AWS Bedrock vs Self-Hosted

Comparing vendor cloud billings against standard Hetzner / DigitalOcean infrastructure costs at scale.

Tier / ScaleOpenAI API & AWS Bedrock CostSelf-Hosted VPS CostEstimated Annual SavingsTechnical Breakdown
Startup / Dev Team (50M tokens/month)
50 million tokens/mo, automated RAG search, internal coding assistants
$1,250–$2,500/month ($25.00/1M output tokens on GPT-4o / Claude 3.5)€120.00/month (1x NVIDIA RTX 4090 / A5000 GPU Cloud or Hetzner Server)$1,130–$2,380/month ($13,560–$28,560/year)Self-hosted vLLM serving Llama-3.1-8B/Qwen-2.5-14B delivers unlimited generation.
High-Volume Production App (500M tokens/month)
500 million tokens/mo, customer AI support bots, document extraction
$12,500–$25,000/month (Commercial LLM APIs at scale)€450.00/month (2x Dedicated GPU nodes + LiteLLM Load Balancer)$12,050–$24,550/month ($144,600–$294,600/year)LiteLLM proxies traffic across dual vLLM GPU servers with Redis semantic caching.
Enterprise Multi-Department Gateway (2B+ tokens/month)
1,000+ employees, internal developer tools, private enterprise knowledge base
$50,000+/month (Enterprise AWS Bedrock / OpenAI agreements)€1,800.00/month (Dedicated 4x H100/A100 GPU cluster)$48,200+/month ($578,400+/year)Complete data sovereignty with zero risk of proprietary data leaks or model retraining.

Top 2 Recommended Open-Source Replacements

Tested, self-contained, and production-ready. Click any tool to inspect verified docker-compose configurations, hardware sizing, and deployment guides.

vLLM

Apache-2.0⭐ 36.2k+

High-throughput, memory-efficient LLM serving engine with PagedAttention and OpenAI-compatible API.

Min RAM8 GB (16GB+ VRAM GPU recommended)
Min CPU4 vCPU / 1x NVIDIA/AMD GPU
GitHub Repo ↗

✅ Advantages

  • Industry standard for high-concurrency production LLM serving
  • Seamless drop-in replacement for OpenAI endpoints in existing Python/Node.js SDKs
  • Extreme memory efficiency with FP8 and AWQ 4-bit quantization

⚠️ Trade-offs / Limitations

  • Requires modern GPU with at least 16GB–24GB VRAM for 7B–14B models
  • Initial container image download and model weight caching requires 20GB+ disk space

Core Features

State-of-the-art throughput: 2x to 4x higher token generation rate than standard HuggingFace TGI
PagedAttention memory management: near-zero waste in KV cache allocation
Continuous request batching and dynamic chunked prefill for sub-second latency
Full drop-in OpenAI API compatibility (`/v1/models`, `/v1/chat/completions`, `/v1/embeddings`)
Extensive model architecture support: Llama 3.3, Mistral, Qwen 2.5, DeepSeek, Gemma 2, and Phi-4
Quantization support: AWQ, GPTQ, SqueezeLLM, FP8, and bitsandbytes for running large models on consumer GPUs

Architecture Notes

C++ and Python inference framework utilizing PagedAttention algorithm to eliminate KV cache memory fragmentation. Implements continuous batching, chunked prefill, speculative decoding, and tensor parallelism across multiple GPUs. Serves models with an OpenAI-compatible `/v1/chat/completions` REST API.

Known Limitations

High performance requires dedicated NVIDIA (CUDA) or AMD (ROCm) GPU hardware; CPU execution is slower.

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  vllm:
    image: vllm/vllm-openai:latest
    container_name: vllm-server
    restart: always
    ports:
      - "8000:8000"
    environment:
      - HUGGING_FACE_HUB_TOKEN=your_hf_token_here
    volumes:
      - ~/.cache/huggingface:/root/.cache/huggingface
    command: >
      --model meta-llama/Llama-3.1-8B-Instruct
      --max-model-len 8192
      --gpu-memory-utilization 0.90
      --enforce-eager
    deploy:
      resources:
        reservations:
          devices:
            - driver: nvidia
              count: all
              capabilities: [gpu]
    networks:
      - selfhost_net

networks:
  selfhost_net:
    external: true

🚀 5-Minute Deployment Guide

  1. 1Provision a GPU VPS or dedicated server with NVIDIA drivers and NVIDIA Container Toolkit installed.
  2. 2Create model cache directory: `mkdir -p ~/.cache/huggingface`.
  3. 3Launch the vLLM Docker container specifying your chosen HuggingFace model (e.g. `Qwen/Qwen2.5-7B-Instruct`).
  4. 4Test the OpenAI-compatible endpoint: `curl http://localhost:8000/v1/chat/completions -H 'Content-Type: application/json' -d '{"model":"Qwen/Qwen2.5-7B-Instruct","messages":[{"role":"user","content":"Hello!"}]}'`.
  5. 5Point your existing LangChain, LlamaIndex, or agent applications to `http://your-server-ip:8000/v1` with any dummy API key.

Recommended Cloud VPS for vLLM

Compare all VPS hosts →
DigitalOcean$120.00/mo

GPU Droplet (1x NVIDIA H100 80GB or 1x RTX 4090 Dedicated)

Ultra-low latency inference for high-concurrency production AI agents.

Claim $200 DO Credit →
Hetzner Cloud€52.00/mo

CCX33 Dedicated vCPU (8 vCPU, 32GB RAM, 240GB NVMe)

Solid host for CPU-based quantized models (GGUF/llama.cpp) or LiteLLM gateway.

Deploy on Hetzner →

LiteLLM Proxy & AI Gateway

MIT⭐ 22.8k+

Universal open-source AI gateway with spend tracking, user rate limiting, failover load balancing, and standard OpenAI format.

Min RAM512 MB
Min CPU1 vCPU
GitHub Repo ↗

✅ Advantages

  • Zero code rewrites: switch backend providers or models instantly via YAML config
  • Prevents surprise API bills with hard spend caps per user or project
  • Runs smoothly on minimal resources (< 512MB RAM)

⚠️ Trade-offs / Limitations

  • Requires an external PostgreSQL database for persistent spend tracking and key management
  • Adds minimal network proxy latency (1-2ms overhead)

Core Features

Standardized OpenAI format for 100+ LLMs (OpenAI, Anthropic, Bedrock, vLLM, Ollama, Mistral, Groq)
Virtual API Keys with per-user/team spend caps, rate limits (RPM/TPM), and budget alerts
Intelligent Load Balancing & Failover: automatically route requests if a primary model is throttled or offline
Semantic prompt caching with Redis to reduce token costs by up to 80%
Comprehensive Admin UI & Telemetry: track latency, cost per team member, token counts, and error rates
Enterprise guardrails: PII masking, content moderation, and secret key rotation

Architecture Notes

High-performance Python/FastAPI proxy layer that sits between your applications and 100+ LLM providers (vLLM, Ollama, OpenAI, Anthropic, Bedrock, Vertex AI). Translates requests to OpenAI format, tracks token usage per API key in PostgreSQL, and handles automatic retries and failover.

Known Limitations

LiteLLM is a proxy/gateway router, not an inference engine itself. It orchestrates downstream providers (local vLLM/Ollama servers or cloud APIs).

Official Documentation ↗
📄 docker-compose.yml
Production Ready
version: '3.8'
services:
  litellm:
    image: ghcr.io/berriai/litellm:main-latest
    container_name: litellm
    restart: always
    ports:
      - "4000:4000"
    environment:
      - DATABASE_URL=postgresql://litellm:litellm_secret@litellm-db:5432/litellm
      - LITELLM_MASTER_KEY=sk-master-key-change-me-2026
      - STORE_MODEL_IN_DB=True
    volumes:
      - ./litellm-config.yaml:/app/config.yaml
    command: ["--config", "/app/config.yaml", "--port", "4000", "--num_workers", "4"]
    depends_on:
      - litellm-db
    networks:
      - selfhost_net

  litellm-db:
    image: postgres:16-alpine
    container_name: litellm-db
    restart: always
    environment:
      POSTGRES_USER: litellm
      POSTGRES_PASSWORD: litellm_secret
      POSTGRES_DB: litellm
    volumes:
      - litellm_db_data:/var/lib/postgresql/data
    networks:
      - selfhost_net

volumes:
  litellm_db_data:

networks:
  selfhost_net:
    external: true

🚀 5-Minute Deployment Guide

  1. 1Provision a lightweight Linux VPS (e.g. Hetzner CX22 for €3.79/mo).
  2. 2Install Docker & Compose: `curl -fsSL https://get.docker.com | sh`.
  3. 3Create a configuration file `litellm-config.yaml` specifying your upstream models (local vLLM, Ollama, or fallback cloud keys).
  4. 4Save `docker-compose.yml` and start the gateway: `docker compose up -d`.
  5. 5Access the LiteLLM Admin UI at `http://your-server-ip:4000/ui` with your master key.
  6. 6Generate team API keys with custom monthly budget limits and point your apps to `http://your-server-ip:4000/v1`.

Recommended Cloud VPS for LiteLLM Proxy & AI Gateway

Compare all VPS hosts →
Hetzner Cloud€3.79/mo

CX22 (2 vCPU, 4GB RAM, 40GB NVMe)

Perfect lightweight host for LiteLLM Gateway, PostgreSQL, and Redis caching.

Deploy on Hetzner →

Quick Specification Matrix

ToolLicenseMin RAMMin CPUGitHub RepoPrimary Advantage
OpenAI API & AWS Bedrock (Proprietary)Proprietary ClosedManaged CloudManaged CloudN/ATurnkey onboarding with vendor lock-in & paywalls
vLLMApache-2.08 GB (16GB+ VRAM GPU recommended)4 vCPU / 1x NVIDIA/AMD GPUvllm-project/vllmIndustry standard for high-concurrency production LLM serving
LiteLLM Proxy & AI GatewayMIT512 MB1 vCPUBerriAI/litellmZero code rewrites: switch backend providers or models instantly via YAML config

Performance Benchmarks & Hard Operational Limits

Real-world operational trade-offs, resource consumption limits, and measured throughput.

Benchmark MetricOpenAI API & AWS Bedrock BaselineSelf-Hosted Alternative MetricOperational Bottleneck / LimitSource
Output Token Generation Throughput40–70 tokens/sec per connection (Commercial API shared rate limits)120–280 tokens/sec (vLLM PagedAttention on RTX 4090 / A100)GPU VRAM memory bandwidth.Production Test
Token Metering & Marginal Cost$2.50 to $30.00 per 1M tokens$0.00 per token (Fixed monthly server cost)Hardware compute capacity.Production Test
Data Privacy & PII Leakage RiskExternal cloud processing (Third-party data retention policies)100% On-Premise / Private VPC (Zero outbound data transfer)Internal network firewall.Production Test

Frequently Asked Questions

Practical deployment, migration, and maintenance answers.

Can I replace the OpenAI Python or TypeScript SDK with vLLM directly?

Yes. vLLM implements standard OpenAI-compatible API routes. In Python, you simply set `openai.api_base = 'http://your-vllm-host:8000/v1'` and `openai.api_key = 'any-string'`. All existing LangChain, LlamaIndex, and AutoGen code works without modification.

How does LiteLLM help reduce commercial API costs when I still use OpenAI/Anthropic?

LiteLLM includes built-in semantic caching with Redis (which caches identical or similar queries and returns responses instantly with 0 token cost) and intelligent routing (routing simple queries to cheaper 8B models and complex queries to frontier models).

What open-source models match GPT-4o / Claude 3.5 Sonnet performance?

Recent open-weight models like Qwen 2.5 72B, DeepSeek-V3, Llama 3.3 70B, and Command R+ achieve near-parity on coding, instruction following, and multilingual benchmarks when served via vLLM.

What GPU hardware do I need to run vLLM comfortably?

An 8B model (e.g. Llama-3.1-8B) runs in ~6GB VRAM (using 4-bit AWQ/GPTQ) or ~16GB VRAM (FP16). A single consumer RTX 3090 / 4090 (24GB VRAM) can easily serve 8B to 14B models at hundreds of tokens per second for an entire team.

Does LiteLLM support spend tracking and budget caps for individual team members?

Yes. The LiteLLM Admin UI lets you create virtual API keys with defined monthly budget limits (e.g. $50/mo for Dev Team A). If a key reaches its limit, the proxy rejects further calls, preventing billing surprises.

Starter Stack Pack — $29

Skip the setup: get the production-ready stack

Don't stitch together configs from five different READMEs. Get all 5 production-hardened Docker Compose stacks — Postgres, Redis, SSL auto-renewal, and backup scripts — ready to deploy in minutes.

n8nVisual workflow automation
📊UmamiPrivacy-first web analytics
🛡️Uptime KumaUptime monitoring & alerts
🔐VaultwardenBitwarden-compatible vault
☁️NextcloudDropbox/Drive replacement
Get the Stack Pack — $29 →

One-time purchase · Instant download · Production-ready

esc
navigate open