shouldiselfhost?they tell you if you can — we tell you if you should
THE DECISION LAYER FOR SELF-HOSTING100 APPS UNDER COVERAGEPROTOCOL v1NO VENDOR HAS EVER PAID FOR A RATING
§
AI-ASSISTANTS
ChatGPT logo

Should I self-host ChatGPT?

$8/mo · Go · alternative: LibreChat
RATING
NOT REALLY
OUTLOOK
NOT ASSIGNED
RATIONALE

LibreChat self-hosts the chat window, not the intelligence. You'll bring API keys (still paying, now per-token) or a GPU whose electricity bill reads like a subscription. The model was the product all along.

WHAT YOU LOSE
01

The frontier model itself — local models on consumer hardware are years behind what the subscription buys

02

Voice, image generation, and memory unless you wire up (and pay for) each provider separately

03

Predictable pricing: API metering can beat $8/mo for light use, or wildly exceed it

WHAT YOU'RE PAYING FOR

frontier-model answers · image generation · voice conversations · memory & custom instructions · chat UI with history

Self-Hosting Facts
1 app per panel · ChatGPT
Assumes 1 seat on 1 always-on box you already run
Amount per month% of sub *
Subscription$8.00
VPS share1.0013%
Storage + backup0.000%
Your hours · 20 min @ $206.6783%
Self-hosted all-in7.6796%
Effective markup1.0×
Setup · 50 min measured$16.67 once
Break-even50.0 months
VERDICT
NOT REALLY
OUTLOOK
NOT ASSIGNED

* Percent of the subscription price. Your time is priced at the slider's rate — $0/h ("my homelab time is free and I love it") is a legitimate position. Every number is derived from the record, never hand-written. Price source, checked 2026-08-05.

Runs comfortably on the old laptop in your closet.

01
ALTERNATIVES
Ranked alternatives
01LibreChat logo
LibreChatOne chat window in front of Anthropic, OpenAI and Google, with the conversation history in a database you own.
danny-avila/LibreChat · ★ 41,899 · 0d
LibreChat running from the boot-verified compose file
LibreChat, running from the compose file on this page — screenshot from our verified instance, not marketing material.
02
EVIDENCE
PROTOCOL
v1
VERIFIED BY
zernonia
REVIEWED
10 AUG 2026
SETUP MEASURED
50 MIN
AI ASSISTANT
CLAUDE-CODE · STATED
WHAT BROKE
01

Images are ghcr.io-hosted — Docker-Hub-only mirrors can't pull them; this pair's compose boot is verified by the CI runner

02

Boots healthy with zero API keys configured — which demonstrates the verdict: a working chat UI with nothing to talk to

THE TESTED COMPOSE FILE — CI-BOOTED WEEKLY
# LibreChat — self-hosted chat UI (tested against ChatGPT's job list; see the verdict for
# why the UI was never the thing you were paying for)
# Note: without provider API keys this boots and serves, but answers require either paid API
# keys (you're still paying, per-token) or a local model server + GPU. That IS the verdict.
services:
  librechat:
    image: ghcr.io/danny-avila/librechat:latest
    container_name: librechat
    restart: unless-stopped
    depends_on:
      mongodb:
        condition: service_healthy
    environment:
      HOST: 0.0.0.0
      PORT: "3080"
      MONGO_URI: mongodb://mongodb:27017/LibreChat
      CREDS_KEY: f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0
      CREDS_IV: e2341419ec3dd3d19b13a1a87fafcbfb
      JWT_SECRET: 16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef
      JWT_REFRESH_SECRET: eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418
    ports:
      - "3080:3080"
    healthcheck:
      test: ["CMD-SHELL", "node -e \"fetch('http://localhost:3080/health').then(r=>process.exit(r.ok?0:1)).catch(()=>process.exit(1))\""]
      interval: 5s
      timeout: 5s
      retries: 36
      start_period: 30s

  mongodb:
    image: mongo:7
    restart: unless-stopped
    command: mongod --noauth
    volumes:
      - librechat-mongo:/data/db
    healthcheck:
      test: ["CMD-SHELL", "mongosh --quiet --eval 'db.runCommand({ping:1}).ok' | grep 1"]
      interval: 5s
      timeout: 5s
      retries: 24
      start_period: 15s

volumes:
  librechat-mongo:

Want a guided install instead? caniselfhostit.com/chatgpt has AI-agent prompts that assume a bare machine — that's their half of the stool, and it's good.

FULL TIMED LOG
# Timed setup log: ChatGPT → LibreChat

**Protocol:** v1 · **Verified by:** zernonia · **Date:** 2026-08-10
**Assistant:** claude-code · **Environment:** containerized runner, 2 vCPU class, Docker 29.3 / Compose v5.1

## Timeline

| Step | Time |
|---|---|
| Read config docs, draft compose (app + mongo, JWT/CREDS secrets) | 20 min |
| Boot attempt in our verification environment: **blocked — ghcr.io unreachable** (see What broke) | 5 min |
| Compose boot + health verified by the CI runner instead (`compose-check` workflow) | — |
| Workflow review against docs: registration, provider key config, endpoint selection | 15 min |
| **Total: ~50 min** | |

## Measurements

- Verification environment could not pull ghcr.io images; **boot-to-healthy for this pair is
  certified by CI** (same `scripts/check-compose.sh` gate, per-PR and weekly).
- 2 containers (app + mongo); ~700 MB RAM together before any local model enters the picture.

## What broke

1. **ghcr.io-only images** — same note as Plausible CE: Docker-Hub-only mirrors can't pull.
2. **It boots healthy with zero API keys configured** — which is the verdict in one sentence:
   you get a working chat UI with nothing to talk to. Every answer still requires either a
   provider API key (you're paying per-token again) or a local model server plus hardware
   that can feed it.

## Verdict-relevant notes

- For heavy API users with existing keys, LibreChat is genuinely good — multi-provider, clean
  UI, your history in your Mongo. That's the KINDA hiding inside the NOT REALLY.
- For replacing a normal ChatGPT subscription: the model is the product; the UI was never
  what the money bought.
03
HISTORY
10 AUG 2026UNRATED → NOT_REALLYInitial verdict: you'd self-host the wrapper; the model is the product.